数值分析(计算方法)实验一

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数值分析》 课程实验指导书

实验一 函数插值方法

一、问题提出

对于给定的一元函数)(x f y =的n+1个节点值(),0,1,

,j j y f x j n ==。试用

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

数据如下:

(1)

求五次Lagrange 多项式5L ()x ,和分段三次插值多项式,计算(0.596)f ,(0.99)f 的值。(提示:结果为(0.596)0.625732f ≈, (0.99) 1.05423f ≈ )

(2)

试构造Lagrange 多项式6L ()x ,计算的(1.8)f ,(6.15)f 值。(提示:结果为(1.8)0.164762f ≈, (6.15)0.001266f ≈ )

二、要求

1、 利用Lagrange 插值公式

00,()n n

i n k k i i k k i x x L x y x x ==≠⎛⎫-= ⎪-⎝⎭∑∏编写出插值多项式程序; 2、 给出插值多项式或分段三次插值多项式的表达式;

3、 根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何;

4、 对此插值问题用Newton 插值多项式其结果如何。

四、实验分析:

Lagrange 插值多项式的表达式:

1,,2,1,)()()(,

)()(1111+=--==∏∑+≠=+=n i x x x x x l x l y x L n i j j j i j i n i i i 。

其中)(x l i 被称为插值基函数,实际上是一个n 次多项式。)(x l i 的这种表示具有较好的对称性。公式具有两大优点:(1)求插值多项式,不需要求解线性方程组,当已知数据点较多时,此公式更能显示出优越性。(2)函数值可以用符号形式表示,数据点未确定的纵坐标可用多项式表示。

Newton 插值多项式如下:

1

0010,()()[,,]()k n n j k k j j k N x f x f x x x x -==≠=+•-∑∏ 其中: 00,0()()[,,]k i k i i j j j i k f x x x f x x ==≠-=∑∏

Newton 插值多项式的优点是:当每增加一个节点时,只增加一项多项式。

三、实验程序及注释

1、m 程序:

function [c,l]=lagran(x,y)

% x 为n 个节点的横坐标组成的向量,y 为纵坐标所组成的向量

% c 为所得插值函数的系数所组成的向量

w=length(x);

n=w-1;

l=zeros(w,w);

for k=1:n+1

v=1;

for j=1:n+1

if k~=j

v=conv(v,poly(x(j)))/(x(k)-x(j));

end

end

l(k,:)=v;

end

c=y*l;

function fi=Lagran_(x,f,xi)

fi=zeros(size(xi));

n=length(f);

for i=1:n

z=ones(size(xi));

for j=1:n

if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));

end

end

fi=fi+z*f(i);

end

Return

2、主程序:

对于数据(1),在主窗口输入:

x=[0.4 0.55 0.65 0.80 0.95 1.05]; y=[0.41075 0.57815 0.68675 0.90 1.00 1.25382];

lagran (x,y)

ans =

143.8486 -506.0836 694.2890 -463.5132 151.5174 -18.9859

format long

xi=[0.596,0.990]; yi=Lagran_(x,y,xi)

yi =

0.61916350788547 1.05159915747938

xx=0.3:0.01:1.1

[c,l]=lagran(x,y)

yy= polyval(c,xx)

plot(xx,yy, x,y,'o');

得出在拉格朗日的插值多项式曲线图,如图1-1所示:

图1-1

由此得到所求的lagrange 多项式为:

9859.185174.1515132.4632890.6940836.5068486.143L 23455

-+-+-=x x x x x x )( 对于数据(2),在主窗口输入:

x=[1 2 3 4 5 6 7];

y=[0.368 0.135 0.050 0.018 0.007 0.002 0.001];

lagran (x,y)

ans =

0.0001 -0.0016 0.0186 -0.1175 0.4419 -0.9683 0.9950

xi=[1.8,6.15]; yi=Lagran_(x,y,xi)

yi =

0.16476 0.0012658

xx=0:7

[c,l]=lagran(x,y)

yy= polyval(c,xx)

plot(xx,yy, x,y,'o');

得出在拉格朗日的插值多项式曲线图,如图1-2所示:

相关文档
最新文档