- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
数值计算方法上机题目1
1、实验1. 病态问题实验目的:
算法有“优”与“劣”之分,问题也有“好”和“坏”之别。所谓坏问题就是问题本身的解对数据变化的比较敏感,反之属于好问题。希望读者通过本实验对此有一个初步的体会。
数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。
问题提出:
考虑一个高次的代数多项式
p(x)?(x?1)(x?2)...(x?20)??20
k?1
(x?k) (E1-1)
显然该多项式的全部根为l,2,…,20,共计20个,且每个根都是单重的(也称为简单的)。现考虑该多项式方程的一个扰动
p(x)??x19?0 (E1-2)
其中?是一个非常小的数。这相当于是对(E1-1)中x19的系数作一个小的扰动。我们希望比较(E1-1)和(E1-2)根的差别,从而分析方程(E1-1)的解对扰动的敏感性。
实验内容:
为了实现方便,我们先介绍两个Matlab函数:“roots”和“poly”,输入函数
u = roots ( a )其中若变量a存储n?1维的向量,则该函数的输出u为一个n维的向量。设a的元素依次
为a,a
1 2
,...,a
n?1
,则输出u的各分量是多项式方程
axn?axn?1?...ax?a ?0
1 2 n n?1
的全部根,而函数
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)中的?。
实验要求:
选择充分小的ess,反复进行上述实验,记录结果的变化并分析它们。如果扰动项的系数?很小,我们自然感觉(E1-1)和(E1-2)的解应当相差很小。计算中你有什么出乎意料的发现?表明有些解关于如此的扰动敏感性如何?
将方程(E1-2)中的扰动项改成?x18或其他形式,实验中又有怎样的现象出现?
1
实验步骤:
程序
functiont_charpt1_1clc
result=inputdlg({请输入扰动项:在[020]之间的整数:},charpt
1_1,1,{19});
Numb=str2num(char(result));
if((Numb20)|(Numb0))errordlg(请输入正确的扰动项:[020]之间的整数!);return;end
result=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(root);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.56717i 21.3025-1.56717i 18.5028+3.6004i 18.5028-3.6004i
15.1651+3.76125i 15.1651-3.76125i 12.4866+2.88278i 12.4866-2.88278i
10.5225+1.71959i 10.5225-1.71959i 9.04485+0.594589i 9.04485-0.594589i 7.9489+0i
7.00247+0i 5.99995+0i 5+0i 4+0i 3+0i 2+0i 1+0i
对扰动项19加扰动1e-010得到的全部根为:
19.9953+0i 19.0323+0i 17.8696+0i 17.2186+0i
15.4988+0.0211828i 15.4988-0.0211828i 13.7707+0i 13.1598+0i
11.9343+0i 11.029+0i 9.99073+0i 9.00247+0i 7.99952+0
文档评论(0)