数值计算方法上机题目1 1、实验 1
病态问题1、实验 1
病态问题实验目的 :算法有“优”与“劣”之分,问题也有“好”和“坏”之别
所谓坏问题就是问题本身的解对数据变化的比较敏感,反之属于好问题
希望读者通过本实验对此有一个初步的体会
数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题
病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)
问题提出 :考虑一个高次的代数多项式201)()20)
(2)(1()(kkxxxxxp(E1-1)显然该多项式的全部根为l,2,⋯, 20,共计 20 个,且每个根都是单重的(也称为简单的)
现考虑该多项式方程的一个扰动0)(19xxp(E1-2) 其中是一个非常小的数
这相当于是对(E1-1)中19x的系数作一个小的扰动
我们希望比较( E1-1)和( E1-2)根的差别,从而分析方程(E1-1)的解对扰动的敏感性
实验内容 :为了实现方便,我们先介绍两个Matlab 函数:“roots”和“ poly”,输入函数u=roots(a)其中若变量 a 存储1n维的向量,则该函数的输出u 为一个 n 维的向量
设a 的元素依次为121,
,,naaa,则输出 u 的各分量是多项式方程0
1121nnnnaxaxaxa的全部根,而函数b=poly(v) 的输出 b 是一个 n+1 维变量,它是以 n 维变量 v 的各分量为根的多项式的系数
可见“roots”和“ Poly”是两个互逆的运算函数
ve=zeros(1,21); ve(2)=ess; roots(poly(1:20))+ve) 上述简单的Matlab 程序便得到 (E1-2)的全部根, 程序中的 “ess”即是(E1-2)中的
实验要求 :(1)选择充