数值分析与matlab实现论文

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

1、插值与拟合已知()101

x

f x e x

=+-

(1)求函数在0,0.2,0.4,0.6,0.8,1

x=处的函数值;(先编函数,再求值保存到向量中)

(2)对上述数据进行多项式插值,作出多项式

5()

y P x

=的图像,与原函数图象比较;

(先列出差分表,再用牛顿插值公式编写出多项式函数)

(3)对上述数据做线性拟合,作出多项式

1()

y P x

=的图像;

(先定义内积函数,再列出法方程,然后求解,最后编出多项式函数)(4)构造()

f x在[0,1]区间内的5次切比雪夫多项式5()

T x,并作出图像。

(先生成切比雪夫点,再列出差分表,再插值)

(1)函数代码为%

f u n c t i o n y=P(x)

y=e x p(x)+10*x-1;

函数文件%

x=[0:0.2:1];

y=P(x)

相应点的函数值

结果为y=02.22144.49186.8221

9.225511.7183

(2)差分表代码为%

f u n c t i o n A=f f(x,y)

n=l e n g t h(x);

A=z e r o s(n,n+1);

A(:,1)=x';

A(:,2)=y';

f o r j=3:n

f o r i=j-1:n

A(i,j)=A(i,j-1)-A(i-1,j-1);

end

end

差分表代码

x=[0:0.2:

y=P(x);

A=f f(x,y)

结果为A=

0 0 0 0 0 0 0 0.2000 2.2214 2.2214 0 0 0 0 0.4000 4.4918 2.2704 0.0490 0 0 0 0.6000 6.8221 2.3303 0.0599 0.0109 0 0

0.8000 9.2255 2.4034 0.0731 0.0133 0.0024 0

1.0000 11.7183

2.4927 0.0893 0.0162 0.0029 0

牛顿插值公式代码为 %x =0:0.2:1;y =P (x );C =n e w p o l y (x ,y );

x x =0:0.1:1;y y =p o l y v a l (C ,x x );y y y =p o l y 2s t r (C ,'x ')p l o t (x ,y ,'r o ',x x ,y y )

牛顿插值及相应图像

%function c=new poly(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

结果为 5

4

3

2

0.0138540.034866

0.17041

0.4990711.0001

y y y x x x x x

=+

+++

(3)对上述数据做线性拟合,关键在于找出法方程。定义如下的内积函数:

06

0(,)i

i i

w ϕϕ==

∑,0

6

1(,)i i

i i

w x ϕ

ϕ==

∑,6

21

1(,)i i

i i

w x ϕ

ϕ==

∑,6

1

(,)f i

i

i i

w f ϕ

ϕ==

∑,这里取

权重为1,然后再构造如下的法方程,1

(,)k j j k j a d ϕϕ==∑(k=0,1),由法方程得到

线性方程组,从而通过解线性方程组得到线性拟合曲线的系数。

线性拟合程序代码为 (1)

(,,)

();(1,1);(,1)c =a \b ;

c =f l i ;1:1

(:pud(,).

;

*;*;c);

k function c Ispoly x y m n length x b zeros m f zeros n m for k m f k x end a f f b f y -===+=+=+'='=''=

x =0:0.2:1;y =P C =I s p o l y (x ,y ,3);

x x =0:0.1:1;

y y =p o l y v a l (C ,x x );y y y =p o l y 2s t r (C ,'x ')p l o t (x ,y ,'r o ',x x ,y y )

结果为 320.279240.424311.01470.00018852yyy x x x =++-

(4)利用6()T x 的零点作插值节点,构造()f x 在[0,1]区间内的5次多项式。由

于切比雪夫零点是在区间[1,1]-之间,对于一般区间只要利用如下的变换即可。

()/2*cos((2*1)*/2*(1))()/2,0,1....k x b a k pi n a b k n =-++++= 所

以首先要生成切比雪夫点。,利用上述区间变换的公式可得节点:

0124560.98,0.85,0.63,0.37,0.15,0.017

x x x x x x ======,进一步得到差分表,找

出插值函数,并作出相关图像。

代码为 x =[0.98,0.85,0.63,0.37,0.1

y =P (x );A =f f (x ,y )C =n e w p o l y (x ,y );x x =0:0.1:1;

y y =p o l y v a l (C ,x x );

y y y =p o l y 2s t r (C ,'x ')

p l o t (x ,y ,'r o ',x x ,y y )

结果为A =

0.9800 11.4645 0 0 0 0 0 0.8500 9.8396 -1.6248 0 0 0 0

0.6300 7.1776 -2.6620 -1.0372 0 0 0 0.3700 4.1477 -3.0299 -0.3678 0.6694 0 0 0.1500 1.6618 -2.4859 0.5440 0.9118 0.2424 0 0.0170 0.1871 -1.4747 1.0112 0.4672 -0.4446 0

5

4

3

2

0.0138540.0349150.170310.4991211.0001 1.0643006

yyy x x x x x e =++++--

相关文档
最新文档