数值分析实验报告matlab_第1页
数值分析实验报告matlab_第2页
数值分析实验报告matlab_第3页
数值分析实验报告matlab_第4页
数值分析实验报告matlab_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 / 31数值分析实验报告 matlab实验 多项式差值的振荡现象 一、实验内容 设区间-1,1上函数 2in f(x)? 11?25x 2 ,考虑区间-1,1的一个等距划分,分点为 n xi?1? ,i=0,1,2,.,n,则拉格朗日插值多项式为 Ln ?2 / 31 ? i?0 11?25xi 2 li(x) .其中, li(x),i=0,1,2,.,n 是 Lagrange插值基函数. 1) 选择不断增大的分点数目 n=2,3,.,画出原函数 f(x)及插值多项式函数 Ln(x) 在-1,1上的图像,比较并分析实验结果. 2) 选择其他的函数,例如定义在区间-5,5上的函数 h(x) x1?x 3 / 314 ,g(x) ?arctanx , 重复上述的实验看其结果如何. 二、实验程序 function chapter2 promps=请选择试验函数,若选 f(x),请输入 f,若选好 h(x),请输入 h,若选 g(x),请输入 g:; result=inputdlg(promps,charpt 2,1,f); Nb_f=char(result); if(Nb_f=f&Nb_f=h&Nb_f=g) errordlg(试验函数选择错误!); return; end result=inputdlg(请输入插值多项式的次数 N:,charpt_2,1,10); Nd=str2num(char(result); 4 / 31if(Nd errordlg(插值多项式的次数输入错误!); return; end switch Nb_f casef f=inline(1./(1+25*x. );a=-1;b=1; caseh f=inline(x./(1+x.);a=-5;b=5; caseg f=inline(atan(x);a=-5;b=5; end x0=linspace(a,b,Nd+1);y0=feval(f,x0); x=a:b;y=Lagrange(x0,y0,x); clf; fplot(f,a b,rx); hold on; plot(x,y,b-); xlabel(x);ylabel(y=f(x) x and y=Ln(x) -); 函数 function y=Lagrange(x0,y0,x) n=length(x0); 5 / 31m=length(x); for i=1:m z=x(i); s=0; for k=1:n p=; for j=1:n if (j=k) p=p.*(z-x0(j)/(x0(k)-x0(j); end end s=s+p*y0(k); end y(i)=s; end 三、实验结果及分析 1)选择不断增大的分点数目 n,原函数 f(x)及插值多项式函数 Ln(x)在-1,1上的 图像。 1 随着提高插值多项式次数,可以提高逼近的精度,但是次数的增加,在区间两端点附近与原函数偏离很远,即出现了 Runge现象。 2) 选择不断增大的分点数目 n,原函数 h(x)及插值多项式函数 Ln(x)在-1,1上的图像。6 / 31 2 选择不断增大的分点数目 n,原函数 g(x)及插值多项式函数 Ln(x)在-1,1上的图像。 3 同样,随着提高插值多项式次数,可以提高逼近的精度,但是次数的增加,在区间两端点附近与原函数偏离很远,即出现了 Runge现象。 4 学 生 实 验 报 告 实验课程名称 数值分析 开课实验室 数学与统计学院实验室 学 院 数学与应用数学专业班 7 / 31学 生 姓 名 学 号 开 课 时 间 2016 至 2016 学年第 一 学期 1 2 3 4 实验 多项式插值的震荡现象 问题提出:考虑在一个固定的区间上用插值逼近一个函数。显然 Lagrange插值中使 用的节点越多,插值多项式的次数越高,我们自然关心插值多项式的次数增加时,Ln(x)是否也更加靠近被逼近的函数。Runge 给出的一个例子是极著名并富有启发性的。设区间-1,1上函数 8 / 31f(x)? 11?25x2in 2 . 实验内容:考虑空间-1,1的一个等距划分,分点为 xi?1?则拉格朗日插值多项式为 n , i?0,1,2 .,n, Ln(x)? ?1?25x i?0 1 9 / 312i (x). 其中,li(x),i?0,1,2,.,n 是 n次 Lagrange插值基函数。 实验要求: 选择不断增大的分点数目 n?2,3,.,画出原函数 f(x)及插值多项式函数 Ln(x)在-1,1上的图像,比较并分析实验结果。 选择其他的函数,例如定义在区间-5,5上的函数 h(x)? x1?x 4 , g(x)?arctan(x), 10 / 31重复上述的实验看其结果如何。 首先编写拉格朗日插值函数的 Matlab实现: Matlab程序为: function y=lagrange(x0,y0,x) %Lagrange插值 n=length(x0); m=length(x); for i=1:m z=x(i); s=; for k=1:n p=; for j=1:n if(j=k) p=p*(z-x0(j)/(x0(k)-x0(j); end end s=s+p*y0(k); end y(i)=s; end 当函数为 f(x)?Matlab程序为: 11?25x 211 / 31 .时, x=linspace(-1,1,100); y=1./(1+25*x. ); plot(x,y) hold on; for i=2:2:10 x0=linspace(-1,1,i+1); y0=1./(1+25*x0. ); y=laglanri(x0,y0,x); plot(x,y,r-) hold on end 运行结果: 结果分析: Runge现象 y -1 - 12 / 310x 从图上看到在区间-1,1的两端点附近,随着插值点数的增加,插值函数 Ln(x)与 f(x)偏离的越远,而且出现了振荡现象。 当函数为 h(x)? x1?x 4 ,时 Matlab程序为: x=linspace(-5,5,100); y=x./(1+x.); plot(x,y) hold on; for i=2:2:10 x0=linspace(-5,5,i+1); y0=x0./(1+x0.); y=laglanri(x0,y0,x); plot(x,y,r-) hold on end 13 / 31运行结果: Runge现象 -5 y -4-3-2-1 0x 12345 结果分析: 从图上看到在区间-5,5的两端点附近,随着插值点数的增加,插值函数 Ln(x)与 h(x)偏离的越远,而且出现了振荡现象。 当函数为 g(x)?arctan(x) 14 / 31x=linspace(-5,5,100); y=atan(x); plot(x,y) hold on; for i=2:2:10 x0=linspace(-5,5,i+1); y0=atan(x0); y=laglanri(x0,y0,x); plot(x,y,r-) hold on end 运行结果: Runge现象 y -5 -4-3-2-1 0x 12345 15 / 31结果分析: 从图上看到在区间-5,5的两端点附近,随着插值点数的增加,插值函数 Ln(x)与 g(x)偏离的越远,而且出现了振荡现象。 实验 编制以函数xkn 为基的多项式最小二乘拟合程序,并用于对表中的数据作 3次 k?0 多项式二乘拟合。 n *k 取权数 wi1,求拟合曲线?ak 平方误差?,并作离散数据xi,yix 中的参数ak、 k?0* 16 / 31的拟合函数 y?(x)的图像。 Matlab 程序如下: x0=-1:2; y0=- - - ; alph=polyfit(x0,y0,n);%ployfit为最小二乘拟合函数,alph为系数,主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵.MATLAB 自问世以来,就是以数值计算称.MATLAB进行数值计算的基本单位是复数数组,这使得MATLAB高度“向量化”.经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具.由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的.MATLAB 中包括了被称作工具箱的各类应用问题的求解工具.工具箱实际上是对 MATLAB进行扩展应用的一系列 MATLAB函数,它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等.随着MATLAB版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用范围也越来越广泛,MATLAB 提供的工具箱已覆盖信号处理、系统控制、统计计算、优化计算、神17 / 31经网络、小波分析、偏微分方程、模糊逻辑、动态系统模拟、系统辨识和符号运算等领域.当前它的使用范围涵盖了工业、电子、医疗、建筑等各行各业.MATLAB 中包括了图形界面编辑 GUI,让使用者也可以象 VB、VC、VJ、DELPHI 等那样进行一般的可视化的程序编辑.在命令窗口键入simulink,就出现(SIMULINK) 窗口.以往十分困难的系统仿真问题,用 SIMULINK只需拖动鼠标即可轻而易举地解决问题,这也是近来受到重视的原因所在. MATLAB 语言由美国 The MathWorks 开发,最早是由用Fortran语言编写的,用来方便地调用 LINPACK和 EISPACK矩阵代数软件包的程序.后来他创立了 MATHHWORKS公司,对 MATLAB作了大量的、坚持不懈的改进.Cleve 是 The MathWork公司的主席和首席科学家.曾任密歇系教授.他在两个计算机硬件制造商 Intel公司的 Hypercube组织和Arden Computers 公司工作了五年.他的主要专业兴趣在于数值分析和科学计算.他是 MATLAB软件的创始者,也是著名的矩阵计算软件包 LINPACK和 EISPACK的著作这一,已撰写了三本有相关数值方法的教材.同时,他在 SIAM历任期刊编辑、委员会成员和副总裁,并从 1996年开始担任理事会成员. 18 / 312. Matlab入门知识 Matlab变量名是以字母开头,后接字母、数字或下划线的字符序列,最多 63个字符.在 MATLAB中,变量名区分字母的大小写. 赋值语句: 变量=表达式 或 表达式 其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵. clear命令用于删除 MATLAB工作空间中的变量.who 和 whos这两个命令用于显示在 MATLAB工作空间中已经驻留的变量名清单.who 命令只显示出驻留变量的名称,whos 在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息. 利用 MAT文件可以把当前 MATLAB工作空间中的一些有用变量长久地保留下 来,扩展名是.文件的生成和装入由 save和 load命令来完成.常用格式为:19 / 31 save 文件名 变量名表 -append-ascii load 文件名 变量名表 -ascii 其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat 文件进行操作.变量名表中的变量个数不限,只要内存或文件中存在即可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论