admin 管理员组文章数量: 1086019
2024年3月29日发(作者:padding默认值)
题目一:多项式插值
某气象观测站在8:00(AM)开始每隔10分钟对天气作如下观测,用三次
多项式插值函数(Newton)逼近如下曲线,插值节点数据如上表,并求出9点
30分该地区的温度(x=10)。
x
y
1
2
3
4
5
6
7
8
二、数学原理
假设有n+1个不同的节点及函数在节点上的值(x
0
,y
0
),……(x
n
,y
n
),
插值多项式有如下形式:
P(
0
(
((xx
1
)
((xx
n
)
n
x)
1
x-x
0
)
2
x-x
0
)
n
x-x
0
)(xx
1
)
(1)
(y
i
其中系数
i
(i=0,1,2……n)为特定系数,可由插值样条
P
n
x
i
)
(i=0,1,2……n)确定。
根据均差的定义,把x看成[a,b]上的一点,可得
f(x)= f(
x
0
)+f[
x
0
,x
1
](
x-x
0
)
f[x,
x
0
]= f[
x
0
,x
1
]+f[x,
x
0
,x
1
] (
x-x
1
)
……
f[x,
x
0
,…x
n-1
]= f[x,
x
0
,…x
n
]+ f[x,
x
0
,…x
n
](x-x
n
)
综合以上式子,把后一式代入前一式,可得到:
f(x)= f[
x
0
]+f[
x
0
,x
1
](
x-x
0
)+ f[
x
0
,x
1
,x
2
](
x-x
0
)(
x-x
1
)+
(
…+ f[x,
x
0
,…x
n
](
x-x
0
)…(x-x
n-1
)+ f[x,
x
0
,…x
n
,
x
]
n
= N
n
1
x)
(x)+
R(
n
x)
其中
N
n
(x)= f[
x
0
]+f[
x
0
,x
1
](
x-x
0
)+ f[
x
0
,x
1
,x
2
](
x-x
0
)(
x-x
1
)
+
…+ f[x,
x
0
,…x
n
](
x-x
0
)…(x-x
n-1
)
(2)
R(
n
x)
= f(x)- N
n
(x)= f[x,
x
0
,…x
n
,
x
]
n
(
1
x)
(3)
n
(
=(
x-x
0
)…(x-x
n
)
1
x)
Newton插值的系数
i
(i=0,1,2……n)可以用差商表示。一般有
k
f
(4)
[
x
0
,x
1
x
k
] (k=0,1,2,……,n )
f(x
i
)
把(4)代入(1)得到满足插值条件N
(
(i=0,1,2,……n)的
n
x
i
)
n次Newton插值多项式
N
n
(x)=f(
x
0
)+f[
x
0
,x
1
](
x-x
1
)+f[
x
0
,x
1
,x
2
](
x-x
1
)(
x-x
2
)
+……+f[
x
0
,x
1
x
n
](
x-x
1
)(
x-x
2
)…(
x-x
n-1
).
其中插值余项为:
1
f
n
(
)
x)f(x)-N(x)
n
(
R(
n1
x)
(n1)!
介于
x
0
,x
1
x
k
之间。
三、程序设计
function [y,A,C,L]=newdscg(X,Y,x,M)
% y为对应x的值,A为差商表,C为多项式系数,L为多项式
% X为给定节点,Y为节点值,x为待求节点
n=length(X); m=length(x); % n为X的长度
for t=1:m
z=x(t); A=zeros(n,n);A(:,1)=Y';
s=; p=; q1=; c1=;
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); %输出y值
end
L(k,:)=poly2sym(C); %输出多项式
>> syms M,X=[1,3,5,7];Y=[,,,];x=10;
>> [y,A,C,L]=newdscg(X,Y,x,M)
y =
A =
0 0 0
0 0
0
C =
L =
- x^3/480 - (19*x^2)/160 + (697*x)/480 + 3387/160
四、结果分析和讨论
对于不超过三次的插值多项式,x如果选取1,3,5,7这三个点能够得到较好
的三次插值多项式L=^^2++。当x=10时,也即9点30分时的温度为度,结果分
析知此值应是偏小的。对于选取不同的插值节点,能够得到不同的插值多项式,
误差也不尽相同。
五、完成题目的体会与收获
对于牛顿插值法有了更深的了解,合理选择插值节点很重要。加深了对其原
理的认识,学会了牛顿插值法的matlab编程,对matlab计算方法更加熟悉。通
过完成这道题使我受益匪浅。
版权声明:本文标题:MATLAB 牛顿插值法例题与程序 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1711688700a605727.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论