matlab 牛顿插值,Newton插值的matlab实现.doc

Newton插值的matlab实现

Newton插值的matlab实现

成员: 黄 全 P092314746 28%

付 吉 P091712737 24%

颜学俭 P091712716 24%

罗国庭 P091712739 24%

指导老师:刘华

2012年5月2日

目录

Newton插值的matlab实现- 1 -

一 过程整理- 3 -

Newton插值的基本原理- 3 -

二 流程图- 4 -

三 算法设计- 6 -

3.1、Newton插值的matlab实现- 6 -

3.2、程序- 6 -

3.3、例题- 6 -

3.4、命令执行图- 7 -

四 参考文献- 7 -

一 过程整理

Newton插值的基本原理

假设有n+1个不同的节点及函数在节点上的值(x,y),……(x,y),插值多项式有如下形式:

(1)

其中系数(i=0,1,2……n)为特定系数,可由插值样条(i=0,1,2……n)确定。

根据均差的定义,把x看成[a,b]上的一点,可得

f(x)= f()+f[]()

f[x, ]= f[]+f[x,] ()

……

f[x, ,…x]= f[x, ,…x]+ f[x, ,…x](x-x)

综合以上式子,把后一式代入前一式,可得到:

f(x)= f()+f[]()+ f[]()()+

…+ f[x, ,…x]()…(x-x)+ f[x, ,…x]= N(x)+其中

N(x)= f()+f[]()+ f[]()()+

…+ f[x, ,…x]()…(x-x)(2)

= f(x)- N(x)= f[x, ,…x](3)

=()…(x-x)

Newton插值的系数(i=0,1,2……n)可以用差商表示。一般有

[] (k=0,1,2,……,n )(4)

把(4)代入(1)得到满足插值条件N(i=0,1,2,……n)的n次Newton插值多项式

N(x)=f()+f[]()+f[]()()+……+f[]()()…().

其中插值余项为:

介于之间。

二 流程图

三 算法设计

3.1、Newton插值的matlab实现

构造计算经过点()=(k=0,1,2,……,n )的次数小于等于n的牛顿插值多项式:

N(x)=f()+f[]()+f[]()()+……+f[]()()…()

3.2、程序

function[c,d]=newploy(x,y)

n=length(x);

d=zeros(n,n);

d(:,1)=y';

for j=2:n

for k=j:n

d(k,j)=(d(k,j-1)-d(k-1,j-1))/(x(k)-x(k-j+1));

end

end

c=d(n,n);

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

c=conv(c,poly(x(k)));

m=length(c)

c(m)=c(m)+d(k,k);

end

3.3、例题

用程序求已知数据点(1,-3),(2,0),(3,15),(4,48),(5,105),(6,162)的牛顿插值多项式。

在命令输入:

>> newpoly([1 2 3 4 5 6 ],[-3,0,15,48,105,192])

回车得到结果:

ans =

0 0 1 0 -4 0

由此得出牛顿插值多项式为:

3.4、命令执行图

例如建立M-文件:

t=0:0.1:6;

z=t.^3-4*t;

x=[1 2 3 4 5 6];

y=[-3,0,15,48,105,192];

plot(t,z,x,y,'ro');grid

命令执行得到如下图形:

牛顿插值与多项式数据点之间的关系

四 参考文献

《MATLAB程序设计》 王建卫 取中水 凌宾

《MATLAB数值分析与应用》 张德丰

《数值分析》 黄明游 刘播 徐涛

- 1 -

开 始

int s,int t

t=s+1

N

Y

f(s,t)=(d[t].y-d[s].y)/(d[t].x-d[s].x)

f(s,t)=f(s+1,t)-f(s,t-1))/(d[t].x-d[s].x)

输入插值次数n

float t=1.0, y=d[0].y, yt=0.0,int j=1

y=(x-d[j-1].x)*t+f(0,j)*t

返回y

j+1=>j

Y

j<=n

N

结 束

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值