matlab上机实验

合集下载
  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)

j x

0.4 0.55 0.65 0.80 0.95 1.05

j

y

0.41075 0.57815 0.69675

0.90

1.00 1.25382

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

j x

1 2 3 4 5 6 7

j

y

0.368 0.135 0.050 0.018 0.007 0.002 0.001

试构造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,)

()()(,

)()(1

11

1+=--==∏

∑+≠=+=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

001

0,()()[,,]()k n

n j k k j j k

N x f x f x x x x -==≠=+∙

-∑∏ 其中:

0,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、主程序:

对于数据(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所示:

图1

所以得到所求的lagrange 多项式为:

9950.09683.04419.01175.00186.00016.0001.0L 234566--+-+-=x x x x x x x )

(对于要求(3),在主窗口输入: x=[1,4,7];

y=[0.368,0.018,0.001]; [c,l]=lagran(x,y) c =

0.0185 -0.2092 0.5587 xx=1:7

yy= polyval(c,xx) plot(xx,yy, x,y,'o');

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

相关文档
最新文档