作业一:误差 - 实验
1.3 病态问题
实验目的:算法有 “优” 与 “劣” 之分,问题也有 “好” 与 “坏” 之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。
问题提出:考虑一个高次的代数多项式
显然,该多项式的全部根为
共计 20 个,且每个根都是单重的。现考虑该多项式的一个扰动 其中
是一个非常小的数。这相当于是对原多项式中 的系数作一个小的扰动。我们希望比较新多项式 和原多项式 的根的差别,从而分析原方程 的解对扰动的敏感性。
(1)
发现:如果使用实际解与预期解之差的模作为偏差标准,发现随着解数值的增大,偏差非线性增长。数值越大的解的相对偏差显著大于数值小的解。
例如
(2)
发现:随着扰动项的次数变低,解中偏差峰值所对应的解随之变小。
附:代码
matlab
ess = 1e-9
ve = zeros(1,21)
ve(2) = ess
results = roots(poly(1:20)+ve)