0matlab计算方法实验指导误差分析.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
0matlab计算方法实验指导误差分析

实验一 误差分析 实验1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中是一个非常小的数。这相当于是对(1.1)中的系数作一个小的扰动。我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个MATLAB函数:“roots”和“poly”。 其中若变量a存储n+1维的向量,则该函数的输出u为一个n维的向量。设a的元素依次为,则输出u的各分量是多项式方程 的全部根;而函数 的输出b是一个n+1维向量,它是以n维向量v的各分量为根的多项式的系数。可见“roots”和“poly”是两个互逆的运算函数。 上述简单的MATLAB程序便得到(1.2)的全部根,程序中的“ess”即是(1.2)中的。 实验要求: 选择充分小的ess,反复进行上述实验,记录结果的变化并分析它们。如果扰动项的系数很小,我们自然感觉(1.1)和(1.2)的解应当相差很小。计算中你有什么出乎意料的发现?表明有些解关于如此的扰动敏感性如何? 将方程(1.2)中的扰动项改成或其它形式,实验中又有怎样的现象出现? (选作部分)请从理论上分析产生这一问题的根源。注意我们可以将方程(1.2)写成展开的形式, 同时将方程的解x看成是系数的函数,考察方程的某个解关于的扰动是否敏感,与研究它关于的导数的大小有何关系?为什么?你发现了什么现象,哪些根关于的变化更敏感? 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考MATLAB的帮助。 思考题二:(二进制产生的误差) 用MATLAB计算。结果居然有误差!因为从十进制数角度分析,这一计算应该是准确的。实验反映了计算机内部的二进制本质。 思考题三:(一个简单公式中产生巨大舍入误差的例子) 可以用下列式子计算自然对数的底数 这个极限表明随着n的增加,计算e值的精度是不确定的。现编程计算与exp(1)值的差。n大到什么程度的时候误差最大?你能解释其中的原因吗? 相关MATLAB函数提示: poly(a) 求给定的根向量a生成其对应的多项式系数(降序)向量 roots(p) 求解以向量p为系数的多项式(降序)的所有根 poly2sym(p) 将多项式向量p表示成为符号多项式(降序) sym(arg) 将数字、字符串或表达式arg转换为符号对象 syms arg1 arg2 argk 将字符arg1,arg2,argk定义为基本符号对象 solve(eq1) 求符号多项式方程eq1的符号解 实验二 非线性方程求根 实验2(迭代法、初始值与收敛性) 实验目的:初步认识非线性问题的迭代法与线性问题迭代法的差别,探讨迭代法及初始值与迭代收敛性的关系。 问题提出:迭代法是求解非线性方程的基本思想方法,与线性方程的情况一样,其构造方法可以有多种多样,但关键是怎样才能使迭代收敛且有较快的收敛速度。 实验内容:考虑一个简单的代数方程 针对上述方程,可以构造多种迭代法,如 在实轴上取初始值x0,请分别用迭代(7.1)-(7.3)作实验,记录各算法的迭代过程。 实验要求: (1)取定某个初始值,分别计算(7.1)-(7.3)迭代结果,它们的收敛性如何?重复选取不同的初始值,反复实验。请自选设计一种比较形象的记录方式(如利用MATLAB的图形功能),分析三种迭代法的收敛性与初值选取的关系。 (2)对三个迭代法中的某个,取不同的初始值进行迭代,结果如何?试分析迭代法对不同的初值是否有差异? (3)线性方程组迭代法的收敛性是不依赖初始值选取的。比较线性与非线性问题迭代的差异,有何结论和问题。 思考题一:用Newton法求方程 在区间[-3,3]上误差不大于的根,分别取初值进行计算,比较它们的迭代次数。 相关MATLAB函数提示: x=fzero(fun,x0) 返回一元函数fun的一个

文档评论(0)

yd327298 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档