数值计算实验二报告

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

贵州师范大学数学与计算机科学学院学生实验报告

课程名称: 数值分析 班级:数学专业2班 实验日期: 2013年 9月 26 日 学 号: 姓名: 指导教师: 杨 一 都 实验成绩:

一、实验名称

实验二: Lagrange 插值与曲线拟合的最小二乘法

二、实验目的及要求

1.让学生掌握Lagrange 插值与曲线拟合的最小二乘法

2.让学生能够用这些方法解决一些实际问题

三、实验环境

每人一台计算机,要求安装Windows XP 操作系统,Microsoft office2003、MATLAB6.5(或7.0).

四、实验内容

题1: 对函数211)(x

x f += ,取n+1个等距分布的插值节点,取不同的n ,作n 次Lagrange 插值,把)(x f 和插值多项式的图象绘制在同一张图上进行比较.

曲线拟合较好?为什么?你能找出更好的拟合曲线吗?

提示:用残差平方的大小来判断拟合的优劣,越小越好.

五、算法描述及实验步骤

1.

(1)算法描述:

画出2

11)(x x f +=的原函数图像与它的Lagrange 多项式插值图像在同一 图上进行比较。

(2)实验步骤:

①.在M-file 编辑窗口编辑Lagrange 插值M 文件;

②.画出f(x)原函数图像;

③.在命令窗口调用Lagrange 插值取n=10画拟合图像;

④.观察比较两个图像。

2.

(1)利用最小二乘法对给定数据点分别画一次,二次和三次多项式拟合曲线。

(2)实验步骤:

a.输入数据点;

b.建立一个划分为四个部分的图像窗口;

c.画一次多项式拟合图像在第一部分;

d.画二次多项式拟合图像在第二部分;

e.画三次多项式拟合图像在第三部分。

六、调试过程及实验结果

grange插值

2.曲线拟合的最小二乘法

由图像可得三次多项式曲线拟合较好,

七、总结

通过这次实验,我初步掌握了Lagrange插值与曲线拟合的最小二乘法及用这些方法解决一些实际问题。通常情况下,Lagrange高次插值比低次插值精度高,但从第一题的图像可以看出插值次数太高也不一定能提高精度,会出现Runge现象。从第二题的图像可以看出用一次、二次、和三次多项式曲线拟合以及最小二乘法拟合这些数据点,曲线拟合比直线拟合得好,高次的会比低次的拟合得好。但用最小二乘法去拟合较少的数据点是更好的拟合曲线。

八、附录(源程序清单)

1,

function cy=Lagrange(x,y,n,cx)

m=length(cx);cy=zeros(1,m);

for k=1:n+1

t=ones(1,m);

for j=1:n+1

if j~=k

t=t.*(cx-x(j))./(x(k)-x(j));

end

end

cy=cy+y(k).*t;

end

>> x=-5:0.01:5;

>> y=1./(x.^2+1);

>> plot(x,y)

>> plot(x,y,'r*')

>> n=10;

>> x0=-5:10/n:5;

>> y0=1./(1+x0.^2);

>> cx=-5:0.01:5;

>> cy=Lagrange(x0,y0,n,cx);

>> hold on

>> plot(cx,cy,'g*')

2,

>> x=[-3,-1,0,1,3,5];

>> y=[-6,-3,-1,0,1,3];

>> subplot(2,2,1)

>> scatter(x,y,'filled','r')

>> hold on

>> p1=polyfit(x,y,1);

>> y1=polyval(p1,x);

>> e1=norm(y-y1)

e1 =

1.6087

>> t=-4:0.01:6;

>> pt1=polyval(p1,t);

>> plot(t,pt1)

>> title('一次多项式拟合图象') >> subplot(2,2,2)

>> scatter(x,y,'filled','r')

>> hold on

>> p2=polyfit(x,y,2);

>> y2=polyval(p2,x);

>> e2=norm(y-y2)

e2 =

0.8405

>> t=-4:0.01:6;

>> pt2=polyval(p2,t);

>> plot(t,pt2)

>> title('二次多项式拟合图象')

>> subplot(2,2,3)

>> scatter(x,y,'filled','r')

>> hold on

>> p3=polyfit(x,y,3);

>> y3=polyval(p3,x)

y3 =

-6.0950 -2.5294 -1.2901 -0.2980 1.2893 2.9231

>> y3=polyval(p3,x);

>> e3=norm(y-y2)

e3 =

0.8405

>> t=-4:0.01:6;

>> pt3=polyval(p3,t);

>> plot(t,pt3)

>> title('三次多项式拟合图像')

相关文档
最新文档