《计算方法》课内实验报告 下载本文

《计算方法》课内实验报告

学生姓名: 及 学 号: 学 院: 班 级: 课程名称: 实验题目: 指导教师 姓名及职称:

计算方法 插值法与函数逼近 宋云飞 讲 师 朱秀丽 讲 师 尚宝欣 讲 师

2012年10月15日

《计算方法》实验报告

目 录

一、实验题目 ............................................................................................. 1 二、实验目的 ............................................................................................. 1 三、实验内容 ............................................................................................. 1 四、实验结果 ............................................................................................. 2 五、实验体会或遇到问题 ........................................................................ 5

《计算方法》实验报告

一、实验题目

插值法与函数逼近

二、实验目的

1.熟悉matlab编写及运行数值计算程序的方法。 2.进一步理解插值法及函数逼近方法的理论基础。

3.进一步掌握给定数据后应用插值法及函数逼近方法进行数据处理并给出图示结果的实际操作过程。

三、实验内容

1.已知函数在下列各点的值为

xi f(xi)

0.2 0.4 0.6 0.8 1.0 0.98 0.92 0.81 0.64 .38 试用4次牛顿插值多项式P4(x)及三次样条函数S(x)(自然边界条件)对数据进行插值。给出求解过程,并用图给出

??xi,yi?,xi?0.2?0.08i,yi?P4(x)及yi?S(x),i?0,1,?10,?。

2.下列数据点的插值

x y 0 1 4 9 16 25 36 49 64 0 1 2 3 4 5 6 7 8

可以得到平方根函数的近似。

(1)用这9个点作8次多项式插值L8(x)。

(2)用三次样条(第一类边界条件)插值给出S(x)。

给出求解过程,在区间[0,64]上作图,从得到的结果看,在区间[0,64]上哪种插值结果更精确?在区间[0,1]上两种插值哪个更精确?

3.由实验给出数据表

x 0.0 0.1 0.2 0.3 0.5 0.8 1.0 y 1.0 0.41 0.50 0.61 0.91 2.02 2.46

试求3次、4次多项式的曲线拟合,再根据数据曲线形状,求一个另外函数的拟

- 1 -

《计算方法》实验报告

合曲线。给出求解过程,用图表示实验数据曲线及三种拟合曲线。

四、实验结果

4次牛顿插值多项式:

x = [0.2 0.4 0.6 0.8 1];

y = [0.98 0.92 0.81 0.64 0.38]; plot(x,y,'b') hold on

z=0.2:0.05:1; n=length(x); for j=2:n

for i=n:-1:j

y(i)=(y(i)-y(i-1))/(x(i)-x(i-j+1)); end end u=y(n);

m=length(z); for j=1:m

for i=n-1:-1:1

u=y(i)+u*(z(j)-x(i)); v(j)=u; end u=y(n); end

plot(z,v,'r') hold off

10.90.80.70.60.50.40.20.30.40.50.60.70.80.91蓝色为原曲线。 三次样条插值

- 2 -

《计算方法》实验报告

x = [0.2 0.4 0.6 0.8 1];

y = [0.98 0.92 0.81 0.64 0.38]; xi = 0.2:0.05:1;

yi = interp1(x,y,xi); plot(x,y,'o',xi,yi)

10.90.80.70.60.50.40.20.30.40.50.60.70.80.91x = [0 1 4 9 16 25 36 49 64]; y = [0 1 2 3 4 5 6 7 8]; plot(x,y,'b') hold on

z=0:0.05:64; n=length(x); for j=2:n

for i=n:-1:j

y(i)=(y(i)-y(i-1))/(x(i)-x(i-j+1)); end end u=y(n);

m=length(z); for j=1:m

for i=n-1:-1:1

u=y(i)+u*(z(j)-x(i)); v(j)=u;

- 3 -

《计算方法》实验报告

end u=y(n); end

plot(z,v,'r') hold on

yi = interp1(x,y,z); plot(x,y,'o',z,yi) hold off

100806040200-20010203040506070

蓝色为原曲线 红色为多项式插值 绿色为三次样条插值

x=[0.0 0.1 0.2 0.3 0.5 0.8 1.0];

y=[1.0 0.41 0.50 0.61 0.91 2.02 2.46]; plot(x,y,'k') hold on

p1=polyfit(x,y,3); f1 = polyval(p1,x); plot(x,y,'o',x,f1) hold on

p2=polyfit(x,y,4); f2= polyval(p2,x); plot(x,f2,'b') hold on

p3=polyfit(x,y,6);

- 4 -

《计算方法》实验报告

f3=polyval(p3,x); plot(x,f3,'r') hold off

2.521.510.5000.10.20.30.40.50.60.70.80.91

黑色为原曲线

绿色为3次多项式的曲线拟合 蓝色为4次多项式的曲线拟合 红色为7次多项式的曲线拟合

五、实验体会或遇到问题

通过本次实验让我学到了很多知识。

- 5 -