幂法求多项式方程的模最大根matlab实现要求:利用matlab编写通用子程序,利用幂法求多项式方程的解:f(x)xnan1xn1a1xa00思想:1.第一要将多项式转变为矩阵形式。经过老师上课讲的内容。将上述多项式转变为为如家格式的矩阵:0-a01-a201-an1此矩阵的特色值,就是上述多项式的解。2.幂法的思想就不多介绍了,书上讲的很详细,主要运用书上6.2.6的迭代MATCH_
word
word文档格式规范word作业纸小票打印word模板word简历模板免费word简历
_1714302606728_0:ykAuk1,km(jk),yk的模最大重量ukyk/k,实验代码:详见附录1实验结果:(代码详见附录)(i)x3x25x30解:其中m是模最大特色值,x是m对应的特色向量,s是迭代次数15。精度为1e-5(ii)x33x10结果:其中:m是模最大特色值(多项式模最大根),x是m对应的特色向量,s是迭代次数为57,精度为1e-5.iii)x8101x7208.01x610891.01x59802.08x479108.9x399902x2790x10000结果:其中:m是模最大特色值(多项式模最大根)次,精度为1e-10.,x是m对应的特色向量,s是迭代次数12结论:幂法求多项式模最大根的收效还是很不错的,迭代次数也不多,收敛比较快。附录1幂法:function[m,x,s]=powermethod(n,a,eps)%A转变后的矩阵%x0迭代初向量%l模最大特色值%n为最高次幂A=zeros(n);M=500000;%v为主特色向量%迭代步数限制l=0;fori=1:nA(i,n)=-a(i);endfori=2:nforj=1:n-1ifi-j==1A(i,j)=1;endendends=0;n=max(size(A));u=ones(n,1);y=ones(n,1);%初始化,初始值是多少不重要beta1=0;eta=norm(u,2);y=u./eta;u=A*y;beta2=y'*u;whiles<=Mifabs((beta2-beta1)/beta1)>epsbeta1=beta2;eta=norm(u,2);y=u./eta;u=A*y;beta2=y'*u;ends=s+1;if(abs((beta2-beta1)/beta1)<=eps)break;endendifs<=Mm=beta2;x=y;elsem=beta2;x=y;end