数值逼近实验报告2

  • 格式:docx
  • 大小:285.82 KB
  • 文档页数:11

下载文档原格式

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

实验报告

实验项目名称函数逼近与快速傅里叶变换实验室数学实验室

所属课程名称数值逼近

实验类型算法设计

实验日期2013年10月16日

班级11信息与计算科学

学号2011119404

姓名冯学宁

成绩

512*x^10 - 1280*x^8 + 1120*x^6 - 400*x^4 + 50*x^2 - 1

并得到Figure,图像如下:

实验二:编写程序实现[-1,1]上n阶勒让德多项式,并作画(n=0,1,…,10 在一个figure中)。要求:输入Legendre(-1,1,n),输出如a n x n+a n-1x n-1+…多项式。

在MATLAB的Editor中建立一个M-文件,输入程序代码,实现勒让德多项式的程序代码如下:

function Pn=Legendre(n,x)

syms x;

if n==0

Pn=1;

else if n==1

Pn=x;

else Pn=expand((2*n-1)*x*Legendre(n-1)-(n-1)*Legendre(n-2))/(n);

end

x=[-1:0.1:1];

A=sym2poly(Pn);

yn=polyval(A,x);

plot (x,yn,'-o');

hold on

end

在command Windows中输入命令:Legendre(10),得出的结果为:

Legendre(10)

ans =

(46189*x^10)/256 - (109395*x^8)/256 + (45045*x^6)/128 - (15015*x^4)/128 + (3465*x^2)/256 - 63/256

并得到Figure,图像如下:

实验三:利用切比雪夫零点做拉格朗日插值,并与以前拉格朗日插值结果比较。

在MATLAB的Editor中建立一个M-文件,输入程序代码,实现拉格朗日插值多项式的程序代码如下:

function [C,D]=lagr1(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

在command Windows 中输入如下命令:

clear,clf,hold on;

k=0:10;

X=cos(((21-2*k)*pi)./22); %这是切比雪夫的零点

Y=1./(1+25*X.^2);

[C,D]=lagr1(X,Y);

x=-1:0.01:1;

y=polyval(C,x);

plot(x,y,X,Y,'.');

grid on;

xp=-1:0.01:1;

z=1./(1+25*xp.^2);

plot(xp,z,'r')

得到Figure ,图像如下所示:

比较后发现,使用切比雪夫零点做拉格朗日插值不会发生龙格现象。 实验四:对于给定函数22511)(x

x f +=在区间1][-1,上取)10,,1,0(2.01⋅⋅⋅=+-=i i x i ,试求3次曲线拟合,试画出拟合曲线并打印出方程,与第2章计算实习题2的结果比较。

在MATLAB的Editor中输入程序代码,实现3次曲线拟合的程序代码如下:

x=[-1:0.2:1];

y=1./(1+25*x.^2);

p=polyfit(x,y,3);

yp=polyval(p,x);

plot(x,y,'o-',x,yp,'*-')

fp=poly2sym(p)

command Windows中输出:

fp =

(8299760523663595*x)/649037107316853453566312041152512 - (3305*x^2)/5746 - (572862092712169*x^3)/81129638414606681695789005144064 + 4360609662300613/9007199254740992

并得到Figure,图像如下:

第2章计算实习题2的结果如下:

牛顿插值多项式:

三次样条多项式:

比较下来可知:三次样条的拟合效果最好,其次是牛顿插值多项式,最次是3次曲线拟合。

实验五:由实验给出数据表

x 0.0 0.1 0.2 0.3 0.5 0.8 1.0

y 1.0 0.41 0.50 0.61 0.91 2.02 2.46

试求3次、4次多项式的曲线拟合,再根据数据曲线形状,求一个另外函数的拟合曲线,用图示数据曲线以及相应的三种拟合曲线。

在MATLAB的Editor中建立一个M-文件,输入程序代码,实现3次曲线拟合的程序代码如下:

x=[0 0.1 0.2 0.3 0.5 0.8 1];

y=[1 0.41 0.5 0.61 0.91 2.02 2.46];

p1=polyfit(x,y,3)

p2=polyfit(x,y,4)

y1=polyval(p1,x);

y2=polyval(p2,x);

plot(x,y,'g-',x,y1,'r-',x,y2,'b-')

hold on

p3=polyfit(x,y,2)%观察图形与抛物线接近,故采用2次曲线拟合

y3=polyval(p3,x);

plot(x,y3,'c-')

得到Figure,图像如下:

实验六:使用快速傅里叶变换确定函数f(x)=x^2*cosx在[-π,π]上的16次三角插值多项式。