数学建模插值法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ln(0.54)的函数值
ans = -0.6161
(4)练习
x y 1.1 3.887 2.3 4.276 3.9 4.651 5.1 2.117
用lagrange插值公式计算x=2.101,4.234处的函数值。
2、牛顿插值法
牛顿插值公式:
Nn(x)=f(x0)+f[x0,x1](x-x0)+…+f[x0,x1,x2,…,xn](x-x0)(x-x1)…(x-xn)
k =0
nБайду номын сангаас
即为拉格朗日插值公式 拉格朗日插值公式,其中 拉格朗日插值公式
插值基函 数
lk ( x ) =
( x − x0 ) L ( x − xk −1 )( x − xk +1 ) L ( x − xn ) ( xk − x0 ) L ( xk − xk −1 )( xk − xk +1 ) L ( xk − xn )
1200 ≤ x ≤ 4000, 1200 ≤ y ≤ 3600
山体地貌
要在某山区方圆大约27平方公里范围内修建一条公路,从山脚出发经 过一个居民区,再到达一个矿区。横向纵向分别每隔400米测量一次, 得到一些地点的高程:
X 1200 Y 1200 1600 2000 2400 2800 3200 3600 1130 1320 1390 1500 1500 1500 1480 1600 1250 1450 1500 1200 1200 1550 1500 2000 1280 1420 1500 1100 1100 1600 1550 2400 1230 1400 1400 1350 1550 1550 1510 2800 1040 1300 900 1450 1600 1600 1430 3200 900 700 1100 1200 1550 1600 1300 3600 500 900 1060 1150 1380 1600 1200 4000 700 850 950 1010 1070 1550 980
2、在一天24小时内,从零点开始每间隔2小时测得的环境温度为 在一天24小时内,从零点开始每间隔2 在一天24小时内 摄氏度) (摄氏度) 12,9,9,10,18,24,28,27,25,20,18,15,13 推测在每一分钟时的温度. 推测在每一分钟时的温度.并利用不同的插值方法描绘温度曲线 。
interp1(x0,y0,x,’method’)
二维插值的MATLAB实现
在MATLAB中,二维插值命令常用的有两个, 1、一个是网格节点插值: 、一个是网格节点插值: z=interp2(x0,y0,z0,x,y,’method’) 其中, z:被插值点处的函数值; x0,y0,z0:插值节点, x0,y0为向量,z0是矩阵,其列 数等于x0的长度,行数等于y0的长度; x,y:被插值点;
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)为插值多项式 插值多项式 造插值多项式的方法称为多项式插值法 多项式插值法. 多项式插值法
其中:
f[x0,x1] f[x0,x1,x2,…,xn] 一阶差商 n阶差商
注:牛顿插值法与拉格朗日插值法,同一个多项式,不同的表达 方式,但是计算量不一样,牛顿插值法的计算量小。 这两种方法在MATLAB 中没有现成的命令和函数,因为它们存在 龙格现象。
牛顿插值法的matlab实现
function Y=newpoly(x,y,X) %牛顿插值 n=length(x); D=zeros(n); D(:,1)=y'; for j=2:n %计算差商矩阵 for k=j:n D(k,j)=(D(k,j-1)-D(k-1,j-1))/(x(k)-x(k-j+1)); end end C=D(n,n); for k=(n-1):-1:1 %构造插值多项式 C=conv(C,poly(x(k))); m=length(C); C(m)=C(m)+D(k,k); end Y=polyval(C,X);
通过这个预报值,估计14 时上游流入水库的流量. 通过这个预报值,估计14 和 20 时上游流入水库的流量.
在一天24小时内 从零点开始每间隔2小时测得的环境温度为 小时测得的环境温度为(摄 在一天 小时内, 从零点开始每间隔 小时测得的环境温度为 摄 小时内 氏度) 氏度 12,9,9,10,18,24,28,27,25,20,18,15,13 推测在每一分钟时的温度. 推测在每一分钟时的温度
(3) 函数的调用
给定数据表:
x lnx 0.4 -0.916291 0.5 -0.693147 0.6 -0.510826 0.7 -0.356675 0.8 -0.223144
用lagrange插值公式计算 clear x0=0.4:0.1:0.8; y0=log(x0); x=0.54; lagrange(x0,y0,x)
3、
下表给出的x 数据位于机翼端面的轮廓线上, 下表给出的x、y数据位于机翼端面的轮廓线上,Y1和Y2分 别对应轮廓的上下线。假设需要得到x坐标每改变0 别对应轮廓的上下线。假设需要得到x坐标每改变0.1时的 坐标,试完成加工所需数据,画出曲线. y坐标,试完成加工所需数据,画出曲线.
x Y1 Y2
多项式插值法包含:
拉格朗日插值 牛顿插值 三次埃尔米特插值法 分段线性插值 分段三次埃尔米特插值法 三次样条插值
1、 拉格朗日插值公式
(1)定义
对给定的n+1个节点x0 , x1,x2,…,xn及对应的函数值y0 , y1,y2,…,yn, 构造一个n次插值多项式:
y = ∑ y k lk ( x )
龙格现象
Runge在上个世纪初发现: 在[-5,5]上用n+1个等距节点作n次插值多项式Pn(x), 当在n→∞时,插值多项式Pn(x)在区间中部趋于 f(x)=1/(1+x2) , 但对于3.63≤∣x∣≤5的x,Pn(x)严重发散。 用图形分析问题。
for n=10:2:20 %从10等份到20等份 x0=[-5:10/n:5]; %插值节点 y0=1./(1+x0.^2); %插值节点处的精确函数值 x=[-5:0.1:5]; %要进行计算函数值的点 y=lagrange(x0,y0,x); %调用函数计算x点的函数值 plot(x0,y0,’*’,x,1./(1+x.^2),’r’,x,y) %绘制图形 pause %等待,按任意键 end
给定数据表:
x lnx 0.4 -0.916291 0.5 -0.693147 0.6 -0.510826 0.7 -0.356675 0.8 -0.223144
计算ln(0.54)的值.
一、问题的提出
在生产和实验中,关于函数f(x),经常存在两种情况: (1)其表达式不便于计算; (2)无表达式, 而只有函数在给定点的函数值,
四、插值法的matlab实现
命令:interp1(x0,y0,x,’method’) 其中:x0:插值节点; y0:插值节点处的函数值; x:要计算函数值的点;
method:
l i n e a r :分段线性插值; 分段线性插值; c u b i c :分段三次埃尔米特插值; s p l i n e :三次样条插值。
for n=4:2:10 %从4等份到10等份 x0=[-5:10/n:5]; %插值节点 y0=1./(1+x0.^2); %插值节点处的精确函数值 x=[-5:0.1:5]; %要进行计算函数值的点 y=lagrange(x0,y0,x); %调用函数计算x点的函数值 plot(x0,y0,'b-*',x,1./(1+x.^2),'r',x,y,'k') %绘制图形 pause %等待,按任意键 end
(2)分段三次埃尔米特插值法 定义:
已知n+1个不同节点x0,x1,…,xn ,构造分段多项式I(x),使之满足: I(xk)=yk, I’(xk)=y’k, ; I(x)在[xi,xi+1]上是三次次多项式。
4、三次样条插值法
对于给定n+1个不同节点x0,x1,…,xn及函数值y0,y1,…,yn, 其中a=x0<x1<…<xn=b,构造三次样条插值函数S(x)。 S(x)称为三次样条函数时需满足: S(x)在[a,b]上二阶导数连续; S(xk)=yk (k=0,1,…,n); 每个子区间[xk,xk+1]上S(x)是三次多项式(k=0,1,…,n)。
程序设计: 程序设计: clear x0=[8,12,16,24,30,44,48,56,60]; y0=[36,54,78,92,101,35,25,16,13]; x=[14,20]; xx=[8:0.1:60]; yl=interp1(x0,y0,x,'linear') %分段线性插值法 yc=interp1(x0,y0,x,'cubic') %分段三次埃尔米特插值法 ys=interp1(x0,y0,x,'spline') %三次样条插值法 xyl=interp1(x0,y0,xx,'linear'); xyc=interp1(x0,y0,xx,'cubic'); xys=interp1(x0,y0,xx,'spline'); plot(x0,y0,'*',xx,xyl,'r',xx,xyc,'k',xx,xys,'g')
0 0 0
3 1.8 1.2
5 2.2 1.7
7 2.7 2.0
9 3.0 2.0
11 3.1 2.0
12 2.9 1.8
13 2.5 1.2
14 2.0 1.0
15 1.6 1.6
二维插值
前面的命令interp1()是一维插值,现实中有很多问题 需要二维插值. 二维插值是基于与一维插值同样的基本思 想.
插值法
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
3、分段低次插值法
(1)分段线性插值
定义: 已知n+1个不同节点x0,x1,…,xn ,构造分段多项式I(x),使之满 足 I(x)在[a,b]上连续; I(xk)=yk; I(x)在[xi,xi+1]上是一次多项式; I(x)= yk
x − xk +1 x − xk + yk +1 , x ∈ [ xk , xk +1 ] xk − xk +1 xk +1 − xk
(2)拉格朗日插值的matlab实现
function y=lagrange(x0,y0,x) % x0插值节点, y0插值节点处 的函数值,x要计算函数值的 点; n=length(x0); %计算x0的长度 m=length(x); %计算x的长度 for i=1:m s=0; z=x(i);
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; %计算在x(i)处的函数值(拉格 朗日) end
五、插值法的应用
1、一水库上游河段降暴雨,根据预报测算上游流入水库的流量为Q(t) 一水库上游河段降暴雨,根据预报测算上游流入水库的流量为Q(t) 一水库上游河段降暴雨 立方米/ (102立方米/秒) : t (时) 8 12 16 24 30 44 48 56 60 时 Q(t) 36 54 78 92 101 35 25 16 13 ( ) 通过这个预报值,分别用不同的数值方法插值法来估计14 20时上游 通过这个预报值,分别用不同的数值方法插值法来估计14 和20时上游 流入水库的流量, 流入水库的流量,并利用不同的插值方法描绘水流量曲线 。
相关文档
最新文档