牛顿插值法试验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
牛顿插值法一、实验目的:学会牛顿插值法,并应用算法于实际问题。
x?x)f(二、实验内容:给定函数,已知:
4832401.2)?.?1449138f(2.f.f(20)?1.414214(2.1)
549193.)?1f(2.4516575(f2.3)?1.
三、实验要求:以此作为函数2.15插值多项式在处的值,用牛顿插值法求4
次Newton( 1)2.15?N(2.15)。在MATLAB中用内部函数ezplot绘制出的近似值4次Newton插值多项式的函数图形。
(2)在MATLAB中用内部函数ezplot可直接绘制出以上函数的图形,并与作出的4次Newton插值多项式的图形进行比较。
四、实验过程:
1、编写主函数。打开Editor编辑器,输入Newton插值法主程序语句:
function [y,L]=newdscg(X,Y,x)
n=length(X); z=x; A=zeros(n,n);A(:,1)=Y';s=0.0; p=1.0;
for j=2:n
for i=j:n
A(i,j)=(A(i,j-1)- A(i-1,j-1))/(X(i)-X(i-j+1));
end
end
C=A(n,n);
for k=(n-1):-1:1
C=conv(C,poly(X(k)));
d=length(C);C(d)=C(d)+A(k,k);
end
y(k)= polyval(C, z);
L(k,:)=poly2sym(C);
0 / 3
.
%%%%%%%%%%%%%%%%%%
t=[2,2.1,2.2,2.3,2.4];
fx=sqrt(t);
wucha=fx-Y;
以文件名newdscg.m保存。
2、运行程序。
(1)在MATLAB命令窗口输入:
>> X=[2,2.1,2.2,2.3,2.4]; Y
=[1.414214,1.449138,1.483240,1.516575,1.549193];
x=2.15;[y,P]=newdscg(X,Y,x)
回车得到:
y =1.4663
wucha =1.0e-06 *
-0.4376 -0.3254 -0.3026 0.0888 0.3385
P = - (4803839603609061*x^4)/2305843009213693952 + (7806239355294329*x^3)/288230376151711744 - (176292469178709*x^2)/1125899906842624 + (1624739243112817*x)/2251799813685248 + 1865116246031207/4503599627370496
(2)在MATLAB命令窗口输入:
>> v=[0,6,-1,3];
>> ezplot(P),axis(v),grid
>> hold on
>> x=0:0.1:6;
>> yt=sqrt(x);plot(x,yt,':')
>> legend('插值效果','原函数')
>> xlabel('X')
>> ylabel('Y')
>>title('Newton插值与原函数比较')
回车即可得到图像1-1。
1 / 3
.
牛顿插值效果图1-1五、实验结果分析:2.15Newton插值多项式在用牛顿插值法求4次的程序可得,由上运行(1)2.15 N(2.15)=1.4663。处函数的近似值由在MATLAB中用内部函数ezplot直接绘制出出的4次Newton插值图形与原函数的图形知,4次Newton插值图形在区间[0,1]与区间[4,5]内与原函数存在一定的偏差,而在区间[1,4]内误差在10的-6次方,这个精度是非常高的。因此,在计算区间[1,4]内的值时结果是比较准确的。
2 / 3