插值方法_实验报告
肖建 计科三班开课学院、实验室: 数统学院 实验时间 : 2011 年 5 月 8 日
课程
名称数学实验实验项目
名 称
插值方法
实验项目类型验证演示综合设计其他指导
教师李东成 绩
实验5 插值方法
一、实验目的及意义
[1] 了解插值的基本原理
[2] 了解拉格朗日插值、线性插值、样条插值的基本思想;
[3] 了解三种网格节点数据的插值方法的基本思想;
[4] 掌握用MATLAB计算三种一维插值和两种二维插值的方法;
[5] 通过范例展现求解实际问题的初步建模过程;
通过自己动手作实验学习如何用插值方法解决实际问题,提高探索和解决问题的能力。通过撰写实验报告,促使自己提炼思想,按逻辑顺序进行整理,并以他人能领会的方式表达自己思想形成的过程和理由。提高写作、文字处理、排版等方面的能力。
二、实验内容
1.编写拉格朗日插值方法的函数M文件;
2.用三种插值方法对已知函数进行插值计算,
通过数值和图形输出,比较它们的效果;
3.针对实际问题,试建立数学模型,并求解。
三、实验步骤
1.开启软件平台——MATLAB,开启MATLAB编辑窗口;
2.根据各种数值解法步骤编写M文件
3.保存文件并运行;
4.观察运行结果(数值或图形);
5.写出实验报告,并浅谈学习心得体会。
四、实验要求与任务
根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论→心得体会)
基础实验
1. 一维插值 利用以下一些具体函数,考察分段线性插值、三次样条插值和拉格朗日多项式插值等三种插值方法的差异。
1),x([-5,5]; 2)sinx, x([0,2(]; 3)cos10x, x([0,2(].
M文件:
(1)
clc
x=linspace(-5,5,11);
y=1./(1+x.^2);
x0=linspace(-5,5,101);
y0=1./(1+x.^2);
y1=interp1(x,y,x0,'spline')
y2=interp1(x,y,x0);
A=[ones(11,1) x' (x.^2)' (x.^3)' (x.^4)' (x.^5)' (x.^6)' (x.^7)' (x.^8)' (x.^9)' (x.^10)']
a=A\y';
y3= a(1)+a(2).*x0+a(3).*x0.^2+a(4).*x0.^3+a(5).*x0.^4+a(6).*x0.^5+a(7).*x0.^6+a(8).*x0.^7+a(9).*x0.^8+a(10).*x0.^9+a(11).*x0.^10;
plot(x0,y3,'r'),
gtext('Lagr.'),
hold on,
plot(x0,y2,'b'),
gtext('Pies.Lin.'),
hold on,
plot(x0,y1,'m'),
gtext('Spline')
hold off
(2)
x=linspace(0,2*pi,11);
y=cos(x);
x0=linspace(0,pi,101);
y0=cos(x0);
剩余代码和(1)中相同
(3)
x=linspace(0,pi,11);
y=cos(x).^10;
x0=linspace(0,pi,101);
y0=cos(x0).^10;
剩余代码和(1)中相同
注意:适当选取节点及插值点的个数;比较时可以采用插值点的函数值与真实函数值的差异,或采用两个函数之间的某种距离。
2.高维插值 对于二维插值的几种方法:最邻近插值、分片线性插值、双线性插值、三次插值等,利用如下函数进行插值计算,观察其插值效果变化,得出什么结论?
1) ,参数p=1/2000~1/200;采样步长为:t=4ms~4s;x=5~25m.
t=linspace(0,4,10);
x=linspace(5,25,10);
[t,x]=meshgrid(t,x);
z=sin((t-1/200.*x)*2);
[t1,x1]=meshgrid(linspace(0,4,100),linspace(5,25,100));
z1=interp2(t,x,z,t1,x1,'cubic');
z2=interp2(t,x,z,t1,x1,'nearest');
z3=interp2(t,x,z,t1,x1,'linear');
mesh(t1,x1,z1);
hold on
mesh(t1,x1,z2);
hold on
mesh(t1,x