《计算方法》课内实验报告
学生姓名:张学阳1009300132
及学号:
学院: 理学院
班级: 数学101
课程名称:计算方法
实验题目:插值法与函数逼近
指导教师
宋云飞讲师
姓名及职称:
朱秀丽讲师
尚宝欣讲师
2012年10月15日
目录
一、实验题目.......................................................... 错误!未定义书签。
二、实验目的.......................................................... 错误!未定义书签。
三、实验内容.......................................................... 错误!未定义书签。
四、实现结果.......................................................... 错误!未定义书签。
五、实验体会或遇到问题 (6)
插值法与函数逼近
二、实验目的
1.熟悉matlab 编写及运行数值计算程序的方法。
2.进一步理解插值法及函数逼近方法的理论基础。
3.进一步掌握给定数据后应用插值法及函数逼近方法进行数据处理并给出图示结果的实际操作过程。
三、实验内容
1.已知函数在下列各点的值为
试用4次牛顿插值多项式)(4x P 及三次样条函数)(x S (自然边界条件)对数据进行插值。
给出求解过程,并用图给出
(){},10,1,0),()(,08.02.0,,4 ===+=i x S y x P y i x y x i i i i i 及。
2.下列数据点的插值
可以得到平方根函数的近似。
(1)用这9个点作8次多项式插值)(8x L 。
(2)用三次样条(第一类边界条件)插值给出)(x S 。
给出求解过程,在区间[0,64]上作图,从得到的结果看,在区间[0,64]上哪种插值结果更精确?在区间[0,1]上两种插值哪个更精确? 3.由实验给出数据表
试求3次、4次多项式的曲线拟合,再根据数据曲线形状,求一个另外函数的拟合曲线。
给出求解过程,用图表示实验数据曲线及三种拟合曲线。
1.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
0.20.30.40.50.60.70.80.91
0.4
0.5
0.6
0.7
0.8
0.9
1
其中蓝色为原曲线。
1.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)
0.20.30.40.50.60.70.80.91
2
x = [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;
end
u=y(n);
end
plot(z,v,'r')
hold on
yi = interp1(x,y,z);
plot(x,y,'o',z,yi)
hold off
010203040506070
其中蓝色为原曲线,红色为多项式插值,绿色为三次样条插值,在区间[0,64]时3次样条插值更精确,在区间[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];
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,5);
f3=polyval(p3,x);
plot(x,f3,'r')
hold off
00.10.20.30.40.50.60.70.80.91
其中黑色为原曲线,绿色为3次多项式的曲线拟合,蓝色为4次多项式的曲线拟合,红色为5次多项式的曲线拟合。
五、实验体会或遇到问题
通过这次课内试验,学会了通过matlab进行插值函数的求解,进一步理解了插值法及函数逼近方法的理论基础,进一步掌握给定数据后应用插值法及函数逼近方法进行数据处理并给出图示结果的实际操作过程,感觉收获很大。