1 / 19
文档名称:

matlab实现数值分析报告插值及积分(共19页).doc

格式:doc   大小:246KB   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

matlab实现数值分析报告插值及积分(共19页).doc

上传人:rdwiirh 2022/3/28 文件大小:246 KB

下载得到文件列表

matlab实现数值分析报告插值及积分(共19页).doc

相关文档

文档介绍

文档介绍:精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
Matlab实现数值分析插值及积1
二.牛顿插值法
newton插值多项式的表达式如下:
其中每一项的系数ci的表达式如下:
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
即为f (x)在点处的i阶差商,(,),由差商的性质可知:
matlab编程:
编程思想:主要从上述牛顿插值公式入手:依靠循环,运用poly()函数和conv()函数表示拉格朗日公式,其中的poly(i)函数表示以i作为根的多项式的系数,例如poly(1)表示x-1的系数,输出为1 -1,而poly(poly(1))表示(x-1)*(x-1)=x^2-2*x+1的系数,输出为1 -2 1;而conv()表示多项式系数乘积的结果,例如conv(poly(1),poly(1))输出为1 -2 1;所以程序最后结果为x^n+x^n-1+……+x^2+x+1(n的值据结果的长度为准)的对应系数。
在命令窗口输入edit ,文件中的程序如下:
function [c,d]=newpoly(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
输入:>> x=[0 1 2 3 4];
>> y=[1 2 17 82 257];
>> newpoly(x,y)
运行结果为
ans =
1 0 0 0 1
所以=+。
如图表2:
图表 2
三.埃特金插值法:
Aitken插值公式如下:
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
递推表达式为:
= +
当n=1时,
= +
当n=2时,
= +
其中的带入递推表达式求得。
由此递推下去,最终得到的结果。
matlab编程:
编程思想:埃特金插值多项式又称作Aitken逐次线性插值多项式, 根据公式的特点,可以利用2次嵌套循环将公式表示出来。
在命令窗口输入edit Aitken ,文件中的程序如下:
function f = Aitken(x,y)
syms z;
n = length(x);
y1(1:n) = z;
for i=1:n-1
for j=i+1:n
y1(j) = y(j)*(z-x(i))/(x(j)-x(i))+y(i)*(z-x(j))/(x(i)-x(j));
end
y = y1;
simplify(y1);
end
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
simplify(y1(n));
f = collect(y1(n));
输入:>> x=[0 1 2 3 4];
>> y=[1 2 17 82 257];
>> Aitken(x,y)
运行结果为
ans =

z^4 + 1
所以=+。
如图表3:
图表 3
问题二:复化积分
对于问题二来说,