Transcript 插值与拟合实验
数学实验 Experiments in Mathematics 插 值 与 拟 合 重庆邮电学院基础数学教学部 实验目的 1、掌握用Matlab计算拉格朗日、分段线性、 三次样条三种插值的方法,改变节点的数目, 对三种插值结果进行初步分析。. 2、掌握用Matlab作线性最小二乘的方法. 3、通过实例学习如何使用插值方法与拟合方 法解决实际问题,注意二者的区别和联系 实验内容 1、插 2、拟 值. 合. 3、 数学建模实例 实验软件 MATLAB 插 值 (一) 插值问题的提法 (二)解决插值问题的基本方法 数学建模实例 1、船在该海域会搁浅吗 2、薄膜渗透率的测定 插值问题的提法: 已知n 1个节点( x j , y j ), j 0,1,, n ,其中x j 互不 相同,不妨设 a x0 x1 xn b ,求任一插 x ( x ) 值点 j 处的插值y ,( x j , y j ) 可以看成由某 个函数 y g (x) 产生的,g 的解析表达式可能十分 复杂,或不存在封闭形式,也可以未知。 求解的基本思路: 构造一个相对简单的函数 y f (x) ,使 f 通过全部节点, 即 f ( x j ) y j ( j 0,1,, n) ,再用f (x) 计算插值,即 y f (x ) 拉格朗日多项式插值 从理论和计算角度看,多项式是最简单的函数,设 f(x) 是 n 次多项式,记作 Ln ( x ) an x n an 1x n 1 a1x a0 对于节点( x j , y j ) 应有 Ln ( x j ) y j (1) j 0,1,, n (2) 为了确定插值多项式Ln (x) 中的系数an , an 1,, a0 将(1)代入(2) ,有 an x0n an 1x0n 1 a1x0 a0 y0 n 1 a x n a x a1xn a0 y0 n 1 n n n (3) , 记 x0n x0n 1 1 X xnn xnn 1 1 A ( an , an 1 ,..., a0 )T ,Y ( y0 , y1 ,..., y n )T , 方程组(3)简写作 XA Y (4) 其中 detX 是 Vandermonde 行列式,利用行列式性质可得 det X ( xk x j ) 0 j k n det X 0 因 x j 互不相同,故 ,于是方程(4)中有唯一解, 即根据 n+1 个节点可以确定唯一得 n 次插值多项式。 实际上比较方便的作法不是解方程(4)求 A,而是先构 造一组基函数: li ( x ) ( x x0 )...(x xi 1 )( x xi 1 )...(x xn ) , ( xi x0 )...(xi xi 1 )( xi xi 1 )...(xi xn ) i 0,1,, n (5) li (x) 是 n 次多项式,满足 i j 1, li ( x j ) 0 , i j, i, j 0,1,, n (6) 令 n ln ( x ) yi li ( x ) i 0 (7) 显然ln (x) 是满足(2)的 n 次多项式,由方程(4)解的唯 一性, (7)式表示ln (x) 的与(1)式相同。 (5) 、 (7)称拉 格朗日插值多项式,ln (x) 计算插值称拉格朗日多项式插值。 分段线性插值 将两个相邻的节点用直线连起来,如此形成的一条折线就是 分段线性插值函数,记作 I n (x) ,它满足I n ( x j ) y j 且I n (x) 在每个小区间[ x j , x j 1 ] ( j 0,1,, n) 上是线性函数。 I n (x) 可以表示为 n I n ( x) y j l j ( x) j 0 x x j 1 x x , x j 1 x x j ( j 0时舍去) j 1 j x x j 1 l j ( x) , x j x x j 1 ( j n时舍去) x j x j 1 0, 其它 注 : I n (x) 有 良 好 的 收 敛 性 , 即 对 于 x [a, b] 有 x 点的插值时,只用到 x 左 lim I n ( x ) g ( x ) 。用 I n (x) 计算 n n 无关。但 n 越大,分段越 右的两个节点,计算量与节点个数 多,插值误差越小。实际上用函数表作插值计算时,分段线 性插值就够了,如数学、物理中用的特殊函数表,数理统计 中用的概率分布表等。 三次样条插值 三次样条函数记作 S(x),a x b ,要求它满足以下条件: a) 在每个小区间xi 1, xi ,i 1,2,, n 上是 3 次多项式; b) 在 a x b 上二阶导数连续; c) S ( xi ) yi ,i 1,2,, n (14) 由条件 a,不妨将 S(x)记为 S ( x ) si ( x ), x xi 1, xi , i 1,...n S i ( x ) ai x 3 bi x 2 ci x d i (15) 其中ai ,bi ,ci ,d i 为待定系数,共 4n 个。 由条件 b: Si ( xi ) Si 1 ( xi ) Si ( xi ) Si1 ( xi ) S ( x ) S ( x ) i i i 1 i i 1,2,, n 1 (16) 容易看出, (14) 、 (16)式共含有 4n-2 个方程,为确定 S(x) 的 4n 个待定参数,尚需再给出 2 个条件。最常用的是所谓 自然边界条件: S ( x0 ) S ( x0 ) (17) 可以证明,4n 阶线性方程组(14) 、 (16)、 (17)有唯一解, 即 S(x)被唯一确定。但是,这种解法的工作量太大,方 程组又常呈病态,所以实际上要设计简便的解法。 曲线拟合问题的提法: 已知一组(二维)数据,即平面上的 n 个点( xi , yi ) , i 1,2,, n, xi 互不相同,寻求一个函数(曲线)y f (x) , 使 f (x) 在某中准则下与所有数据点最为接近,即曲线拟合 得最好,如图: y +( xi , yi ) i + + + + + + O y f (x) + + x 线性最小二乘法是解决曲线拟合最常用的方法, 基本思路是令: f ( x) a1r1 ( x) a2r2 ( x) amrm ( x) 其 中 rk (x) 是 事 先 选 定 的 一 组 函 数 , ak 是 待 定 系 数 (k 1,2,, m, m n). 拟 合 准 则 是 使 n 个 点( xi , yi ) , i 1,2,, n ,与 y f ( xi ) 的距离 i 的平方和最小,称最小 二乘准则。 一、系数的确定 记 n n i 1 i 1 J (a1 ,, am ) i2 [ f ( xi ) yi ]2 为求 a1,, am 使 J 达到最小,只需利用极值的必要条件 J 0(k 1,, m) 得到关于a1,, am 的线性方程组: ak m n r1 ( xi )[ ak rk ( xi ) yi ] 0 k 1 i 1 m n rm ( xi )[ ak rk ( xi ) yi ] 0 k 1 i 1 二、常用的曲线函数:rk ( x) 1、直线: y a1x a2 m y a x am x am1 2、多项式: 1 a1 3、双曲线(一支) : y a2 x a x 4、指数曲线: y a1e 2 船在该海域会搁浅吗? 在某海域测得一些点( x, y ) 处的水深 z(单位:英尺) 由下表给出,水深数据是在低潮时测得的。船的吃水 深度为 5 英尺,问在矩形(75,200) (50,150) 里的 哪些地方船要避免进入。 水道水深测量数据(单位:英尺) x 129.0 140.0 103.5 88.0 185.5 195.0 105.5 Y 7.5 Z 4 X 141.5 23.0 147.0 22.5 137.5 85.5 8 6 157.5 107.5 77.0 8 6 8 8 81.0 162.0 162.0 117.5 Y -6.5 -81.0 3.0 56.5 -66.5 84.0 -33.5 Z 9 9 8 8 9 4 9 一、问题分析: 假设:该海域海底是平滑的。由于测量点是散乱分布的,先 在平面上作出测量点的分布图,在利用二维插值方法补充一 些点的水深,然后作出海底曲面图和等高线图,并求出水深 小于5的海域范围。 二、问题求解: 1、作出测量点 的分布图: 150 100 50 0 -50 -100 60 80 100 120 140 160 180 200 2、作出海底地貌图 3、危险区域海底地貌图 4、危险区域平面图 150 100 50 0 -50 80 100 120 140 160 180 200 薄膜渗透率的测定 某种医用薄膜有允许一种物质的分子穿 透它,从高浓度的溶液向低浓度的溶液 扩散的功能,在试制时需测定薄膜被这VB 种分子穿透的能力。测定方法如下: 用面积 S 的薄膜将容器分成体积分别为V A ,VB 的两部分,在两 部分中分别注满该物质的两种不同浓度的溶液。此时该物质分 子就会从高浓度溶液穿过薄膜向低浓度溶液中扩散。通过单位 面积膜分子扩散的速度与膜两侧溶液的浓度差成正比,比例系 数 K 表证了薄膜被该物质分子穿透的能力,称为渗透率。定时 测量容器中薄膜某一侧的溶液浓度值,以此确定 K 的值。 VA S 一、假设 1、薄膜两侧的溶液始终是均匀的,即在任何时刻膜两侧的每 一处溶液的浓度都是相等的 2、当两溶液的浓度不一致时,物质的分子穿透薄膜总是从高 浓度溶液向低浓度溶液扩散 3、通过单位面积膜分子扩散的速度与膜两侧溶液的浓度差成 正比 4、薄膜是双向同性的即物质从膜的任何一侧向另一侧渗透的 性能是相同的 二、符号说明 1、C A (t ), CB (t ) 表示 t 时刻膜两侧的溶液浓度; 2、 A , B 表示初始时刻膜两侧的溶液浓度(单位: 毫克/立方厘米) ; 3、K 表示渗透率; 4、VA ,VB 表示由薄膜阻隔的容器两侧的体积; 三、建模 考察时段[t,t+Δt]薄膜两侧容器中该物质质量的变化。以容 器A为例,在该时段物质质量的增加量为: VAC A (t t ) VAC A (t ) 另一方面从B侧渗透至A侧的该物质质量为: SK(CB C A )t 由质量守恒定律有: VACA (t t ) VACA (t ) SK(CB CA )t 由此得: dCA SK (CB C A ) dt VA 又整个容器 中含有该物质的质量应该不变,所以有下式: VACA (t ) VBCB (t ) VA A VB B 即 所以 VB VB C A (t ) A B CB (t ) VA VA dCB (t ) 1 1 A B SK( )CB SK( ) dt VA VB VB VA 在利用初始条件 CB (t ) CB (0) B 得 AVA BVB VA VB VA ( B A ) e VA VB SK ( 1 1 )t V A VB 至 此 , 问 题 归 结 为 利 用 CB 在 时 刻 t j 的 测 量 数 据 C j ( j 1,2,, N ) 来辩识参数 K 和 A , B ,对应的数学 模型为求函数: N SK ( E ( K , a, b) [a be j 1 1 1 )t j V A VB Cj] 的最小值点(K,a, b),其中: a AVA BVB VA VB VA ( B A ) ,b VA VB 2 四、模型求解 设VA VB 1000立方厘米,S=10 平方厘米,求容器的 B 部分溶液浓度的测试结果如下表(其中C j 的单位为 毫克/立方厘米) t j (秒) 100 200 300 400 500 5 4.54 c c jj(10 ) 4.99 5.35 5.65 5.90 t j (秒) 600 700 800 900 1000 c j (105 ) 6.10 6.26 6.39 6.50 6.59 此时极小化的函数为: 10 E ( K , a, b) [a be j 1 用Matlab软件进行计算 20 K t j Cj ] 2