《计算方法》课内实验报告(实验1)2013
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算方法》课内实验报告
学生姓名:
及学号:
学院:理学院
班级:
课程名称:计算方法
实验题目:插值法与函数逼近
指导教师
周硕教授
姓名及职称:
朱振菊实验师
2013年10月9日
目录
一、实验题目 (1)
二、实验目的 (1)
三、实验内容 (1)
四、实验结果 (2)
五、实验体会或遇到问题 (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次多项式的曲线拟合,再根据数据曲线形状,求一个另外函数的拟合曲线。给出求解过程,用图表示实验数据曲线及三种拟合曲线。
四、实验结果
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
蓝色为原曲线。
三次样条插值
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
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
蓝色为原曲线
红色为多项式插值
绿色为三次样条插值
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);
f3=polyval(p3,x);
plot(x,f3,'r')
hold off
00.10.20.30.40.50.60.70.80.91
黑色为原曲线
绿色为3次多项式的曲线拟合
蓝色为4次多项式的曲线拟合
红色为7次多项式的曲线拟合
五、实验体会或遇到问题
通过此次课内实验我熟悉matlab编写及运行数值计算程序的方法,进一步理解插值法及函数逼近方法的理论基础,进一步掌握给定数据后应用插值法及函数逼近方法进行数据处理并给出图示结果的实际操作过程。