当前位置:文档之家› 插值实验报告

插值实验报告


11
1
2.分段线性插值:
Ln ( x) y j l j ( x)
j 0
n
x x j 1 , x j 1 x x j x j x j 1 x x j 1 l j ( x) , x j x x j 1 x j x j 1 0, 其他
8
1.2
1
0.8
0.6
0.4
0.2
0
-0.2 -6
-4
-2
0
2
4
6
(2)n=11;
lb=-3;ub=3;step=0.01;
x=lb:step:ub; y=1./(1+25*x.^2); plot(x,y,'r-'); hold on for i=1:n xi(i)=lb+(ub-lb)*(i-1)/n; yi(i)=1/(1+25*xi(i)^2); end count=1; for x=lb:step:ub fl=0; for k=1:n up=1;dn=1;
其中 Li(x) 为 n 次多项式:
Li ( x)
( x x0 )( x x1 )( x xi 1 )( x xi 1 )( x xn ) ( xi x0 )( xi x1 )( xi xi 1 )( xi xi 1 )( xi xn )
特别地: 两点一次(线性)插值多项式:
2
x0、y0 为插值节点 x、y 为被插值点 method 为插值方法,其中包括 nearest(最邻近插值) 、linear(双线性插值) 、cubic (双三次插值) 【实验环境】 Matlab 7.0 Microsoft Windows7 Professional 版本 2002 Service Pack 3 二、实验内容: 【实验方案】 用不同的方法对已知函数进行插值,用 matlab 画出相应的图形。 【实验过程】 (实验步骤、记录、数据、分析) 1 山区地貌:在某山区测得一些地点的高程如下表: (平面区域 1200≤x ≤ 4000,1200≤y ≤3600),试作出该山区的地貌图和等高线图,并对几种插值方法进行 比较.
计算量与 n 无关;
n 越大,误差越小.
lim Ln ( x) g ( x), x0 x xn
n
3.一维插值函数: yi=interp1(x,y,xi,’method’) yi 为 xi 处得插值结果 x、y 为插值节点 xi 为被插值点 method 为插值方法,其中包括 nearest(最邻近插值) 、linear(线条插值) 、spline (三次样条插值) 、cubic(立方插值) 4.二维插值函数: z=interp2(x0,y0,z0,x,y,’method’) z 为被插值点函数值
3600 3200 2800 2400 2000 1600 1200
1480 1500 1500 1550 1500 1200 1500 1200 1390 1500 1320 1450 1130 1250
1550 1510 1430 1600 1550 1600 1100 1550 1600 1100 1350 1450 1500 1400 1420 1400
10
1.2
1
0.8
0.6
0.4
0.2
0
-0.2 -6
-4
-2
0
2
4
6
【实验结论】 (结果) (1)用 Matlab 对同一函数可以用不同方法进行插值,得到图形不同。 (2)不同插值方法用不同命令,利用 Matlab 可以对山高画出图形和等高线,方便 简单 【实验小结】 (收获体会) Matlab 使不同数值间的关系简单化,不同的插值方法使用不同的命令做出相应 的图形,对山高、地形或函数一目了然。
4
1600 1400 1200 1000 800 600 400 4000 3000 3000 2000 1000 1000 2000 4000
双线性插值: x=1200:400:4000; y=1200:400:3600; z=[1130 1320 1390 1500 1500 1500 1480 mesh(x,y,z) xi=1200:20:4000; yi=1200:20:3600; zi=interp2(x,y,z,xi',yi,'linear'); meshc(xi,yi,zi) 1250 1280 1450 1420 1500 1500 1200 1100 1200 1100 1550 1600 1500 1550 1230 1400 1400 1350 1550 1550 1510 1040 1300 900 1450 1600 1600 1430 900 700 1100 1200 1550 1600 1300 500 900 1060 1150 1380 1600 1200 700; 850; 950; 1010; 1070; 1550; 980];
7
lb=-3;ub=3;step=0.01;
for x=lb:step:ub fl=0; for k=1:n up=1;dn=1; for i=1:n if k~=i up=up*(x-xi(i)); dn=dn*(xi(k)-xi(i)); end end fl=fl+yi(k)*up/dn; end pn(count)=fl; fi(count)=1/(1+x^2); count=count+1; end x=lb:step:ub; plot(x,pn,'b-') num=(ub-lb)/step+1; for i=1:num p_f(i)=pn(i)-fi(i); end
新乡学院数学与信息科学系
实验报告
实验项目名称 所属课程名称 实 验 类 型 实 验 日 期 插值实验 数学实验 综合性实验 2013-6-6 数学与应用数学一班 11111011013
班 学 姓 成
级 号 名 绩
高亚丹
一、实验概述: 【实验目的】 了解插值的基本内容以及插值方法,如:一维插值(拉格朗日插值、分段线性 插值、三次样条插值) ,二维插值(最临近插值、分段线性插值、双线性插值) 。 【实验原理】
9
for i=1:n if k~=i up=up*(x-xi(i)); dn=dn*(xi(k)-xi(i)); end end fl=fl+yi(k)*up/dn; end pn(count)=fl; fi(count)=1/(1+25*x^2); count=count+1; end x=lb:step:ub; plot(x,pn,'b-') num=(ub-lb)/step+1; for i=1:num p_f(i)=pn(i)-fi(i); end
1.拉格朗日(Lagrange)插值:
已知函数 f(x)在 n+1 个点 x0,x1,…,xn 处的函数值为 y0,y1,…,yn .求一 n 次多项式 函数 Pn(x),使其满足:
Pn(xi)=yi,i=0,1,…,n.
n 解决此问题的拉格朗日插值多项式公式如下 Pn ( x) Li ( x) yi i 0
1300 1200 980 1600 1600 1550 1550 1380 1070 1200 1150 1010 1060 900 500 950 850 700
900 1100 1300 700 900
1280 1230 1040
3
y/x
1200 1600 2000 2400 2800 3200 3600 4000
6
meshc(xi,yi,zi)
2000
1500
1000பைடு நூலகம்
500
0 4000 3000 3000 2000 1000 1000 2000 4000
2.
1 , 6 x 6和 1 x2 1 g ( x) , 6 x 6 1 25 x 2 针对这两个函数,分别用Lagrange插值选取11个基点计算插值(ych),并把插值函数 g ( x)
L1 x
x x0 x x1 y0 y1 x0 x1 x1 x0
三点二次(抛物)插值多项式:
L2 x
x x1 x x2 y x x0 x x2 y x x0 x x1 y x0 x1 x0 x2 0 x1 x0 x1 x2 1 x2 x0 x2 x1 2
5
1600 1400 1200 1000 800 600 400 4000 3000 3000 2000 1000 1000 2000 4000
双三次插值: x=1200:400:4000; y=1200:400:3600; z=[1130 1320 1390 1500 1500 1500 1480 mesh(x,y,z) xi=1200:20:4000; yi=1200:20:3600; zi=interp2(x,y,z,xi',yi,'cubic'); 1250 1280 1450 1420 1500 1500 1200 1100 1200 1100 1550 1600 1500 1550 1230 1400 1400 1350 1550 1550 1510 1040 1300 900 1450 1600 1600 1430 900 700 1100 1200 1550 1600 1300 500 900 1060 1150 1380 1600 1200 700; 850; 950; 1010; 1070; 1550; 980];
和原函数都画在一个坐标系内(注意是否有龙格震荡现象)。 解:(1)n=11; x=lb:step:ub; y=1./(1+x.^2); plot(x,y,'r-'); hold on for i=1:n xi(i)=lb+(ub-lb)*(i-1)/n; yi(i)=1/(1+xi(i)^2); end count=1;
相关主题