数学建模插值方法
第3讲 数学建模的插值法
8
分段线性插值
y o
Ln ( x ) y j l j ( x )
j 0 n
xj-1 xj xj+1 xn x
x0
x x j 1 , x j 1 x x j n越大,误差越小. x j x j 1 x x j 1 l j ( x) , x j x x j 1 lim Ln ( x) g ( x), x0 x x j x j 1 n 0, 其它 9
f (x, y) (ax b)(cy d)
其中有四个待定系数,利用该函数在矩形的四个顶 点(插值节点)的函数值,得到四个代数方程,正 好确定四个系数。 返回
23
用MATLAB作网格节点数据的插值
z=interp2(x0,y0,z0,x,y,’method’)
被插值点 的函数值
插值 节点
计算量与n无关;
xn
例
1 g ( x) , 6 x 6 2 1 x
用分段线性插值法求插值,并观察插值误差.
1.在[-6,6]中平均选取5个点作插值(xch11)
2.在[-6,6]中平均选取11个点作插值(xch12)
3.在[-6,6]中平均选取21个点作插值(xch13)
4.在[-6,6]中平均选取41个点作插值(xch14) To MATLAB xch11,xch12, xch13,xch14
被插值点
插值方法
要求x0,y0单调; x,y可取为矩阵, 或x取行向量,y取 为列向量,x,y的值 分别不能超出x0,y0 的范围。
‘nearest’ 最邻近插值 ‘linear’ 双线性插值 ‘cubic’ 双三次插值 缺省时, 双线性插值
数学建模数学实验插值及案例
数学建模数学实验插值及案例在科学研究和工程实践中,数学建模扮演着至关重要的角色。
通过建立数学模型,我们可以对现实世界的现象进行模拟和预测。
其中,插值方法是一种重要的数学建模工具,用于估计在给定数据点之间的未知值。
本文将探讨插值方法的基础理论以及一个具体的数学实验案例。
插值方法是一种数学技术,通过在给定的数据点之间估计未知的值。
最常用的插值方法包括线性插值、多项式插值和样条插值等。
线性插值是最简单的插值方法,它将数据点之间的变化视为线性的,即变化率保持恒定。
多项式插值方法则通过构建一个多项式函数来逼近数据点的变化趋势。
样条插值则通过将数据点连接成平滑的曲线来进行插值。
本案例将利用多项式插值方法对房价进行预测。
我们收集了一组房屋价格数据,包括房屋的面积、房龄、位置等信息。
然后,我们使用多项式插值方法构建一个函数来描述房价与这些因素之间的关系。
通过调整多项式的阶数,我们可以控制模型的复杂性。
我们使用该模型来预测新的房价。
在本案例中,我们使用了200个样本数据进行训练,并使用另外100个数据点进行测试。
我们发现,通过增加多项式的阶数,模型的预测精度可以得到提高。
然而,当阶数增加到一定程度后,模型的性能改善不再明显。
我们还发现模型的预测结果对训练数据的分布非常敏感,对于分布偏离较大的新数据点,预测结果可能会出现较大误差。
通过本次数学实验,我们深入了解了插值方法在数学建模中的应用。
在实际问题中,插值方法可以帮助我们更好地理解数据的变化趋势和预测未知的值。
然而,插值方法也存在一定的局限性,如本实验中模型对训练数据分布的敏感性。
未来工作中,我们可以尝试采用其他更加复杂的模型,如神经网络、支持向量机等来提高预测精度。
我们还应充分考虑数据的分布特性,以提高模型的泛化能力。
插值方法是数学建模中的重要工具之一,它可以让我们更好地理解和预测数据的趋势。
通过本次数学实验,我们深入了解了多项式插值方法的工作原理和实现过程,并成功地将其应用于房价预测问题中。
数学建模插值与拟合
数学建模插值与拟合数据插值与拟合插值与插值函数:已知由(可能未知或⾮常复杂)产⽣的⼀批离散数据,且个互异插值节点,在插值区间内寻找⼀个相对简单的函数,使其满⾜下列插值条件:再利⽤已求得的计算任⼀⾮插值节点的近似值,这就是插值。
其中称为插值函数,称为被插函数。
最⼩⼆乘拟合:已知⼀批离散的数据,互不相同,寻求⼀个拟合函数,使与的误差平⽅和在最⼩⼆乘意义下最⼩。
在最⼩⼆乘意义下确定的称为最⼩⼆乘拟合函数。
1)Lagrange插值法a.待定系数法:假设插值多项式,利⽤待定系数法即可求得满⾜插值条件的插值函数。
关键在于确定待定系数。
b.利⽤基函数的构造⽅法⾸先构造个满⾜条件:的次插值基函数,再将其线性组合即可得如下的Lagrange插值多项式:其中c.Lagrange插值余项注:上述两种构造⽅法所得的Lagrange插值多项式是⼀样的,即满⾜插值条件的Lagrange插值多项式是唯⼀的。
2)分段线性插值作分段线性插值的⽬的在于克服Lagrange插值⽅法可能发⽣的不收敛性缺点。
所谓分段线性插值就是利⽤每两个相邻插值节点作线性插值,即可得如下分段线性插值函数:其中特点:插值函数序列具有⼀致收敛性,克服了⾼次Lagrange插值⽅法的缺点,故可通过增加插值节点的⽅法提⾼其插值精度。
但存在于节点处不光滑、插值精度低的缺点。
3)三次样条插值三次样条插值的⽬的在于克服Lagrange插值的不收敛性和提⾼分段线性插值函数在节点处的光滑性。
所谓三次样条插值⽅法就是在满⾜下列条件:a.b.在每个⼦区间上是三次多项式的三次样条函数中寻找满⾜如下插值条件:以及形如等边界条件的插值函数的⽅法。
特点:三次样条插值函数序列⼀致收敛于被插函数,因此可通过增加节点的⽅法提⾼插值的精度。
4)插值⽅法的Matlab实现⼀维数据插值MATLAB中⽤函数interp1来拟合⼀维数据,语法是YI = INTERP1(X,Y,XI,⽅法)其中(X,Y)是已给的数据点,XI 是插值点,其中⽅法主要有'linear' -线性插值,默认'pchip' -逐段三次Hermite插值'spline' -逐段三次样条函数插值其中最后⼀种插值的曲线⽐较平滑例:x=0:.12:1; x1=0:.02:1;y=(x.^2-3*x+5).*exp(-5*x).*sin(x);plot(x,y,'o'); hold on;y1=interp1(x,y,x1,'spline');plot(x1,y1,':')如果要根据样本点求函数的定积分,⽽函数⼜是⽐较光滑的,则可以⽤样条函数进⾏插值后再积分,在MATLAB 中可以编写如下程序:function y=quadspln(x0,y0,a,b)f=inline(‘interp1(x0,y0,x,’’spline’’)’,’x’,’x0’,’y0’);y=quadl(f,a,b,1e-8,[],x0,y0);现求six(x)在区间[0,pi]上的定积分,只取5点x0=[0,0.4,1,2,pi];y0=sin(x0);I=quadspln(x0,y0,0,pi)结果得到的值为 2.01905,精确值为2⼆元函数插值:MATLAB中⽤函数interp2来拟合⼆维⽹格(X,Y)上的数据Z,语法是YI = INTERP2(X,Y, Z,XI, YI,⽅法)其中(X,Y,Z)是已给的数据点,(XI,YI)是插值点坐标,其中⽅法主要有'linear' -线性插值,默认'pchip' -逐段三次Hermite插值'spline' -逐段三次样条函数插值其中最后⼀种插值的曲⾯⽐较平滑例:[x,y]=meshgrid(-3:.6:3,-2:.4:2);z=(x.^2-2*x).*exp(-x.^2-y.^2-x..*y);[x1,y1]=meshgrid(-3:.2:3,-2:.2:2);%⽣成⽹格,x1和y1均为同样size的矩阵z1=interp2(x,y,z,x1,y1,’spline’); %z1是矩阵,size 和x1,y1相同surf(x1,y1,z1);axis([-3,3,-2,2,-0.7,1.5]);-33如果数据不是在⽹格上取的,则可⽤函数griddata 来解决语法是YI = griddata(X,Y, Z ,XI, YI ,‘v4’)其中(X , Y ,Z )是已给的数据点,(XI ,YI )是插值点坐标,其中除了⽅法‘v4’外还有 'linear' -线性插值,默认 'cublc' -逐段三次Hermite 插值 'nearest' 其中‘v4’⽅法⽐较好例x=-3+6*rand(200,1); %⽣成随机点的x坐标向量xy=-2+4*rand(200,1); %⽣成随机点的y坐标向量yz=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y); % 上述点的样本值向量z[x1,y1]=meshgrid(-3:.2:3,-2:.2:2); %⽣成⽹格,x1和y1均为同样size的矩阵z1=griddata(x,y,z,x1,y1,’v4’);surf(x1,y1,z1);axis([-3,3,-2,2,-0.7,1.5]);⽣成的图类似上图。
插值算法的介绍及其在数学建模中的应用
插值算法的介绍及其在数学建模中的应⽤⽬录插值算法的介绍及其在数学建模中的应⽤%本⽂根据清风数学建模课程插值算法及相关资料总结⽽成,仅供学习使⽤%本⽂参考了(),对介绍的顺序及内容进⾏了改进%由于本⽂仅仅是简要介绍插值算法在建模中的应⽤,因此样条插值的可微性证明等各种复杂繁琐的部分在本⽂中不再引⼊%本⽂仅介绍⼀维数据的插值,多维数据的插值⽅法与⼀维插值类似⼀、插值的介绍及其作⽤数模⽐赛中,常常需要根据已知的样本点进⾏数据的处理和分析,⽽有时候现有数据较少或数据不全,不⾜以⽀撑分析的进⾏,这时就需要使⽤插值法“模拟产⽣”⼀些新的但⼜⽐较靠谱的值来满⾜需求,这就是插值的作⽤。
%在直观上,插值就是找到⼀个连续函数使其经过每个样本点%插值法还可⽤于短期的预测问题(插值与拟合经常会被弄混,为了区分,这⾥简要介绍⼀下拟合:即找到⼀个函数,使得该函数在最⼩⼆乘的意义下与已知样本点的总体差别最⼩,该函数不⼀定要经过样本点。
通常情况下,拟合要求已知样本点的数据较多,当数据较少时不适⽤)⼆、插值法原理三、插值法的分类%注:下⾯的1、2、3、4 并⾮是并列关系,⼏个部分之间也有交叉,⽬的在于逐渐引出数学建模中最常⽤的两种插值⽅法:三次样条插值与三次埃尔⽶特插值。
1、普通多项式插值多项式插值中,拉格朗⽇插值与⽜顿插值是经典的插值⽅法,但它们存在明显的龙格现象(下⾯会解释龙格现象),且不能全⾯反映插值函数的特性(仅仅保证了插值多项式在插值节点处与被插函数有相等的函数值)。
然⽽在许多实际问题中,不仅要求插值函数与被插值函数在所有节点处有相同的函数值,它也需要在⼀个或全部节点上插值多项式与被插函数有相同的低阶甚⾄⾼阶的导数值。
对于这些情况,拉格朗⽇插值和⽜顿插值都不能满⾜。
因此,数学建模中⼀般不使⽤这两种⽅法进⾏插值,这⾥也不再介绍这两种⽅法。
龙格现象(Runge phenomenon): 1901年,Carl Runge 在他的关于⾼次多项式插值风险的研究中,发现⾼次插值函数可能会在两端处波动极⼤,产⽣明显的震荡,这种现象因此被称为龙格现象。
数学建模---插值法
数学建模---插值法插值法
插值法定义
构造⼀个函数,需要这个函数完全过给定点
对于构造函数:
插值⽅法
拉格朗⽇插值法(插值多项式)
1.
三个点时
2.
n个点时
拉格朗⽇插值不⾜ — 龙格现象
当插值函数的阶数越⼤时,在两端的波动极⼤,会产⽣明显的震荡分段插值
n
1. 分段线性插值
每两个点之间分别构成⼀个线段,只⽤到了最近的两个点
2. 分段⼆次插值
选最近的n个已知点,构造n-1次函数
例如:选最近的3个点,构造⼀个⼆次函数
3.
⽜顿插值法例如:
有
点
有
点上两个⽜顿插值只有⼀项不想同,所以⽜顿插值法具有继承性
以上三种⽅法都没有反应被插值函数的导数
4. 埃尔⽶特(Hermite)插值法不但要求在节点的函数值相等,也要求对应的导数值也相等,甚⾄更⾼阶导数也相等分段三次埃尔⽶特插值运⽤了⼀阶导数相等
内置函数:
x ...x 0n −1x ...x 0n
5. 三次样条插值
运⽤了⼆阶连续可微 且 每个区间
是三次多项式
内置函数:
n
维数据插值[x ,x ]i i +1。
数学建模之Newton 插值法
计算方法
第二章
插值法
—— Newton 插值法
1
Newton 插值
为什么 Newton 插值
Lagrange 插值简单易用,但若要增加一个节点时,全部基函 数 lk(x) 都需重新计算,不太方便。
13
插值举例
可以看出,当增加一个节点时,牛顿插值公式只 需在原来的基础上增加一项,前面的计算结果仍 然可以使用。与拉格朗日插值相比,牛顿插值具 有灵活增加节点的优点!
注:增加插值节点时,须加在已有插值节点的后面!
14
向前差分
在实际应用中,通常采用等距节点: xi = x0 + i h ,i = 1, 2, …, n h>0,称为步长
Nn(x)
f [ x, x0 , ... , xn ]( x x0 )...(x xn1 )( x xn )
Rn(x)
10
Newton 插值公式
f (x) = Nn(x) + Rn(x)
N n ( x ) a0 a1 ( x x0 ) a2 ( x x0 )( x x1 ) an ( x xi )
f ( k ) ( ) f [ x0 , x1 , , xk ] k!
差商的等价定义:(教材上的所采用的定义) f [ x0 , , xk 2 , xk ] f [ x0 , , xk 1 ] f [ x0 , x1 , , xk ] xk xk 2 若 h(x) = c f(x),则 h[ x0 , x1 ,, xk ] c f [ x0 , x1 ,, xk ] 若 h(x) = f(x) + g(x),则 h[ x0 , x1 ,, xk ] f [ x0 , x1 ,, xk ] g[ x0 , x1 ,, xk ]
数学建模_插值与拟合总结
y0 y1
⎪⎩a0 + a1xn + a2 xn2 + L + an xnn = yn
记此方程组的系数矩阵为 A ,则
(3)
1 x0 x02 L x0n det( A) = 1 x1 x12 L x1n
LLLLLLL
1 xn xn2 L xnn 是范德蒙特(Vandermonde)行列式。当 x0 , x1,L, xn 互不相同时,此行列式值不为零。因 此方程组(3)有唯一解。这表明,只要 n + 1 个节点互不相同,满足插值要求(2)的
z=x(i); s=0.0; for k=1:n
p=1.0; for j=1:n
if j~=k p=p*(z-x0(j))/(x0(k)-x0(j));
end end s=p*y0(k)+s; end y(i)=s; end
-176-
1.2 牛顿(Newton)插值 在导出 Newton 公式前,先介绍公式表示中所需要用到的差商、差分的概念及性质。 1.2.1 差商
=
f0
+
Δf 0 h
(x − x0 ) + L +
Δn f0 n! h n
( x − x0 )( x − x1)L( x − xn−1)
若令 x = x0 + th ,则上式又可变形为
Nn (x0
+ th)
=
f0
+ tΔf0
+L +
t(t
− 1)L(t n!
−n
+ 1) Δn
f0
上式称为 Newton 向前插值公式。
f [x, x0 , x1] = f [x0 , x1, x2 ] + ( x − x2 ) f [x, x0 , x1, x2 ] LL
数学建模插值法
多项式插值法包含:
拉格朗日插值 牛顿插值 三次埃尔米特插值法 分段线性插值 分段三次埃尔米特插值法 三次样条插值
1、 拉格朗日插值公式
(1)定义
对给定的n+1个节点x0 , x1,x2,…,xn及对应的函数值y0 , y1,y2,…,yn, 构造一个n次插值多项式:
y = ∑ y k lk ( x )
x y
x0 y0
x1 y1
x2 y2
… …
xn yn
怎样计算其它点的函数值?
二、问题的解决
两种方法: (1)函数插值 插值; 插值 (2)曲线拟合 拟合. 拟合
三、插值法
定义: 非常复杂或未知时, 定义:当精确函数 y = f(x) 非常复杂或未知时,在一系 测得函数值 列节点 x0 … xn 处测得函数值 y0 = f(x0), … ,yn = f(xn), , 由此构造一个简单易算 简单易算的近似函数 由此构造一个简单易算的近似函数 p(x) ≈ f(x),满足条件 , p(xi) = f(xi) (i = 0, … n)------ 插值条件 称为f(x) 的插值函数; 插值函数; 这里的 p(x) 称为 构造插值函数的方法为插值法。 构造插值函数的方法为插值法。 插值法 插值多项式;构 当 p(x)为多项式时,我们称p(x)为插值多项式 插值多项式 造插值多项式的方法称为多项式插值法 多项式插值法. 多项式插值法
插值法
2 1.5
1
0.5
0
-0.5 -5
-4
-3
-2
-1
0
1
2
3
4
5
问题
一水库上游河段降暴雨, 一水库上游河段降暴雨,根据预报测算上游流入水库的流量为 立方米/ Q(t) (102立方米/秒) : t (时) 8 12 16 24 30 44 48 56 时 Q(t) 36 54 78 92 101 35 25 16 ( ) 60 13
数学建模插值算法
数学建模插值算法插值算法是数学建模中一种常用的技术,用于在已知数据点处的估计和未知数据点之间的预测。
插值算法可以帮助我们充分利用已知数据点的信息,获得更完整和连续的数据。
在数学建模中,插值算法有多种方法可选,常见的包括拉格朗日插值、牛顿插值、样条插值等。
拉格朗日插值是最常见和简单的插值方法之一、它的基本思想是通过构造一个n次多项式来近似通过已知数据点的曲线。
具体地说,我们可以根据已知数据点的横纵坐标,构造出n个满足这些坐标的插值基函数。
然后,将这些插值基函数分别与相应基函数在未知数据点处取值的乘积相加,得到插值多项式。
最后,利用这个多项式来估计未知数据点的纵坐标。
牛顿插值是另一种常用的插值方法。
它的基本思想是使用差商的概念来创建一个n次多项式。
差商是一个递归定义的概念,其基本思想是通过逐步添加一个已知数据点来计算多项式的高次项系数。
具体地说,我们可以根据已知数据点的横纵坐标,构造出n个差商。
然后,将这些差商与相应基函数在未知数据点处取值的乘积相加,得到插值多项式。
最后,利用这个多项式来估计未知数据点的纵坐标。
样条插值是一种更加复杂但更精确的插值方法。
它的基本思想是通过构造一组n次多项式的集合,使得每个多项式在相应数据点处完全符合已知数据。
具体地说,我们可以根据已知数据点的横纵坐标,构造出n个多项式,并设置它们在数据点处的约束条件。
然后,通过求解一个线性方程组来计算每个多项式的系数。
最后,利用这组多项式来估计未知数据点的纵坐标。
以上是数学建模中常用的几种插值算法,它们各有优缺点,在不同情景下有着不同的适用性。
插值算法在实际应用中具有广泛的用途,例如地图绘制、图像处理、信号处理等领域。
在进行插值计算时,要根据实际情况选择适当的算法,并合理处理计算误差,以提高插值结果的准确性和稳定性。
数学建模插值方法
*多项式插值的问题
前面介绍了构造插值公式的方法,并分析了它 们的余项。在实际应用插值函数作近似计算时,总 希望插值公式余项 R(x) 的绝对值小一些,即使得 逼近的精度好。从表达式看,似乎提高插值多项式 的次数便可达到目的,但实际上并非如此。
例如 给定函数
fx11x2, 5x5,
取其等距节点 x i 5 1 i/n 0 ,( i 0 ,1 , ,n ) , 构造的
H 3 (x ) 1 2 x x 1 x x 0 0 x x 0 x x 1 1 y 0 1 2 x x 0 x x 1 1 x x 1 x x 0 0 y 1
(xx0) x x0 x x 1 1 2y0 ' (xx1) x x1 x x0 0 2y1 '
x34x23
function yi=newtcz(x,y,xi) n=length(x); m=length(xi); nt=zeros(n,n); nt(:,1)=y'; for i=2:n
for j=i:n nt(j,i)=(nt(j,i-1)-nt(j-1,i-1))/(x(j)-x(j-(i-1))); end End for i=1:n nt(i,i) End for i=1:m yi(i)=nt(1,1); for j=2:n t=1; for s=1:j-1
(完整版)数学建模 插值和拟合
x
xn
x
4.2 MATLAB实现插值
Matlab 实现:实现插值不需要编制函 数程序,它自身提供了内部的功能函数 interp1(一维分段插值) interp2(二维) interp3(三维) intern(n维)
4.3.1一维插值
用MATLAB作插值计算
一维插值函数: yi=interp1(x,y,xi,'method')
h=1:0.1:12;
t=interp1(hours,temps,h,'spline');
plot(hours,temps,'+',h,t,'r:')
xlabel('Hour'),ylabel('Degrees Celsius’)
例1:从1点12点的11小时内,每隔1小时测量一次温度, 测得的温度的数值依次为:5,8,9,15,25,29, 31,30,22,25,27,24.试估计(1)每隔1/10小时 的温度值;(2)估计1点30分和13的温度值。
例1:从1点到12点的11小时内,每隔1小时测量一次温 度,测得的温度的数值依次为:5,8,9,15,25, 29,31,30,22,25,27,24.试估计(1)每隔 1/10小时的温度值;(2)估计1点30分和13的温度值。
hours=1:12;
temps=[5 8 9 15 25 29 31 30 22 25 27 24];
x x0 y y0
x1 … xn y1 … yn
其中x0,x1, …xn是n+1个互不相同的点,求一个 近似函数 (x) ,使得
( xi ) f ( xi ) i 0,1 …n
数学建模 插值与拟合
%作图
2020/8/19
例 已知飞机下轮廓线上数据如下,Байду номын сангаасx每改变0.1时的y值。
X0 3
5
7
9 11 12 13 14 15
Y 0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6
机翼下轮 廓线
y
x
自己思考,10分钟小组讨论!
2020/8/19
二维插值
(1)二维插值的定义
用MATLAB作网格节点数据的插值
z=interp2(x0,y0,z0,x,y,’method’)
被插值点 的函数值
插值 节点
被插值点 插值方法
‘nearest’ 最邻近插值 ‘linear’ 双线性插 值 ‘cubic’ 双三次插 值 要求x0,y0单调;x,y可取为缺矩省阵时,, 或x取双行线向性量插,值y 取为列向量,x,y的值分别不能超出x0,y0的范围。
一、函数插值 二、曲线拟合
一维插值 二维插值
2020/8/19
在工程中,常有这样的问题:给定 一批数据点(它可以是设计师给定,也 可能是从测量与采样中得到),需确定 满足特定要求的曲线(面)通过所给所 有数据点,这就是插值问题。
2020/8/19
一维插值
(1)插值的定义 (2)插值的方法
拉格朗日插值 分段线性插值 三次样条插值
x x2 x0 x2
y0
x x1
x0 x0
x x2 x1 x2
y1
x x2
x0 x0
x x1 x2 x1
y2
直接验证可知,Ln x满足插值条件.
Notice:拉格朗日多项式插值次数越高,越易产生振荡,这 种振荡称为龙格(Runge)现象 。
数学建模插值及拟合详解教学内容
数学建模插值及拟合详解插值和拟合实验目的:了解数值分析建模的方法,掌握用Matlab进行曲线拟合的方法,理解用插值法建模的思想,运用Matlab一些命令及编程实现插值建模。
实验要求:理解曲线拟合和插值方法的思想,熟悉Matlab相关的命令,完成相应的练习,并将操作过程、程序及结果记录下来。
实验内容:一、插值1.插值的基本思想·已知有n +1个节点(xj,yj),j = 0,1,…, n,其中xj互不相同,节点(xj, yj)可看成由某个函数 y= f(x)产生;·构造一个相对简单的函数 y=P(x);·使P通过全部节点,即 P (xk) = yk,k=0,1,…, n ;·用P (x)作为函数f ( x )的近似。
2.用MATLAB作一维插值计算yi=interp1(x,y,xi,'method')注:yi—xi处的插值结果;x,y—插值节点;xi—被插值点;method—插值方法(‘nearest’:最邻近插值;‘linear’:线性插值;‘spline’:三次样条插值;‘cubic’:立方插值;缺省时:线性插值)。
注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。
练习1:机床加工问题机翼断面下的轮廓线上的数据如下表:用程控铣床加工机翼断面的下轮廓线时每一刀只能沿x方向和y方向走非常小的一步。
表3-1给出了下轮廓线上的部分数据但工艺要求铣床沿x方向每次只能移动0.1单位.这时需求出当x坐标每改变0.1单位时的y坐标。
试完成加工所需的数据,画出曲线.步骤1:用x0,y0两向量表示插值节点;步骤2:被插值点x=0:0.1:15; y=y=interp1(x0,y0,x,'spline'); 步骤3:plot(x0,y0,'k+',x,y,'r')grid on答:x0=[0 3 5 7 9 11 12 13 14 15 ];y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 ];x=0:0.1:15;y=interp1(x0,y0,x,'spline');plot(x0,y0,'k+',x,y,'r')grid on3.用MATLAB作网格节点数据的插值(二维)z=interp2(x0,y0,z0,x,y,’method’)注:z—被插点值的函数值;x0,y0,z0—插值节点;x,y—被插值点;method—插值方法(‘nearest’:最邻近插值;‘linear’:双线性插值;‘cubic’:双三次插值;缺省时:双线性插值)。
数学建模讲稿插值拟合方程求根
根据直线的点斜式方程变形得到 q(x)在第 i 段 ?xi?1, xi ?上的表达式
为
q(x) ?
x ? xi xi?1 ? xi
yi ?1
?
x ? xi?1 xi ? xi?1
yi , xi?1
?
x?
xi ,i
? 1,2,?
,n
可以证明,分段线性插值具有良好的收敛性,即 lim q(x) ? f (x), 其 n? ?
[xi,yi]=meshgrid(1:0.1:12,5:85);
zi=interp2(x, y, z, xi, yi,); mesh(xi, yi, zi) xlabel(‘月份' ) ylabel(‘纬度' ) zlabel(‘气旋' )
axis([0 12 0 90 0 50])
title(‘南半球气旋可视化图形' )
j?0
可知
m
mn
? ? ? ?
2 2
? (S ( xi ) ? yi )2? ( a j? j ( xi ) ? yi )2
i? 0
i?0 j?0
为拟合系数 a j ( j ? 0,1, L , n )的函数
因此可假设
mn
? ? ? (a0 , a1 ,L , an ) ? ( a j? j ( xi ) ? yi )2
y=
5 5 5 5 5 5 5 5 5 5 55 15 15 15 15 15 15 15 15 15 15 15 15 25 25 25 25 25 25 25 25 25 25 25 25 35 35 35 35 35 35 35 35 35 35 35 35 45 45 45 45 45 45 45 45 45 45 45 45 55 55 55 55 55 55 55 55 55 55 55 55 65 65 65 65 65 65 65 65 65 65 65 65 75 75 75 75 75 75 75 75 75 75 75 75 85 85 85 85 85 85 85 85 85 85 85 85
数学建模 数学实验---插值及案例
四、插值方法及MATLAB求解
插值方法 选用不同类型的插值函数,逼近的效 果就不同,一般有: 拉格朗日插值(lagrange插值) 分段线性插值 Hermite 三次样条插值。
MATLAB实现插值 MATLAB自身提供了如下内部的功能函数:
一维插值函数:interp1()
例 在某海域测得一些点(x,y)处的水深z由下表 给出,船的吃水深度为5英尺,在矩形区域(75,200) ×(-50,150)里的哪些地方船要避免进入.
x y z x y z 129 140 103.5 88 185.5 195 7.5 141.5 23 147 22.5 137.5 4 8 6 8 6 8 157.5 -6.5 9 107.5 -81 9 77 3 8 105 85.5 8
被插值点 的函数值
插值节点 被插值点
插值方法
注:要求x0,y0单调;x, ‘nearest’ 最邻近插值; ‘linear’ 双线性插值; y可取为矩阵,或x取行向 双三次插值; 量,y取为列向量,x,y的 ‘cubic’ 缺省时 双线性插值. 值分别不能超出x0,y0的范 围.
例 用以上4种方法对 z xe 式插值效果进行比较。 t=-2:0.5:2
%作图
练习 已知飞机下轮廓线上数据如下,求x每改变0.1时的y 值.
X Y
0 0
3 1.2
5 1.7
7 2.0
9 2.1
11 2.0
12 1.8ห้องสมุดไป่ตู้
13 1.2
14 1.0
15 1.6
y
机翼下 轮廓线
x
用MATLAB作二维插值计算
(数学建模课件)10.1数据插值方法及应用
2、多项式插值
设有 m 次多项式
P(x) a0 x m a1x m1 am1x am
通过所有 n 1个点 (x0 , y0 ), (x1, y1),, (xn , yn ) ,那么就有
a0 xi m a1xi m1 am1xi am yi , i 0,1,, n
2 vi
vi2 4vi1 3vi 2(ti1 ti )
向后差商公式
2 vi
3vi 4vi1 vi2 2(ti ti1 )
估算出水塔中水的流速(单位:立方米/小时)
见下表。
时刻
0 0.921 1.843 2.949 3.871 4.978 5.900
流速 54.516 42.320 38.085 41.679 33.297 37.814 30.748
用二阶差商来估算 ti 时刻的水流速度,即 f (ti ) 2vi 。
具体地,因为所有数据被水泵两次工作分割成三
组数据,对每组数据的中间数据采用中心差商,前后
两个数据不能够采用中心差商,改用向前或向后差
商。
中心差商公式
2 vi
vi2
8vi1 8vi1 12(ti1 ti )
vi2
向前差商公式
先用 MATLAB 画出水流速散点图。
t=[0 0.921 1.843 2.949 3.871 4.978 5.9 7.006 7.982 8.967 10.954 12.032 12.954 13.875 14.982 15.903 16.826 17.931 19.037 19.959 20.839 22.958 23.88 24.986 25.908]; r=[54.516 42.320 38.085 41.679 33.297 37.814 30.748 38.455 32.122 41.718 73.686 76.434 71.686 60.19 68.333 59.217 52.011 56.626 63.023 54.859 55.439 57.602 57.766 51.891 36.464];
数学建模插值及拟合详解
插值和拟合【1 】试验目标:懂得数值剖析建模的办法,控制用Matlab进行曲线拟合的办法,懂得用插值法建模的思惟,应用Matlab一些敕令及编程实现插值建模.试验请求:懂得曲线拟合和插值办法的思惟,熟习Matlab相干的敕令,完成响应的演习,并将操纵进程.程序及成果记载下来.试验内容:一.插值1.插值的根本思惟·已知有n +1个节点(xj,yj),j = 0,1,…, n,个中xj互不雷同,节点(xj, yj)可算作由某个函数 y= f(x)产生;·结构一个相对简略的函数y=P(x);·使P经由过程全体节点,即 P (xk) = yk,k=0,1,…, n ;·用P (x)作为函数f ( x )的近似.2.用MA TLAB作一维插值盘算yi=interp1(x,y,xi,'method')注:yi—xi处的插值成果;x,y—插值节点;xi—被插值点;method—插值办法(‘nearest’:最临近插值;‘linear’:线性插值;‘spline’:三次样条插值;‘cubic’:立方插值;缺省时:线性插值).留意:所有的插值办法都请求x是单调的,并且xi不克不及够超出x的规模.演习1:机床加工问题机翼断面下的轮廓线上的数据如下表:x 0 3 5 7 9 11 12 13 14 15y 0用程控铣床加工机翼断面的下轮廓线时每一刀只能沿x偏向和y偏向走异常小的一步.表3-1给出了下轮廓线上的部分数据但工艺请求铣床沿x偏向每次只能移动单位.这时需求出当x 坐标每转变单位时的y 坐标. 试完成加工所需的数据,画出曲线. 步调1:用x0,y0两向量暗示插值节点;步调2:被插值点x=0:0.1:15; y=y=interp1(x0,y0,x,'spline'); 步调3:plot(x0,y0,'k+',x,y,'r')grid on答:x0=[0 3 5 7 9 11 12 13 14 15 ]; y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 ]; x=0:0.1:15;y=interp1(x0,y0,x,'spline'); plot(x0,y0,'k+',x,y,'r') grid on0510150.511.522.53.用MA TLAB 作网格节点数据的插值(二维)z=interp2(x0,y0,z0,x,y,’method’)注:z—被插点值的函数值;x0,y0,z0—插值节点;x,y—被插值点;method—插值办法(‘nearest’:最临近插值;‘linear’:双线性插值; ‘cubic’:双三次插值;缺省时:双线性插值).留意:请求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分离不克不及超出x0,y0的规模.4.用MA TLAB作散点数据的插值盘算cz =griddata(x,y,z,cx,cy,‘method’)注:cz—被插点值的函数值;x,y,z—插值节点;cx,cy—被插值点;method—插值办法(‘nearest’:最临近插值;‘linear’:双线性插值; ‘cubic’:双三次插值;'v4‘:Matlab供给的插值办法;缺省时:双线性插值).演习2:航行区域的警示线某海域上频仍地有各类吨位的船只经由.为包管船只的航行安然,有关机构在低潮时对水深进行了测量,下表是他们供给的测量数据:水道水深的测量数据x 129.0140.0 103.5 88.0 185.5 195.0 105.5y 7.5 141.5 23.0 147.0 22.5 137.5 85.5z 4 8 6 8 6 8 8x157.5 107.5 77.0 81.0 162.0 162.0 117.5y -6.5 -81.0 3.0 56.5 -66.5 84.0 -33.5z 9 9 8 8 9 4 9个中(x, y)为测量点,z为(x, y)处的水深(英尺),水深z是区域坐标(x, y)的函数z= z (x, y),船的吨位可以用其吃水深度来反应,分为4英尺.英尺.5英尺和英尺 4 档.航运部分要在矩形海域(75,200)×(-50,150)上为不合吨位的航船设置警示标识表记标帜.请依据测量的数据描写该海域的地貌,并绘制不合吨位的警示线,供航运部分应用. x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5];y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5];z=[-4 -8 -6 -8 -6 -8 -8 -9 -9 -8 -8 -9 -4 -9];cx=75:0.5:200;cy=-70:0.5:150;cz=griddata(x,y,z,cx,cy','cubic');meshz(cx,cy,cz),rotate3dxlabel('X'),ylabel('Y'),zlabel('Z')%pausefigure(2),contour(cx,cy,cz,[-5 -5]);grid on,hold onplot(x,y,'+')xlabel('X'),ylabel('Y')200XYZXY80100120140160180200-60-40-20020406080100120140演习3:估量水塔的水流量—93,请绘出三次样条插值曲线,并盘算一天的总的用水量. 解:t0=[0.46,1.38,2.4,3.41,4.43,5.44,6.45,7.47,8.45,11.49,12.49,13.42,14.43,15.44,16.37,17.38,18.49,19.50,20.40,24.43,25.32];v0=[11.2,9.7,8.6,8.1,9.3,7.2,7.9,7.4,8.4,15.6,16.4,15.5,13.4,13.8,12.9,12.2,12.2,12.9,12.6,11.2,3.5]; t=0:0.1:26; y=interp1(t0,v0,t,'spline'); plot(t0,v0,'k+',t,y,'r') grid on0510********-10-55101520二.曲线拟合已知一组(二维)数据,即平面上 n 个点(xi,yi) i=1,…n, 追求一个函数(曲线)y=f(x), 使 f(x) 在某种准则下与所稀有据点最为接近,即曲线拟合得最好.最经常应用的办法是线性最小二乘拟合 1.多项式拟合⏹对给定的数据(xj,yj),j = 0,1,…, n;⏹拔取恰当阶数的多项式,如二次多项式g(x)=ax^2+bx+c;⏹使g(x)尽可能逼近(拟合)这些数据,但是不请求经由给定的数据(xj,yj); 2.多项式拟合指令1)多项式f(x)=a1xm+ …+amx+am+1拟合指令:a=polyfit(x,y,m)a:输出多项式拟合系数a[a1,a2,…,am];x,y:输出长度雷同的数组;m:多项式的次数. 2)多项式在x处的值y的盘算敕令:y=polyval(a,x)演习4:对下面一组数据作二次多项式拟合写出拟合敕令:plot(x,y,'k+',x,z,'r')作出数据点和拟合曲线:0.10.20.30.40.50.60.70.80.91写出拟合的二次多项式:0317.01293.208108.9)(2-+-=x x x f3.可化为多项式的非线性拟和曲线改直是工程中又一经常应用的断定曲线情势的办法,很多罕有的函数都可以经由过程恰当的变换转化为线性函数.(1)幂函数 by ax c =+ln ln ln y c a b x -=+(2)指数函数 xy ab c =+ln ln ln y c a x b -==(3)抛物函数 2,(0)y ax bx c x =++≠b ax xcy +=- 演习5:完成教材P93页的习题5的第一小题. x0=[0,300,600,1000,1500,2000];x=0:100:2000;y0=[0.9689,0.9322,0.8969,0.8519,0.7989,0.7491];y=interp1(x0,y0,x,'spline');plot(x0,y0,'k+',x,y,'r')grid on0200400600800100012001400160018002000。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
插值部分
一、问题提出
设 x0, x1 xn 为给定的节点,yi f(xi),i0,1,n 为相应的函数值,求一个次数不超过 n的多项式 Pn (x), 使其满足
Pn(xi) yi, i0,1,n. 这类问题称为插值问题。f ( x ) 称为被插值函数,P n ( x ) 称
为插值函数,x0, x1 xn 称为插值节点
引入记号 n 1 ( x i) ( x x 0 )x (x 1 ) ( x x n ),
易证 n 1 ( x i ) ( x i x 0 ) ( x i x i 1 ) x i ( x i 1 ) ( x i x n ),
从而Lagrange插值多项式可表示为
Pn(x)i n0yi (xxn i) 1(n x)1(xi)
3
2
1
0
2
3
4
5
6
7
8
9
10
缺点: 当增加或减少插值节点时,基函数需要重新 构造,不便于实际的计算使用
四、 Newton插值法
(1)差商定义
定义
称 f[xi,xj]f(xxi)i xfj(xj), ij 为 f ( x ) 在 x i , x j
组 Aa b ,其中
1 x0
A
1
x1
1 x n
x0 x1
n n
,
a0
a
a
1
,
x
n
n
a
n
y0
b
y1
y
n
观察发现矩阵A是范德蒙矩阵,那么,由几代知识知道矩阵A 的行列式
为 Det(A) (xi xj) ,由定理中条件,插值结点为彼此互异的, 那么行 0jin
列式不为零.故由Cramer法则知线性代数方程组 Aa b 存在唯一解.
yi(s)=0; for i=1:n
w(i)=1; dw(i)=1; for j=1:n
if (j~=i) w(i)=(xi(s)-x(j))*w(i); dw(i)=(x(i)-x(j))*dw(i);
end end yi(s)=y(i)*w(i)/dw(i)+yi(s); end end
6
5
4
三、Lagrange插值法
(1)Lagrange插值多项式可以表示为
n
Pn (x) yili (x) i0
li( x ) ( x ( i x x x 0 0 ) )( ( x x i x x i i 1 1 ) ) ( ( x x i x x i i 1 1 ) )( ( x x i x n x ) n ),i 0 ,1 , n
例2.求过点(2,0)(4,3)(6,5)(8,4)(10,1)的拉格朗日型插值多 项式。
解:用4次插值多项式对5个点插值
x0,y02 ,0,x1,y14 ,3 ,x2,y26 ,5, x3,y38 ,4,x4,y41 0 ,1 ,
l0 ( x ) ( ( 2 x 4 4 ) ) ( ( 2 x 6 6 ) ) ( ( 2 x 8 8 ) ) ( ( 2 x 1 1 0 0 ) ) 3 1 8 4 ( x 4 ) ( x 6 ) ( x 8 ) ( x 1 0 )
1 (x4)(x6)(x8)(x10) 3(x2)(x6)(x8)(x10)
384
96
5(x2)(x4)(x8)(x10) 4(x2)(x4)(x6)(x10)
64
96
1 (x2)(x4)(x6)(x8) 384
function yi=lagrcz(x,y,xi) n=length(x); m=length(xi); for s=1:m
插值与拟合
前言
函数是多种多样的,在科研与工程实际中有的 函数表达式过于复杂而不便于计算,但又需要计算 多点的函数值;有的函数甚至给不出数学式子,只 能通过实验和测量得到一些离散数据(如某些点的 函数值和导数值)。面对这种情况,很自然的一个 想法就是构造某个简单的函数作为要考察的函数的 近似 。
如果要求近似函数满足给定的离散数据,则称之 为插值函数。实用上,我们常取结构相对比较简单 的代数多项式作为插值函数,这就是所谓的代数插值。
二、存在性与唯一性
定理1 设 x0,x1xn 为给定的彼此互异的 n 1个插值 节点,则存在唯一的次数不超过 n的多项式 Pn (x) ,满足 条件
Pn(xi ) yi , i0,1,n.
证明: 设 P n a 0 a 1 x a 2x2a nxn , 其中 a0,a1,a2, an
为待定系数.利用插值条件 Pn(xi ) yi ,我们得到一个线性代数方程
(2)插值误差估计
定理2 设 f (n) (x) 在[a, b] 上连续,f (n1) (x)在 (a, b) 内存在,
节点 ax0x1 xnb,Pn ( x) 是拉格朗日插值多项 式,则对任意 x[a,b] , 插值余项
R n(x)f(x)P n(x)f(n (n 1)1 ())!n 1(x) 其中(a,b)且依赖于 x.
l 1 ( x ) ( ( 4 x 2 2 ) ) ( ( 4 x 6 6 ) ) ( ( 4 x 8 8 ) ) ( ( 4 x 1 1 0 0 ) ) 9 1 6 ( x 2 ) ( x 6 ) ( x 8 ) ( x 1 0 ) l2 ( x ) ( ( 6 x 2 2 ) ) ( ( 6 x 4 4 ) ) ( ( 6 x 8 8 ) ) ( ( 6 x 1 1 0 0 ) ) 6 1 4 ( x 2 ) ( x 4 ) ( x 8 ) ( x 1 0 ) l3 (x ) ( (x 8 2 2 ) )( (8 x 4 4 ) )( (8 x 6 6 ) )( (8 x 1 1 0 0 ) ) 9 1 6 (x 2 )(x 4 )(x 6 )(x 1 0 )
l4 (x ) (1 0 (x 2 2 )( ) 1 (0 x 4 4 ) )( (1 x 0 6 6 )( )( x 1 0 8 )8 ) 3 1 8 4 (x 2 )(x 4 )(x 6 )(x 8 )
于是有
P 4 ( x ) y 0 l0 ( x ) y 1 l 1 ( x ) y 2 l2 ( x ) y 3 l 3 ( x ) y 4 l4 ( x )