牛顿插值法数值实验五

更新时间:2024-06-04 21:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

牛顿插值法数值实验五

一、实验名称

牛顿插值法 二、实验目的及要求

学会牛顿插值法,并应用算法于实际问题。

(1)用牛顿插值法求4次Newton插值多项式在2.15处的值,以此作为函数的近似值2.15?N(2.15)。在MATLAB中用内部函数ezplot绘制出4次Newton插值多项式的函数图形。

(2) 在MATLAB中用内部函数ezplot可直接绘制出以上函数的图形,并与作出的4次Newton插值多项式的图形进行比较。 三、算法描述

插值法利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。

四、实验内容:给定函数 f(x)?x,已知:

f(2.0)?1.414214 f(2.1)?1.449138 f(2.2)?1.483240

f(2.3)?1.516575 f(2.4)?1.549193

五、程序流程图

开 始 int s,int t N t=s+1 Y f(s,t)=(d[t].y-d[s].y)/(d[t].x-d[s].x) 输入插值次数n f(s,t)=f(s+1,t)-f(s,t-1))/(d[t].x-d[s].xfloat t=1.0, y=d[0].y, yt=0.0,int y=(x-d[j-1].x)*t+f(0,j)*t 返回y j+1=>j Y j<=n N 结 束

六、实验过程及结果 (1)在M文件中输入:

function[y,R,A,C,L]=newdscg(X,Y,x,M) n=length(X);m=length(x); for t=1:m

z=x(t);A=zeros(n,n);A(:,1)=Y'; s=0.0;p=1.0;q1=1.0;c1=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

q1 =abs(q1*(z-X(j-1)));c1=c1*j; end

C=A(n,n);q1=abs(q1*(z-X(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); end

R=M*q1/c1;L(k,:)=poly2sym(C);

(2)在MATLAB工作窗口输入:

symsM,X=[2.0,2.1,2.2,2.3,2.4];Y=[1.414214,1.449138,1.483240,1.516575,1.549193];x=2.15;[y,R,A,C,P]=newdscg(X,Y,x,M)

运行后得结果如下表: X=2.15处y =1.4663 的插值y R =(8301034833169303*M)/70835497243044678205440 误差限R P = -(4803839603609061*x^4)/2305843009213693952+ (7806239355294329*x^3)/288230376151711744- 4次牛顿(176292469178709*x^2)/1125899906842624+ 插值多项(1624739243112817*x)/2251799813685248+ 式P 1865116246031207/4503599627370496 系数向量C = C -0.0021 0.0271 -0.1566 0.7215 0.4141 差商矩阵A A = 1.4142 0 0 0 0 1.4491 0.3492 0 0 0 1.4832 0.3410 -0.0411 0 0 1.5166 0.3334 -0.0383 0.0092 0 1.5492 0.3262 -0.0359 0.0083 -0.0021 用牛顿插值法求4次Newton插值多项式在2.15处的值为2.15?1.4663。在MATLAB中用内部函数ezplot绘制出4次Newton插值多项式的函数图形如下:

在MATLAB中用内部函数ezplot直接绘制出以上函数的图形如下:

两种方法作出图的误差图形如下:

七、实验结果分析

(1)对两图进行比较可知,其总体误差较小;

(2)从图中看出大约从2开始,两个函数的插值开始越来越大;

本文来源:https://www.bwwdw.com/article/pmj6.html

Top