实验一函数插值方法报告Word文件下载.docx
- 文档编号:15196807
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:10
- 大小:42.81KB
实验一函数插值方法报告Word文件下载.docx
《实验一函数插值方法报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验一函数插值方法报告Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
1
2
3
4
5
6
7
0.368
0.135
0.050
0.018
0.007
0.002
0.001
试构造Lagrange多项式,计算的,值。
结果为,)
二、要求
1、利用Lagrange插值公式
编写出插值多项式程序;
2、给出插值多项式或分段三次插值多项式的表达式;
3、根据节点选取原则,对问题
(2)用三点插值或二点插值,其结果如何;
4、对此插值问题用Newton插值多项式其结果如何。
Newton插值多项式如下:
其中:
三、目的和意义
1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;
2、明确插值多项式和分段插值多项式各自的优缺点;
3、熟悉插值方法的程序编制;
4、如果绘出插值函数的曲线,观察其光滑性。
四、实验学时:
2学时
五、实验步骤:
1.进入C或matlab开发环境;
2.根据实验内容和要求编写程序;
3.调试程序;
4.运行程序;
5.撰写报告,讨论分析实验结果.
解:
一、编写插值函数结构程序
Lagrange插值多项式M文件:
lagrange1.m
function[A1,LN,L1,B1]=lagrange1(X,Y)
m=length(X);
LN=ones(m,m);
fork=1:
m
x1=1;
fori=1:
m
ifk~=i
x1=conv(x1,poly(X(i)))/(X(k)-X(i));
end
end
L1(k,:
)=x1;
B1(k,:
)=poly2sym(x1)
end
A1=Y*L1;
LN=Y*B1
分段三次艾尔米特插值多项式的M文件:
Hermite3.m
function[f,ff]=Hermite3(x,y,y1)
symst;
f=0.0;
if(length(x)==length(y))
if(length(y)==length(y1))
n=length(x);
else
disp('
y和y的导数的维数不相等'
);
return;
else
x和y的维数不相等!
'
fori=1:
n
h=1.0;
a=0.0;
forj=1:
if(j~=i)
h=h*(t-x(j))^2/((x(i)-x(j))^2);
a=a+1/(x(i)-x(j));
end
end
f=f+h*((x(i)-t)*(2*a*y(i)-y1(i))+y(i));
ff=subs(f,'
t'
(1)、求五次Lagrange多项式,和分段三次插值多项式。
在主显示区,输入五次Lagrange多项式程序:
>
X=[0.40.550.650.800.951.05];
Y=[0.410750.578150.696750.901.001.25382];
[A1,LN,L1,B1]=lagrange1(X,Y)
plot(X,A1);
F=poly2sym(A1)
运行后,输出五次Lagrange多项式的结果:
A1=
121.6264-422.7503572.5667-377.2549121.9718-15.0845
F=
拉格朗日插值多项式的图如下:
在主显示区,输入分段三次艾尔米特插值多项式的程序:
x=[0.40.550.650.800.951.05];
y=[0.410750.578150.696750.901.001.25382];
y1=[2.34400.90321.43290.99030.91705.1439];
[f,ff]=Hermite3(x,y,y1);
ff
运行后,分段三次艾尔米特插值多项式的输出结果:
ff=
分段三次艾尔米特插值多项式的图如下:
(2)、试构造Lagrange多项式。
结果为,
在主显示区,输入程序:
X=[1234567];
Y=[0.3680.1350.0500.0180.0070.0020.001];
F=poly2sym(A1)
运行后,输出结果的Lagrange多项式的结果:
0.0001-0.00160.0186-0.11750.4419-0.96830.9950
Lagrange多项式的图如下:
二、计算函数值
计算函数值的主程序:
lagrangezhi.m
function[y,R]=lagrangezhi(X,Y,x,M)
n=length(X);
m=length(x);
z=x(i);
s=0.0;
fork=1:
p=1.0;
q1=1.0;
c1=1.0;
forj=1:
ifj~=k
p=p*(z-X(j))/(X(k)-X(j));
q1=abs(q1*(z-X(j)));
c1=c1*j;
s=p*Y(k)+s;
y(i)=s;
R=M*q1/c1;
(1)、计算、的值。
x=0.596;
M=1;
X=[0.4,0.55,0.65,0.80,0.95,1.05];
Y=[0.41075,0.57815,0.69675,0.90,1.00,1.25382];
[y,R]=lagrangezhi(X,Y,x,M)
运行结果:
y=
0.6257
R=
2.2170e-008
x=0.99;
1.0542
5.5901e-008
(2)、计算、的值
x=1.8;
X=[1,2,3,4,5,6,7];
Y=[0.368,0.135,0.050,0.018,0.007,0.002,0.001];
0.1648
0.0059
x=6.15;
0.0013
0.0042
三、Newton插值多项式
Newton插值多项式主程序M文件:
Newton.m
function[A,C,L,wcgs,Cw]=Newton(X,Y)
A=zeros(n,n);
A(:
1)=Y'
;
q=1.0;
forj=2:
fori=j:
A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1));
b=poly(X(j-1));
q1=conv(q,b);
c1=c1*j;
q=q1;
C=A(n,n);
b=poly(X(n));
q1=conv(q1,b);
fork=(n-1):
-1:
1
C=conv(C,poly(X(k)));
d=length(C);
C(d)=C(d)+A(k,k);
L(k,:
)=poly2sym(C);
Q=poly2sym(q1);
symsM
wcgs=M*Q/c1;
Cw=q1/c1;
在主显示区,输入的程序:
[A,C,L,wcgs,Cw]=Newton(x,y)
symsx;
ezplot(L,[01.1]);
运行结果如下,得到
A=
0.410800000
0.57821.11600000
0.69671.18600.2800000
0.90001.35500.67600.990000
1.00000.6667-2.2944-7.4261-15.30200
1.25382.53827.486124.451463.7551121.6264
C=
L=
wcgs=
Cw=
0.0014-0.00610.0110-0.01030.0054-0.00140.0002
牛顿插值多项式的图如下:
x=[1234567];
y=[0.3680.1350.0500.0180.0070.0020.001];
ezplot(L,[08]);
运行结果如下,得到:
0.3680000000
0.1350-0.233000000
0.0500-0.08500.07400000
0.0180-0.03200.0265-0.0158000
0.0070-0.01100.0105-0.00530.002600
0.0020-0.00500.0030-0.00250.0007-0.00040
0.0010-0.00100.0020-0.00030.0005-0.00000.0001
0.0001-0.00160.0186-0.11750.4419-0.96830.9950
(M*(x^7-28*x^6+322*x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 函数 方法 报告