为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

[汇编]幂法求矩阵最大特征值

2017-12-07 13页 doc 42KB 21阅读

用户头像

is_633423

暂无简介

举报
[汇编]幂法求矩阵最大特征值[汇编]幂法求矩阵最大特征值 幂法求矩阵最大特征值 摘要 在物理、力学和工程技术中的很多问题在数学上都归结为求矩阵特征值的问题,而在某些工程、物理问题中,通常只需要求出矩阵的最大的特征值(即主特征值)和相应的特征向量,对于解这种特征值问题,运用幂法则可以有效的解决这个问题。 幂法是一种计算实矩阵A的最大特征值的一种迭代法,它最大的优点是方法简单。对于稀疏矩阵较合适, 但有时收敛速度很慢。 用java来编写算法。这个程序主要分成了三个大部分:第一部分为将矩阵转化为线性方程组;第二部分为求特征向量的极大值;第三部分为求幂法...
[汇编]幂法求矩阵最大特征值
[汇编]幂法求矩阵最大特征值 幂法求矩阵最大特征值 摘要 在物理、力学和工程技术中的很多问在数学上都归结为求矩阵特征值的问题,而在某些工程、物理问题中,通常只需要求出矩阵的最大的特征值(即主特征值)和相应的特征向量,对于解这种特征值问题,运用幂法则可以有效的解决这个问题。 幂法是一种计算实矩阵A的最大特征值的一种迭代法,它最大的优点是方法简单。对于稀疏矩阵较合适, 但有时收敛速度很慢。 用java来编写算法。这个程序主要分成了三个大部分:第一部分为将矩阵转化为线性方程组;第二部分为求特征向量的极大值;第三部分为求幂法函数块。其基本为幂法函数块通过调用将矩阵转化为线性方程组的方法,再经过一系列的验证和迭代得到结果。 关键词:幂法;矩阵最大特征值;java;迭代 POWER METHOD TO CALCULATE THE MAXIMUM EIGENVALUE MATRIX ABSTRACT In physics, mechanics and engineering technology of a lot of problems in math boil down to matrix eigenvalue problem, and in some engineering, physical problems, usually only the largest eigenvalue of the matrix (i.e., the main characteristics of the value) and the corresponding eigenvectors, the eigenvalue problem for solution, using the power law can effectively solve the problem. Power method is A kind of computing the largest eigenvalue of real matrix A of an iterative method, its biggest advantage is simple.For sparse matrix is right, but sometimes very slow convergence speed. Using Java to write algorithms.This program is mainly divided into three most: the first part for matrix can be converted to linear equations;The second part is the eigenvector of the maximum;The third part is the exponentiation method of function block.Its basic process as a power law function block by calling the method of matrix can be converted to linear equations, then after a series of validation and iteration to get the results. Key words: Power method; Matrix eigenvalue; Java; The iteration 目 录 1 幂法…………………..…………………………...............…….………………………….1 1.1 幂法基本思想……………..…….…………….………………………………………1 1.2规范化………………....…………………….....…………………………………2 2 概要………………….………………..…...…….............................3 2.1 设计背景………………..…………………………………………………………. .3 2.2 运行流程 ………....................….....................………………………………………3 32.3运行环境…………..................................………….……………………….. 3 程序详细设计 ………….......................….....…….………………..………....4 3.1 第一部分:矩阵转化为线性方程组……..………………………………………. .4 3.2 第二部分:特征向量的极大值...…………………….....…...…………………….4 3.3 第三部分:求幂法函数块............….....…………...…......…………………………5 4 运行过程及结果 ……………………....................................…………………….…........6 4.1 运行过程.........................................................………………………………………. .6 4.2 运行结果………….......……………...................……………...……………………...6 4.3 结果………..............................................………………….…………………….6 5 心得体会 ……………………………………..…………………………………………...7 参考文献……………………………………….....………………………………….……..8 附录:源程序…………………………………….…………………………….…………….....9 1 幂法 设,,„,,,„,A有n个线性相关的特征向量vvv,对应的特征值 1212nn ,满足 n | | > | | „ | | 12n 1.1 基本思想 nn(0)(0)因为{v,v,„,v}为C的一组基,所以任给x 0, —— 线性示x,av12n,ii,1i 所以有 nn(0)kkkAx,A(av),aAv,,iiii,1,1ii nn,kkki,,,av,[av,()av],,111iikii,,1,2ii1 ,(k)(0)ki,1若a 0,则因知,当k充分大时 Ax av = cv 属 的特111111,1 征向量,另一方面,记max(x) = x,其中|x| = ||x||,则当k充分大时,ii kkk(0),,max(av)max(av)max(Ax)111111,,,, 1k,1k,1k,1(0)max(Ax)max(av)max(av),,111111 若a = 0,则因舍入误差的影响,会有某次迭代向量在v方向上的分量不为0,迭11代下去可求得 及对应特征向量的近似值。 1 1.2 规范化 kk在实际计算中,若| | > 1则| a| ,若| | < 1则| a| 0都将停机。111111 须采用“规范化”的方法 (k),x(k)y,,(k), k = 0,1,2,… xmax(),(k,1)(k),xAy,, v,(k)1limy,特征向量,(0)k,,max(v)定理3.2-1 任给初始向量有, x,01,k(),limmax(x),,特征值1k,,, 证明: (k)(k,1)xAy(k)y,,(k)(k,1)max(x)max(Ay) (k,1)xAk(0)(k,1)Axmax(x) ?,,,(k,1)k(0)xmax(Ax)max(A)(k,1)max(x) n,kki,[av,a()v],111ii(3.2,2),i,21,n,,,kki,max[ava()v],,,,111ii,i,2,1, n,ki[ava()v],,11iik,,,avv2i,1111,,, nmax(av)max(v),,,111kimax[ava()v],,,,11ii,2i,1,, 而 kk,()(1)max(x),max(Ay) k,,vmax(Av)11,max(A), max(v)max(v)11 ,max(v)1,,,1max(v)1 注:若的特征值不满足条件(3.2.1),幂法收敛性的分析较复杂,但若 = = „ A12 = 且| | > | | „ | |则定理结论仍成立。 r1 r +1n此时不同初始向量的迭代向量序列一般趋向于 的不同特征向量。 1 2 概要设计 2.1 设计背景 用java程序来实现幂法求矩阵最大特征值。 2.2 运行流程 本程序分为了几大部分,通过方法间的相互调用,达到求解目的: 首先matrixx方法的作用是将矩阵A与向量X相乘,结果存储在Y中,即将方程组呈现出来,slove方法求出各未知数的最大值,程序的主体方法mifa通过do while 循环中调用matrixx方法实现幂法函数。 2.3 运行环境 Windows 7 2009 JDK 6.0 3 程序详细设计 首先在桌面里新建文件夹,并运行程序J++ 6.0;令一维矩阵u = {3,4,5}; 双精度浮点型初值为 a = 1.0,b = 2.0;整型变量方程组的阶数 n=3;双精度浮点型方程组系数矩阵为 A = {{7,3,-2},{3,4,1},{-2,-1,3}}; 3.1 第一部分:矩阵转化为线性方程组 将二维矩阵A,一维矩阵x,y以及阶数n作为它的形参,通过for循环将Ax相乘得到的结果存储在Y中。 其执行程序如下: public void matrixx(double[][] A,double[] x,double[] y,int n){ for(int i=0;ix[i+1]?x[i]:x[i+1]; } return max; } 3.3 第三部分:求幂法函数块 这个方法有五个形参,二维矩阵A,一维矩阵u,双精度浮点型初值a,b矩阵的 阶数n。 该方法的主体部分在do while中,通过循环迭代matrixx方法和solve方法,解 出矩阵的特征值并且比较出最大特征值。通过for循环列出关于该矩阵的线性方程组的 所有特征向量。 其执行程序如下: public void mifa(double[][] A,double[] u,double a,double b,int n){ double c = 0.0; double c1 = 0.0; int count = 0; double[] temp={0,0,0}; do{ double[] u1 = u; matrixx(A,u1,u,n); c = slove(u,n); c1 = c; guifanhua(u,n); printfcount(count,u,n); count++; for(int i =0;ia||Math.abs(c1-c)>b); System.out.println("最大特征值为:"+c); System.out.println("特征向量为:"); for(int i=0;ix[i+1]?x[i]:x[i+1]; } return max; } //规范化函数 public void guifanhua(double[] x,int n){ double temp = slove(x,n); for(int i=0;ia||Math.abs(c1-c)>b); System.out.println("最大特征值为:"+c); System.out.println("特征向量为:"); for(int i=0;i
/
本文档为【[汇编]幂法求矩阵最大特征值】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索