




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一误差分析实验 1(病态问题)实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。 病态问题要通过研究和构造特殊的算法来解决, 当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空何等)。问题提出:考虑一个高次的代数多项式20p(x)=(x-1)(x-2)(x-20)=(x-k)(1.1)k4显然该多项式的全部根为 1,2,20 共计 20 个,且每个根都是单重的。现
2、考虑该多项式的一个扰动p(x);x19=0(1.2)其中 6 是一个非常小的数。这相当于是对(1.1)中x19的系数作一个小的扰动。我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。实验内容:为了实现方便,我们先介绍两个 MATLAB 函数:“roots”和“poly”。u=roots(a)其中若变量 a 存储 n+1 维的向量,则该函数的输出 u 为一个 n 维的向量。设 a 的元素依次为为?,,小 4,则输出 u 的各分量是多项式方程a1xna2xn-anxan1=0的全部根;而函数的输出 b 是一个 n+1 维向量,它是以 n 维向量 v 的各分量为根
3、的多项式的系数。可见“roots”和“poly”是两个互逆的运算函数。ess=0.000000001;ve=zeros(1,21);ve(2)=essroots(poly(1:20)ve)上述简单的MATLAB程序便得到(1.2)的全部根, 程序中的“esS即是(1.2)中的安。实验要求:(1)选择充分小的 ess,反复进行上述实验,记录结果的变化并分析它们。如果扰动项的系数 w 很小,我们自然感觉(1.1)和(1.2)的解应当相差很小。计算中你有什么出乎意料的发现?表明有些解关于如此的扰动敏感性如何?(2)将方程(1.2)中的扰动项改成盘18或其它形式,实验中又有怎样的现象出现?(3)(选作
4、部分)请从理论上分析产生这一问题的根源。注意我们可以将方程(1.2)写成展开的形式,p(x)=x20-lx19=0(1.3)同时将方程的解x看成是系数口的函数, 考察方程的某个解关于a的扰动是否敏感,与研究它关于”的导数的大小有何关系?为什么?你发现了什么现象,哪些根关于 a的变化更敏感?思考题一:(上述实验的改进)在上述实验中我们会发现用 roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数 solve 来提高解的精确度, 这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考 MATLAB 的帮助。思考题二:(二进制产生的误差)1000用 MATL
5、AB 计算工0.1-1000结果居然有误差!因为从十进制数角度分析,i1这一计算应该是准确的。实验反映了计算机内部的二进制本质思考题三:(一个简单公式中产生巨大舍入误差的例子)可以用下列式子计算自然对数的底数e=e1=lim(11)n这个极限表明随着 n 的增加,计算1Cf(n)=(1+1)n与 exp(1)值的差。n 大到什么程度的时候误差最大?你能解释其中n的原因吗?相关 MATLAB 函数提示:poly(a)求给定的根向量 a 生成其对应的多项式系数(降序)向量roots(p)求解以向量 p 为系数的多项式(降序)的所有根poly2sym(p)将多项式向量 p 表示成为符号多项式(降序)
6、sym(arg)将数字、字符串或表达式 arg 转换为符号对象symsarg1arg2argk 将字符 arg1,arg2,argk 定义为基本符号对象solve(eqT)求符号多项式方程 eq1 的符号解实验二非线性方程求根实验实验2 2(迭代法、初始值与收敛性)实验目的:初步认识非线性问题的迭代法与线性问题迭代法的差别,探讨迭代法及初始值与迭代收敛性的关系。e 值的精度是不确定的。现编程计算问题提出:迭代法是求解非线性方程的基本思想方法,与线性方程的情况一样,其构造方法可以有多种多样,但关键是怎样才能使迭代收敛且有较快的收敛速度。实验内容:考虑一个简单的代数方程x2-x-1=0针对上述方程
7、,可以构造多种迭代法,如5.1=X2-1(7.1)1Xn1=1(7.2)xnXn1=.51(7.3)在实轴上取初始值 xo,请分别用迭代(7.1)-(7.3)作实验,记录各算法的迭代过程。实验要求:(1)取定某个初始值,分别计算(7.1)-(7.3)迭代结果,它们的收敛性如何?重复选取不同的初始值,反复实验。请自选设计一种比较形象的记录方式(如利用 MATLAB的图形功能),分析三种迭代法的收敛性与初值选取的关系。(2)对三个迭代法中的某个,取不同的初始值进行迭代,结果如何?试分析迭代法对不同的初值是否有差异?(3)线性方程组迭代法的收敛性是不依赖初始值选取的。比较线性与非线性问题迭代的差异,
8、有何结论和问题。思考题一:用 Newton 法求方程3x一xT=0在区间-3,3上误差不大于104的根,分别取初值 x0=1.5,0,-1 进行计算,比较它们的迭代次数。相关 MATLAB 函数提示:x=fzero(fun,x0)返回一元函数 fun 的一个零点,其中 fun 为函数句柄,x0 为标量时,返回在 x0 附近的零点;x0 为向量a,b时,返回函数在a,b中的零点x,f,h=fsolve(fun,x0)返回一元或多元函数 x0 附近 fun 的一个零点,其中 fun 为函数句柄,x0 为迭代初值;f 返回 fun 在 x 的函数值,应该接近 0;h 返回值如果大于 0,说明计算结果
9、可靠,否则不可靠实验三解线性方程组的迭代法实验 3.1(病态的线性方程组的求解)问题提出:理论的分析表明,求解病态的线性方程组是困难的。实际情况是否如此,会出现怎样的现象呢?实验内容:考虑方程组 Hx=b 的求解,其中系数矩阵 H 为 Hilbert 矩阵,.1._(hij)nn,hiJ=rTi,i,j,2,,n这是一个著名的病态问题。通过首先给定解(例如取为各个分量均为 1)再计算出右端 b 的办法给出确定的问题。实验要求:(1)选择问题的维数为 6,分别用 Gauss 消去法、J 迭代法、GS 迭代法和 SOR 迭代法求解方程组,其各自的结果如何?将计算结果与问题的解比较,结论如何?(2)
10、逐步增大问题的维数,仍然用上述的方法来解它们,计算的结果如何?计算的结果说明了什么?思考题一:讨论病态问题求解的算法Jacobi 迭代法与 Gauss-seide 迭代法的比较:用 Jacobi迭代法与 Gauss-seide 迭代法解下列方程组:10(1)-11U210.5(2)0.51、0.50.5取 x(0)=(0,0,0)T,8=10,你能得出什么结论?思考题二:SOR(超松驰)迭代法松驰因子对收敛性及速度的影响试用 SOR(超松驰)迭代法求解下列方程组:取 x(0)=(1,1,1)二名=10,选择松驰因子切=0.8,0.9,1,1.1,1.2 等,试看对算法收敛性的影响,并找出所选用
11、的松驰因子的最佳者。要求编制矩阵迭代求解的函数文件。1 丫%)5、01x2二-79产117,0.5Ix21Ax300.5工50.5X1实验实验3.2 方程组性态讨论(1)求Ax=b 的解向量,其中:结合上述结果,讨论两个方程组的性态实验 3.2 大型稀疏方程组的数值解法设 n阶方阵:B 为 A 的各元素之和,显然 Ax=b 的解为 x=(1,1,.,1)T,用下面三种方法对于阶数 n=100,200,,500,误差旧艮为名=10”,10,.,10的各种组合求解,分析收敛速度(1)选取列主元 Gauss 消元法;(2)Jacobi 迭代法(3)Gauss-seidelt 代法算法的改进:由于是稀
12、疏矩阵,请考虑改进矩阵的存储方式,减少存储空间的使用来提高计算效率。也就是用稀疏存储方式。(2)(3)(4)(5)130004/106220003/106910002/106,120003/106求系数矩阵 A 的条件数;将 a33 改为3/106,b3 改为4/106,求解向量X;P=diag(1,10,106),求解PAx=Pb,并求系数矩阵 PA 的条件数;对 PA 中的 a33 和 Pb 中的 0 给以10的扰动,求解向量X X实验四解线性方程组的直接方法实验 4(主元的选取与算法的稳定性)问题提出:Gauss 消去法是我们在线性代数中已经熟悉的。但由于计算机的数值运算是在一个有限的浮
13、点数集合上进行的,如何才能确保 Gauss 消去法作为数值算法的稳定性呢?Gauss 消去法从理论算法到数值算法,其关键是主元的选择。主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。实验内容:考虑线性方程组Ax=b,ARnn,bRn编制一个能自动选取主元,又能手动选取主元的求解线性方程组的 Gauss消去过程取 n=10 计算矩阵的条件数。让程序自动选取主元,结果如何?(2)现选择程序中手动选取主元的功能。每步消去过程总选取按模最小或按模尽可能小的元素作为主元, 观察并记录计算结果。 若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。(3)取矩阵阶数 n
14、=20 或者更大, 重复上述实验过程, 观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。(4)将上述矩阵 A 中的主元改为 0.00006 再重新作一次数值实验看看。(5)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。重复上述实验,观察记录并分析实验结果。相关 MATLAB 函数提示:zeros(m,n)生成 m 行,n 列的零矩阵ones(m,n)生成 m 行,n 列的元素全为 1 的矩阵eye(n)生成 n 阶单位矩阵rand(m,n)生成 m 行,n 列(0,1)上均匀分布的随机矩阵diag(x)返回由向量 x 的元素构成的对角矩阵实验要求:61861(1)取矩阵 A=二I861I86715b=:,则万程有解 x=(1,1,,1)T154一tril(A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年紫外激光传输光纤合作协议书
- 2025年医疗仪器设备制造项目发展计划
- 教育与商业的融合以大数据分析支持学生个性化发展
- 家庭教育心理学塑造孩子健康人格的技巧
- 2025届安徽省 马鞍山中加双语学校高二物理第二学期期末监测模拟试题含解析
- 教育技术与家长参与的个性化学习模式研究
- 智慧医疗的AI助手智能辅导系统的应用与挑战
- 企业人才培养中的信息技术应用分析
- 大数据在提升学生综合素质评价中的应用
- 2025届陕西省旬阳中学物理高二下期末检测试题含解析
- 抖音技巧培训课件
- 职业规划乐高老师课件
- 2025至2030中国体育行业市场发展分析及前景趋势与投资机会报告
- 建设工程广联达算量标准化要求(内部标准)
- 路灯安装考试试题及答案
- 赤峰市翁牛特旗招聘社区工作者笔试真题2024
- 线上游戏账号及虚拟物品交易合同
- 2025至2030全球及中国家用湿巾行业发展趋势分析与未来投资战略咨询研究报告
- 市场监管培训
- 2025至2030中国电镀锌钢行业发展趋势分析与未来投资战略咨询研究报告
- 山西省2025年中考语文真题(含答案)
评论
0/150
提交评论