资源描述:
《数值分析上机作业1-1》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数值计算方法上机题目11、实验1.病态问题实验目的:算法有“优”与“劣”之分,问题也有“好”和“坏”之别。所谓坏问题就是问题本身的解对数据变化的比较敏感,反之属于好问题。希望读者通过本实验对此有一个初步的体会。数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。问题提出:考虑一个高次的代数多项式(E1-1)显然该多项式的全部根为l,2,…,20,共计20个,且每个根都是单重的(也称为简单的)。现考虑该多项式方程的一个扰动
2、(E1-2)其中是一个非常小的数。这相当于是对(E1-1)中的系数作一个小的扰动。我们希望比较(E1-1)和(E1-2)根的差别,从而分析方程(E1-1)的解对扰动的敏感性。实验内容:为了实现方便,我们先介绍两个Matlab函数:“roots”和“poly”,输入函数u=roots(a)其中若变量存储维的向量,则该函数的输出为一个维的向量。设a的元素依次为,则输出u的各分量是多项式方程的全部根,而函数b=poly(v)的输出b是一个n+1维变量,它是以n维变量v的各分量为根的多项式的系数。可见“roots”和“Poly”是两个互逆的运算函数.ve=zeros(1,21);ve(
3、2)=ess;roots(poly(1:20))+ve)上述简单的Matlab程序便得到(E1-2)的全部根,程序中的“ess”即是(E1-2)中的。实验要求:(1)选择充分小的ess,反复进行上述实验,记录结果的变化并分析它们。如果扰动项的系数很小,我们自然感觉(E1-1)和(E1-2)的解应当相差很小。计算中你有什么出乎意料的发现?表明有些解关于如此的扰动敏感性如何?(2)将方程(E1-2)中的扰动项改成或其他形式,实验中又有怎样的现象出现?9实验步骤:(1)程序functiont_charpt1_1clcresult=inputdlg({'请输入扰动项:在[020]之间的
4、整数:'},'charpt1_1',1,{'19'});Numb=str2num(char(result));if((Numb>20)
5、(Numb<0))errordlg('请输入正确的扰动项:[020]之间的整数!');return;endresult=inputdlg({'请输入(01)之间的扰动常数:'},'charpt1_1',1,{'0.00001'});ess=str2num(char(result));ve=zeros(1,21);ve(21-Numb)=ess;root=roots(poly(1:20)+ve);x0=real(root);y0=imag(roo
6、t);plot(x0',y0','*');disp(['对扰动项',num2str(Numb),'加扰动',num2str(ess),'得到的全部根为:']);disp(num2str(root));二、实验结果分析ess分别为1e-6,1e-8.1e-10,1e-12.对扰动项19加扰动1e-006得到的全部根为:21.3025+1.56717i21.3025-1.56717i18.5028+3.6004i18.5028-3.6004i15.1651+3.76125i15.1651-3.76125i12.4866+2.88278i12.4866-2.88278i10.5225
7、+1.71959i10.5225-1.71959i9.04485+0.594589i9.04485-0.594589i7.9489+0i7.00247+0i5.99995+0i5+0i4+0i3+0i2+0i1+0i对扰动项19加扰动1e-010得到的全部根为:19.9953+0i19.0323+0i17.8696+0i17.2186+0i15.4988+0.0211828i15.4988-0.0211828i13.7707+0i13.1598+0i11.9343+0i11.029+0i9.99073+0i9.00247+0i7.99952+0i7.00007+0i5.9999
8、9+0i5+0i4+0i3+0i2+0i1+0iess分别为1e-6,1e-8.1e-10,1e-12的图像如下:9从实验的图形中可以看出,当ess充分小时,方程E.1.1和方程E.1.2的解相差很小,当ess逐渐增大时,方程的解就出现了病态解,这些解都呈现复共轭性质。(2)将扰动项加到x18上后,ess=1e-009时方程的解都比较准确,没有出现复共轭现象。ess=1e-008时误差与x19(ess=1e-009)时相当,即扰动加到x18上比加到x19小一个数量级。对x8的扰动ess=10