实验一函数插值方法报告.docx

上传人:b****3 文档编号:2279236 上传时间:2022-10-28 格式:DOCX 页数:10 大小:42.81KB
下载 相关 举报
实验一函数插值方法报告.docx_第1页
第1页 / 共10页
实验一函数插值方法报告.docx_第2页
第2页 / 共10页
实验一函数插值方法报告.docx_第3页
第3页 / 共10页
实验一函数插值方法报告.docx_第4页
第4页 / 共10页
实验一函数插值方法报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

实验一函数插值方法报告.docx

《实验一函数插值方法报告.docx》由会员分享,可在线阅读,更多相关《实验一函数插值方法报告.docx(10页珍藏版)》请在冰豆网上搜索。

实验一函数插值方法报告.docx

实验一函数插值方法报告

实验一函数插值方法报告

一、问题提出

对于给定的一元函数的n+1个节点值。

试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。

数据如下:

(1)

0.4

0.55

0.65

0.80

0.95

1.05

0.41075

0.57815

0.69675

0.90

1.00

1.25382

求五次Lagrange多项式,和分段三次插值多项式,计算,

的值。

(提示:

结果为,)

(2)

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;

end

else

disp('x和y的维数不相等!

');

return;

end

fori=1:

n

h=1.0;

a=0.0;

forj=1:

n

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));

end

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];

>>[A1,LN,L1,B1]=lagrange1(X,Y)

>>plot(X,A1);

>>F=poly2sym(A1)

运行后,输出结果的Lagrange多项式的结果:

A1=

0.0001-0.00160.0186-0.11750.4419-0.96830.9950

F=

Lagrange多项式的图如下:

二、计算函数值

计算函数值的主程序:

lagrangezhi.m

function[y,R]=lagrangezhi(X,Y,x,M)

n=length(X);m=length(x);

fori=1:

m

z=x(i);s=0.0;

fork=1:

n

p=1.0;q1=1.0;c1=1.0;

forj=1:

n

ifj~=k

p=p*(z-X(j))/(X(k)-X(j));

end

q1=abs(q1*(z-X(j)));c1=c1*j;

end

s=p*Y(k)+s;

end

y(i)=s;

end

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;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=

1.0542

R=

5.5901e-008

(2)、计算、的值

在主显示区,输入程序:

>>x=1.8;M=1;X=[1,2,3,4,5,6,7];

>>Y=[0.368,0.135,0.050,0.018,0.007,0.002,0.001];

>>[y,R]=lagrangezhi(X,Y,x,M)

运行结果:

y=

0.1648

R=

0.0059

在主显示区,输入程序:

>>x=6.15;M=1;X=[1,2,3,4,5,6,7];

>>Y=[0.368,0.135,0.050,0.018,0.007,0.002,0.001];

>>[y,R]=lagrangezhi(X,Y,x,M)

运行结果:

y=

0.0013

R=

0.0042

三、Newton插值多项式

Newton插值多项式主程序M文件:

Newton.m

function[A,C,L,wcgs,Cw]=Newton(X,Y)

n=length(X);A=zeros(n,n);A(:

1)=Y';

s=0.0;p=1.0;q=1.0;c1=1.0;

forj=2:

n

fori=j:

n

A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1));

end

b=poly(X(j-1));q1=conv(q,b);c1=c1*j;q=q1;

end

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);

end

L(k,:

)=poly2sym(C);Q=poly2sym(q1);

symsM

wcgs=M*Q/c1;Cw=q1/c1;

在主显示区,输入的程序:

>>x=[0.40.550.650.800.951.05];

>>y=[0.410750.578150.696750.901.001.25382];

>>[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=

121.6264-422.7503572.5667-377.2549121.9718-15.0845

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];

>>[A,C,L,wcgs,Cw]=Newton(x,y)

>>symsx;

>>ezplot(L,[08]);

运行结果如下,得到:

A=

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

 

C=

0.0001-0.00160.0186-0.11750.4419-0.96830.9950

L=

wcgs=

(M*(x^7-28*x^6+322*x

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1