数值逼近实验报告2.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告实验项目名称函数逼近与快速傅里叶变换实 验 室 数学实验室 所属课程名称数值逼近实验类型算法设计实验日期 2013年10月16日班级11信息与计算科学学号 2011119404 姓名冯学宁成绩实验概述:【实验目的及要求】本次实验的目的是熟练《数值分析》第三章“函数逼近与快速傅里叶变换”的相关内容,掌握切比雪夫多项式、勒让德多项式、n次曲线拟合以及快速傅里叶变换。本次试验要求编写牛顿多项式插值,三次样条插值,拉格朗日插值的程序编码以及画图,并在MATLAB软件中去实现。【实验原理】《数值分析》第三章“函数逼近与快速傅里叶变换”的相关内容,包括:切比雪夫多项式、勒让德多项式、n次曲线拟合以及快速傅里叶变换的相应算法和相关性质。【实验环境】(使用的软硬件)软件:MATLAB 2012a硬件:电脑型号:联想 Lenovo 昭阳E46A笔记本电脑操作系统:Windows 8 专业版 处理器:Intel(R)Core(TM)i3 CPU M 350 @2.27GHz 2.27GHz实验内容:【实验方案设计】第一步,将书上关于切比雪夫多项式、勒让德多项式、n次曲线拟合以及快速傅里叶变换的内容转化成程序语言,用MATLAB实现;第二步,分别用切比雪夫多项式、勒让德多项式、n次曲线拟合以及快速傅里叶变换求解不同的问题。【实验过程】(实验步骤、记录、数据、分析)实验的主要步骤是:首先分析问题,根据分析设计MATLAB程序,利用程序算出问题答案,分析所得答案结果,再得出最后结论。实验一:编写程序实现[-1,1]上n阶切比雪夫多项式,并作画(n=0,1,…,10 在一个figure中)。要求:输入Chebyshev(-1,1,n),输出如anxn+an-1xn-1+…多项式。在MATLAB的Editor中建立一个M-文件,输入程序代码,实现切比雪夫多项式的程序代码如下:function Pn=Chebyshev(n,x)syms x;if n==0Pn=1;elseif n==1Pn=x;else Pn=expand(2*x*Chebyshev(n-1)-Chebyshev(n-2)); endend x=[-1:0.01:1]; A=sym2poly(Pn); yn=polyval(A,x); plot (x,yn); hold onendend在command Windows中输入命令:Chebyshev(10),得出的结果为:Chebyshev(10)ans =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),输出如anxn+an-1xn-1+…多项式。在MATLAB的Editor中建立一个M-文件,输入程序代码,实现勒让德多项式的程序代码如下:function Pn=Legendre(n,x)syms x;if n==0Pn=1;elseif n==1Pn=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 onendend在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:nfor k=j:n D(k,j)=(D(k,j-1)- D(k-1,j-1))/(X(k)-X(k-j+1));endendC=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在com

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档