预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

牛顿插值算法 专业信息与计算科学 班级113010102 姓名罗彪 1实验名称 牛顿插值法实验报告 2实验目的 掌握牛顿插值法的基本思路和步骤,适用范围及精确度; 培养编程与上机调试能力; 熟悉Matlab6.1软件环境. 3实验要求 利用牛顿插值法的求NEWTON插值多项式的值,在matlab中用内部函数绘制函数图形。 利用Matlab软件作为辅助工具来实现该实验. 4实验原理 在拉格朗日插值方法中,若增加一个节点数据,其插值的多项式需重新计算。现构造一个插值多项式Nn(x),只需对Nn-1(x)作简单的修正即可得到,这样计算方便。 利用牛顿插值公式,当增加一个节点时,只需在后面多计算一项,而前面的计算仍有用;另一方面Nn(x)的各项系数恰好又是各阶差商而各阶差商可用差商公式来计算。 由线性代数知,对任何一个不高n次的多项式P(x)=b0+b1x+b2x2+…+bnxn(幂基)(1) 也可将其写成P(x)=a0+a1(x-x0)+a2(x-x0)(x-x1)+…an(x-x0)..(x-xn-1) 其中ai为系数,xi为给定节点,可由(1)求出ai一般情况下,牛顿插值多项式Nn(x)可写成Nn(X)=a0+a1(x-x0)+a2(x-x0)(x-x1)+…an(x-x0)..(x-xn-1)只需求出系数ai即可得插值多项式。 5实验题目 给定,取节点,构造牛顿插值函数计算点处的值,并绘制图形与比较。 6实验步骤 输入值及(;要计算的函数点。 对给定的由 计算的值。 7实验流程图 8程序及其运行结果 functionNEWTON x0=-5:1:5;%输入11个插值节点 y0=1./(1+x0.^2); x=-5:0.5:5;%输入21个插值函数计算点 y=newton(x0,y0,x);%调用下面的函数 plot(x0,y0,'r',x,y,'g')%作图 holdon y=interp1(x0,y0,x,'spine');%用三次样条插值求插值结果 plot(x0,y0,'r+',x,y,'b')%作图 functiony=newton(x0,y0,x)%定义函数y n=length(x0);%n取了x0的长度,x0为矩阵 m=length(x);%m取了x的长度,x为矩阵 f=y0; fork=1:n-1 forj=n:-1:(k+1) f(j)=(f(j)-f(j-1))/(x0(j)-x0(j-k));%用差商公式求差商 end end, fori=1:m z=x(i);%输入z s=f(1);%输入s fork=2:n p=1.0; forj=1:k-1 p=p*(z-x0(j));%自变量的差的循环计算 end s=s+p*f(k);%计算newton插值Nn(x) end y(i)=s; end y(i)=s%输出结果 运行结果: 9实验体会 =1\*GB2\*MERGEFORMAT⑴通过本次实验让我学会了插值多项式的基本思想。 =2\*GB2\*MERGEFORMAT⑵牛顿插值法建立过程中用到了插值计算,这一点与拉格朗日插值法有所区别,在已知点数较少的情况下牛顿插值法更为准确。 =3\*GB2\*MERGEFORMAT⑶通过编程加深了对matlab的熟悉,特别是一些函数语句。