数值分析中的病态问题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验1.1病态问题实验目的:算法有“优”和“劣”之分,问题也有“好”和“坏”之别,对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感,反正属于好问题。问题提出:考虑一个高次的代数多项式∏=−=−⋅⋅⋅−−=201)()20()2)(1()(kkxxxxxp显然该多项式的全部根为1,2,……,20,共计20个,且每个根都是单重的。现考虑该多项式的一个扰动0)(19=+xxpε,其中,ε是一个非常小的数,这相当于是对方程中的x19的系数做一个小的扰动,比较两个方程根的差别,从而分析方程的解对扰动的敏感性。利用所给的函数roots和poly,写的代码如下运行代码,输入扰动项19和扰动系数0.000001得到其散点图如下:由上图可以发现,对𝑋𝑋19这个项数加扰动系数0.000001,对10以上的根出现了明显的偏差,原来的根应该是1-20,现在10以上的根变成多对共轭的复数对。而对10以下的根则没有多大的影响。为了探索相同扰动系数对不同的多项式项数的影响,修改代码如下:得到如下的图:在上图,可以发现,对多项式不同的项数加相同的扰动系数,所得到的根的病态分布是完全不一样的。总的来说,对低阶的多项式系数加扰动比对高阶多项式系数加扰动所带来的根的病态影响要小。放大之后看x^17-x^20的项数的图如下:在这图中可以看到,随着多项式项数的增加,这个病态根的分布在10以上的根部分明显地向虚部扩张,生成共轭的复数对。再次看下对加以不同的扰动系数对根的影响,以对𝑥𝑥19为例,加以不同的扰动系数如下图示:可以看出,对于不同的扰动系数,扰动系数越大,病态根偏离原值越明显。附:主要程序代码result=inputdlg({'请输入扰动项:在[0,20]之间的整数:','请输入扰动扰动常数(0,1)之间:'},'charpt1_1',2,{'',''});Numb=str2num(char(result(1)));ess=str2num(char(result(2)));ve=zeros(1,21);ve(21-Numb)=ess;root=roots(poly(1:20)+ve);disp(['对扰动项',num2str(Numb),'加扰动',num2str(ess),'得到的全部根为:']);disp(num2str(root));root=flip(root);root=reshape(root,1,20);rootr=real(root);rooti=imag(root);scatter(rootr,rooti)

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功