1、2019年3月20日,1,数学模型,Mathematica modelling,南 昌 大 学 基 础 课 部,马 新 生,插值与拟合,插 值 与 拟 合,2. 拟 合 的 基 本 原 理;线 性 最 小二 乘 拟 合。,3. 面 对 一 个 实 际 问 题,应 该 用 插 值,还 是拟 合。,2019年3月20日,3,插 值 问 题 实 例 1,标准正态分布函数 (x),求(1.014),(1.014)=0.8438 (0.84610.8438)0.4=0.8447,2019年3月20日,4,插 值 问 题 实 例 2,机械加工,2019年3月20日,5,插 值 问 题 的 提 法,2019
2、年3月20日,6,求 解 插 值 问 题 的 基 本 思 路,2019年3月20日,7,1.拉格朗日(Lagrange)多项式插值,1.1 插值多项式,有唯一解,2019年3月20日,8,1.拉格朗日(Lagrange)多项式插值,1.2 拉格朗插值多项式,又(2)有唯一解,故(3)与(1)相同。,2019年3月20日,9,1.拉格朗日(Lagrange)多项式插值,1.3 误差估计,2019年3月20日,10,1.拉格朗日(Lagrange)多项式插值,1.4 例 将0,/2 n等分,用g(x)=cos(x)产生n+1个节点,作Ln(x)(取n=1,2) ,计算cos(/6), 估计误差。,
3、解: n=1, (x0,y0)=(0,1), (x1,y1)=(/2,0),L1(x)=y0l0+y1l1=1-2x/, cos(/6)=0.6667,n=2, (x0,y0)=(0,1), (x1,y1)=(/4,0.7071),(x2,y2)=(/2,0), L2(x)=y0l0+y1l1+y2l2=8(x-/4)(x-/2)/2-16x(x-/2)0.7071/2 cos(/6)=L2(/6)=0.8508 精确值:cos (/6)=0.8660,2019年3月20日,11,1.拉格朗日(Lagrange)多项式插值,1.5 拉格朗日插值多项式的振荡,To MATLAB (runge),
4、Runge现象:,2019年3月20日,12,2.分段线性插值,计算量与n无关; n越大,误差越小.,2019年3月20日,13,3. 三次样条插值,2019年3月20日,14,插值方法小结,拉格朗日插值(高次多项式插值):曲线光滑;误差估计有表达式;收敛性不能保证(振荡现象)。用于理论分析,实际意义不大。,1.对于n+1个节点,拉格朗日插值为什么用n次多项式,次数大于n或小于n会如何?另外,得到的Ln(x)次数会不会小于n?,2.若产生n+1个节点的g(x)为m次多项式,Ln(x)与g(x)的关系如何(mn)?,3.样条插值为什么用3次多项式,而不是2或4次?,4. 三次样条插值中自然边界条
5、件的几何意义是什么?,2019年3月20日,15,1. 拉格朗日插值:自编程序,如名为 lagr1.m 的M文件,第一行为 function y=lagr1(x0,y0,x)输入:节点x0,y0, 插值点x (均为数组,长度自定义));输出:插值y (与x同长度数组))。应用时输入x0,y0,x后,运行 y=lagr1(x0,y0,x),2. 分段线性插值:已有程序 y=interp1(x0,y0,x),3. 三次样条插值:已有程序 y=interp1(x0,y0,x,spline)或 y=spline(x0,y0,x),用MATLAB作插值计算,2019年3月20日,16,用MATLAB作插
6、值计算,To MATLAB (Chazhi1),2019年3月20日,17,用MATLAB作插值计算,已知下轮廓线上数据如下,求x每改变0.1时的y值。,To MATLAB(Chazhi2),2019年3月20日,18,拟 合 问 题 实 例 1,求600C时的电阻R。,设 R=at+b a,b为待定系数,2019年3月20日,19,拟 合 问 题 实 例 2,求血药浓度随时间的变化规律c(t).,半对数坐标系(semilogy)下的图形,2019年3月20日,20,曲 线 拟 合 问 题 的 提 法,已知一组(二维)数据,即平面上 n个点(xi,yi) i=1,n, 寻求一个函数(曲线)y=
7、f(x), 使 f(x) 在某种准则下与所有数据点最为接近,即曲线拟合得最好。,y=f(x),i 为点(xi,yi) 与曲线 y=f(x) 的距离,2019年3月20日,21,曲线拟合问题最常用的解法线性最小二乘法的基本思路,先选定一组函数 r1(x), r2(x), rm(x), mn, 令f(x)=a1r1(x)+a2r2(x)+ +amrm(x) (1) 其中 a1,a2, am 为待定系数。,确定a1,a2, am 的准则(最小二乘准则): 使n个点(xi,yi) 与曲线 y=f(x) 的距离i 的平方和最小 。,记,问题归结为,求 a1,a2, am 使 J(a1,a2, am) 最
8、小。,2019年3月20日,22,线性最小二乘法的求解,记,当RTR可逆时,(4)有唯一解:,2019年3月20日,23,线性最小二乘拟合,思考,2. 为什么要规定mn,会出现什么情况?,1.a1,am有唯一解,1.怎样选择 r1(x), rm(x),以保证系数a1,am 有唯一解?,提示,若mn,有无穷多解。, RTR可逆,Rank(RTR)=m, Rank(R)=m, R列满秩, r1(x), rm(x)线性无关,若mn,超定方程组,无解;,若m=n,R可逆时有唯一解;,2. 令f(xi)=yi , i=1, n(此时J=0) 得,2019年3月20日,24,线性最小二乘拟合 f(x)=a
9、1r1(x)+ +amrm(x)中函数r1(x), rm(x)的选取,1. 通过机理分析建立数学模型来确定 f(x);,2. 将数据 (xi,yi) i=1, n 作图,通过直观判断确定 f(x):,2019年3月20日,25,用MATLAB作线性最小二乘拟合,1. 作多项式f(x)=a1xm+ +amx+am+1拟合,可利用已有程序:,a=polyfit(x,y,m),输入:数据x,y (同长度数组);m (拟合多项式次数) 输出:系数a=a1, am , am+1 (数组))。,2. 对超定方程组,可得最小二乘意义下的解。,仍用,2019年3月20日,26,To MATLAB(dianzu
10、1),用MATLAB作线性最小二乘拟合,得到 a1=3.3940, a2=702.4918,2.直接用,To MATLAB(dianzu2),结果相同。,2019年3月20日,27,问题:给药方式快速静脉注射;一室(中心室)模型;血药浓度变化规律;最小有效浓度和最大治疗浓度。,给药方案:每次注射量多大;间隔时间多长。,t,1. 药物排除速率与血药浓度成正比,比例系数 k(0);,2. 血液容积v, t=0瞬时注射剂量d, 血药浓度立即为d/v.,模型假设:,2019年3月20日,28,由假设1,,由假设2,若c1=10, c2=25(g/ml), 给药方案设计归结为根据数据(ti,ci) i=
11、1,n (d 给定)拟合曲线c(t), 以确定系数k, v.,快速静脉注射下一室模型的血药浓度c(t):,给药方案 设计:,2019年3月20日,29,记,则,To MATLAB(xueyao),思考::取对数化为线性最小二乘,对结果有什么影响?,2019年3月20日,30,布置“插值与拟合”实验,目的,1. 掌握用MATLAB计算三种插值的方法,并对结果作初步分析;,2. 掌握用MATLAB作线性最小二乘的方法;,内容,预备:编制计算拉格朗日插值的M文件.,1. a,b,c,d任选其二;,任选其一;,任选其一;选做。,要求,1. 目的。 2. 内容(对每一题):模型(对应用题);算法设计;计算结果;结果分析;附程序(必要时加说明语句)。 3. 收获和建议。,3. 用插值或拟合方法解决实际问题,注意二者的联系和区别。,