牛顿插值法

  • 格式:doc
  • 大小:109.93 KB
  • 文档页数:5

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

牛顿插值算法

专业信息与计算科学

班级 113010102 姓名罗彪

学号 11301010229

1实验名称

牛顿插值法实验报告

2 实验目的

(1) 掌握牛顿插值法的基本思路和步骤,适用范围及精确度;

(2) 培养编程与上机调试能力;

(3) 熟悉Matlab6.1软件环境.

3 实验要求

(1) 利用牛顿插值法的求NEWTON 插值多项式的值,在matlab 中用内部

函数绘制函数图形。

(2) 利用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实验题目 给定21()1f x x =+ [5,5]x ∈-,取节点5(0,1,,10)k x k k =-+=,构造牛顿插值函

数计算点50.5(0,1,

,20)j t j j =-+=处10()N x 的值,并绘制图形与()f x 比较。

6实验步骤 输入n 值及())(,i i x f x ,,,1,0,n i =;要计算的函数点x 。

对给定的,x 由

[][][]00010101201101()()(),()(),,()()(),,n n n N x f x x x f x x x x x x f x x x x x x x x x f x x x -=+-+--+

+---

计算()

N x的值。

n

7 实验流程图

8 程序及其运行结果

function NEWTON

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')%作图

hold on

y=interp1(x0,y0,x,'spine');%用三次样条插值求插值结果plot(x0,y0,'r+',x,y,'b')%作图

function y=newton(x0,y0,x)%定义函数y

n=length(x0); %n取了x0的长度,x0为矩阵

m=length(x); %m取了x的长度,x为矩阵

f=y0;

for k=1:n-1

for j=n:-1:(k+1)

f(j)=(f(j)-f(j-1))/(x0(j)-x0(j-k));%用差商公式求差商end

end,

for i=1:m

z=x(i);%输入z

s=f(1);%输入s

for k=2:n

p=1.0;

for j=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 实验体会

⑴通过本次实验让我学会了插值多项式的基本思想。

⑵牛顿插值法建立过程中用到了插值计算,这一点与拉格朗日插值法有所区别,在已知点数较少的情况下牛顿插值法更为准确。

⑶通过编程加深了对matlab的熟悉,特别是一些函数语句。