数 值 分 析 实 验 报 告 0 姓名:袁义平 学号:631122020223 班级:信息与计算科学二班 实验一 误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1()()2 0()2)(1()(2 01kkxxxxxp 显然该多项式的全部根为 1 ,2 ,…,2 0 共计2 0 个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0)(1 9 xxp 其中是一个非常小的数。这相当于是对(1 .1 )中1 9x 的系数作一个小的扰动。我们希望比较(1 .1 )和(1 .2 )根的差别,从而分析方程(1 .1 )的解对扰动的敏感性。 数 值 分 析 实 验 报 告 1 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots”和“poly ”。 roots(a)u 其中若变量a 存储 n+1 维的向量,则该函数的输出 u 为一个n 维的向量。设 a 的元素依次为121,,,naaa,则输出 u 的各分量是多项式方程 01121nnnnaxaxaxa 的全部根;而函数 poly (v )b 的输出 b 是一个n+1 维变量,它是以 n 维变量 v 的各分量为根的多项式的系数。可见“roots”和“poly ”是两个互逆的运算函数。 ;000000001.0ess );21,1(zerosve ;)2(essve ))20:1((vepolyroots 上述简单的 Matlab 程序便得到(1.2)的全部根,程序中的“ess”即是(1.2)中的。 实验要求: (1) 选择充分小的 ess,反复进行上述实验,记录结果的变化并分析它们。如果扰动项的系数很小,我们自然感觉(1.1)和(1.2)的解应当相差很小。计算中你有什么出乎意料的发现?表明有些解关于如此的扰动敏感性如何? (2) 将方程(1.2)中的扰动项改成18x或其它形式,实验中又数 值 分 析 实 验 报 告 2 有怎样的现象出现? (3) (选作部分)请从理论上分析产生这一问题的根源。注意我们可以将方程(1.2)写成展开的形式, )3.1(0),(1920xxxp 同时...