数值方法课程设计幂法反幂法计算矩阵特征值和特征向量-附Matlab程序

数值方法课程设计幂法反幂法计算矩阵特征值和特征向量-附Matlab程序
数值方法课程设计幂法反幂法计算矩阵特征值和特征向量-附Matlab程序

矩阵的特征值与特征向量的计算

摘要

物理,力学,工程技术中的很多问题在数学上都归结于求矩阵特征值的问题,例如振动问题(桥梁的振动,机械的振动,电磁振动等)、物理学中某些临界值的确定问题以及理论物理中的一些问题。矩阵特征值的计算在矩阵计算中是一个很重要的部分,本文使用幂法和反幂法分别求矩阵的按模最大,按模最小特征向量及对应的特征值。

幂法是一种计算矩阵主特征值的一种迭代法,它最大的优点是方法简单,对于稀疏矩阵比较合适,但有时收敛速度很慢。其基本思想是任取一个非零的初始向量。由所求矩阵构造一向量序列。再通过所构造的向量序列求出特征值和特征向量。

反幂法用来计算矩阵按模最小特征向量及其特征值,及计算对应于一个给定近似特征值的特征向量。本文中主要使用反幂法计算一个矩阵的按模最小特征向量及其对应的特征值。计算矩阵按模最小特征向量的基本思想是将其转化为求逆矩阵的按模最大特征向量。然后通过这个按模最大的特征向量反推出原矩阵的按模最小特征向量。

关键词:矩阵;特征值;特征向量;冥法;反冥法

THE CALCULATIONS OF EIGENV ALUE AND

EIGENVECTOR OF MATRIX

ABSTRACT

Physics, mechanics, engineering technology in a lot of problems in mathematics are attributed to matrix eigenvalue problem, such as vibration (vibration of the bridge, mechanical vibration, electromagnetic vibration, etc.) in physics, some critical values determine problems and theoretical physics in some of the problems. Matrix eigenvalue calculation is a very important part in matrix computation. In this paper, we use the power method and inverse power method to calculate the maximum of the matrix, according to the minimum characteristic vector and the corresponding characteristic value.

Power method is an iterative method to calculate the eigenvalues of a matrix. It has the advantage that the method is simple and suitable for sparse matrices, but sometimes the convergence rate is very slow. The basic idea is to take a non - zero initial vector. Construct a vector sequence from the matrix of the matrix. Then the eigenvalues and eigenvectors are obtained by using the constructed vector sequence.

The inverse power method is used to calculate the minimum feature vectors and their eigenvalues of the matrix, and to calculate the eigenvalues of the matrix. In this paper, we use the inverse power method to calculate the minimum eigenvalue of a matrix and its corresponding eigenvalues. The basic idea of calculating the minimum characteristic vector of a matrix is to transform it to the maximum characteristic vector of the modulus of the inverse matrix. Then, according to the model, the minimum feature vector of the original matrix is introduced.

Key words:Matrix;Eigenvalue;Eigenvector;Iteration methods;

目录

1 引言 (1)

2 相关定理。 (1)

3 符号说明 (2)

4 冥法及反冥法 (2)

4.1冥法 (3)

4.2反冥法 (8)

5QR算法 (14)

参考文献 (18)

附录 (19)

1引言

在本论文中,我们主要讨论矩阵的特征值和特征向量的计算,我们知道,有很多现实中的问题都可以用到矩阵特征值与特征向量计算的知识,比如,在物理、力学和工程技术方面有很多的应用,并且发挥着极其重要的作用.因为这些问题都可归结为求矩阵特征值的问题,具体到一些具体问题,如振动问题,物理中某些临界值的确定问题以及一些理论物理中的问题.

在本论文中,我们主要介绍求矩阵的特征值与特征向量的一些原理和方法,原理涉及高得代数中矩阵的相关定理,方法主要介绍冥法及反冥法并利用MATLAB 算法的程序来求解相关问题,加以验证.

2相关定理

定理2.1 如果i λ),...,2,1(n i =是矩阵A 的特征值,则有

trA a

n

i ii

n i i ==∑∑==1

1

1

λo

.det 221n A λλλ???=o

定理2.2 设A 与B 为相似矩阵)(1AT T B -=,则

o 1 A 与B 有相同的特征值;

o 2若x 是B 的一个特征向量,则Tx 是A 的特征向量

定理2.3 设n n ij a A ?=)(,则A 的每一个特征值必属于下述某个圆盘之中:

).,...,2,1(1n i a a i

j j ij ij =≤-∑≠=λ

定义2.1 设A是n阶是对称矩阵,对于任意非零向量x,称

x

x

x

Ax

x

R

,

)

,

(

)

(=为对应于向量x 的Rayleigh商.

定理2.4设n n R

A?

∈为对称矩阵(其特征值次序记作

n

λ

λ

λ≥???≥

2

1

,对应的特征向量n

x

x

x???,

,

2

1

组成规范化正交组,即

ij

j

x

=

)

,

(),则

1

)

,

(

)

,

(

λ≤

x

x

x

Ax

n

o(对于任何非零向量x);

;

)

,

(

)

,

(

max

2

1x

x

x

Ax

o

x

R

x n

=

λo

.

)

,

(

)

,

(

min

3

x

x

x

Ax

x

R

x

n n

=

λo

3 符号说明

A:n阶矩阵

B:n阶矩阵

I:n阶单位阵

i

λ)

,...,

2,1

(n

i=:矩阵特征值

x:实数域上的n维向量

)

,1,0

(???

???

=n

i

v

i

:实数域上的n维向量

)

,

,

,1,0

(???

???

=n

k

u

k

:实属上的规范化向量

4冥法及反冥法

4.1 冥法

幂法是一种计算矩阵A n n R?

∈的主特征值的一种迭代法,它最大优点是方法简单,

适合于计算大型稀疏矩阵的主特征值.

设n n

R

aij

A?

=)

(,其特征值为

i

λ,对应特征向量为),

,

,1

(n

i

x

i

=即

i

i

i

x

Axλ

=)

,

,1

(n

i

=

且}

,

{

,n

i

x

x 线性无关.设A特征值满足:(即

1

λ为强占优)

|

|

|

|

|

|

2

1n

λ

λ

λ≥

> (4.1.1)

幂法的基本思想,是任取一个非零初始向量n

R

v∈

,由矩阵A的乘幂构造一向量序列

?

?

?

?

?

=

=

=

=

=

+

+0

1

1

2

1

2

1

v

A

Av

v

v

A

Av

v

Av

v

k

k

k

(4.1.2)

称}

{

k

v为迭代向量.

下面来分折关系

及}

{

1

1k

v

x

λ.

由设}

,

,

{

1n

x

x 为n R中一个基本,于是,0

v有展开式∑

=

n

i

i

i

x

a

v

1

(且设0

1

?)

且有

i

k

i

n

i

i

K

k

k

x

v

A

Av

α

=

-

=

=

=

1

1

)

)

(

)

(

(

1

2

2

2

1

1

1

1

n

k

n

n

k

k

k

x

x

x

v

λ

λ

α

λ

λ

α

α

λ+

+

+

=

)

(

1

1

1k

k x

λ+

由假设(4.1.1)式,则

)

,

,2

(0

)

(

1

n

i

im i

k

=

=

I

→λ

λ

lim=

ε

(4.1.3)

且收敛速度由比值|

|

1

2

λ

λ

=

r确定.且有

1

1

1

lim x

v

k

k

k

α

λ

=

这说明,当k充分大时,有

1

1

1

/x

v k

k

α

λ≈,或k

k

v

1

/λ越来越接近特征向量

1

1

x

α.

下面考虑主特征值

1

λ的计算.

i

k

v)

(表示

k

v的第i个分量,考虑相邻迭代向量的分量的比值.

)0

)

(

(,

)

(

)

(

)

(

)

(

)

(

)

(

1

1

1

1

1

1

1≠

?

?

?

?

?

?

+

+

=+

+

i

k

i

k

i

i

k

i

i

k

i

k v

x

x

v

v

ε

α

ε

α

λ

从而是

1

1

1

)

(

)

(

limλ

=

+

i

k

k

k v

v (4.1.5)

说明相邻迭代向量分量的比值收敛到主特征

1

λ,且收敛速度由比值|

|

1

2

λ

λ

=

r来度量,r越小收敛越快,但r越小收敛越快,但1

|

|

1

2<

=

λ

λ

r,而接近于1时,收敛可能很慢.

定理4.1 (1)设n n

R

A?

∈n个线性无关的特征向量:

(2)设A特征值满足

|

|

|

||

|

2

1n

λ

λ

λ≥

>

(3)幂法:)0

(0

1

≠α

v

1-

=

k

k

Av

v

,2,1

(=

k)

则(1)

1

1

1

)

(

)

(

lim x

v

v

i

k

i

k

k

α

=

+

(2)

1

1

)

(

)

(

limλ

=

+

i

k

i

k

k v

v

如果A主特征值为实的重根,即有

|

|

|

||

|

|

||

|

1

2

1n

r

r

λ

λ

λ

λ

λ≥

>

=

=

=

+

(4.1.4)

又设A有n个线性无关的特征向量,

,

,2

,1

,

n

x

x

x 其中

)

,

,1

(

),

,

,1

(

1

n

r

i

x

Ax

r

i

x

Ax

i

i

i

i

i

+

=

=

=

λ

对于任意初始向量

)

,

,

(

1

不全为零

r

i

n

i

i

i

x

α

α

=

=

则由幂法有

??

?

?

?

?

+

=

=∑∑

=+

=

r

i

n

r

i

i

k

i

i

i

i

i

k

K

k

x

x

v

A

v

11

1

)

(

λ

λ

α

α

λ

)

(

1

1k

i

r

i

i

k xε

α

λ+

=∑

=

且有

,

lim

1

1

i

r

i

i

k

k

k

x

v∑

=

λ

(设

r

α

α

,

1

不全为零)

)

(∞

→k

k

ε

由此,当k充分大时,k

k

v

1

/λ接近于与

1

λ对应的特征向量的某个线性组合.

应用幂法计算A的主特征值

1

λ及对应的特征向量时,如果

1

λ>1

(1

1

<

λ

或),迭代向量的各个不等于零的分量将随∞

k而趋于无究(或趋于零),这样电算时就可能溢出.为此,就南非要将迭代向量加以规范化.

设有非零向量

)

(

)

max(

2

归范化

v

v

u

v

v

u

v=

=

其中)

m a x(v表示向量v绝对值最大的元素,即如果有草药,

)

(

m a x

)

(

0i

v

i

v=则0

)

(

)

max(

i

v

v=

其中

i为所有绝对值最大的分量中最小指标.

显然有下面性性质:

设n r

v

t∈

,

为实数,则

n

i≤

≤1

在定理4.1条件下幂法可改进为:

任取初始向量)0

(0

1

v

u.

迭代:规范化:

1

Au

v=,

)

max(

1

1

1v

v

u=

)

max(

Av

Av

=

,

)

max(

2

1

2Av

v

A

Au

v=

=

)

max(

)

max(

2

2

2

2v

A

v

A

v

v

u

k

=

=

,

)

max(

1

1v

A

v

A

Au

v

k

k

k

k-

-

=

=

)

max(

)

max(

v

A

v

A

v

v

u

k

k

k

k

=

=

于是,由上式产生迭代向量序列}

{

k

v及规范化向量}

{

k

u

且改进幂法计算公式为:

设)0

(0

1

v

u

对于

,2,1

=

k

?

?

?

?

?

:

:

规范化

迭代

k

k

k

k

k

k

k

v

v

Au

v

μ

μ

μ

/

)

max(

1

=

=

=

-

(4.1.7)下面考查}

{

},

{

k

k

v

u与计算

1

1

x

λ的关系.

由∑

=

=

n

i

i

i

x

v

1

α

且有)

(

1

1

1

1

0k

k

n

i

i

k

i

i

k x

x

v

α

λ

λ

α+

=

=

(4.1.8)

其中)

(0

)

(

11

=∑

=

k

x

i

k

n

i

i

i

k

λ

λ

α

ε

(1)考查规范化向量序列:

由(4.1.7)及(4.1.8)式,则有

)

(

1

1

1k

k x

u

ε

α

λ+

=

(4.1.6)

)

(

)

max(

)

max(

1

1

1

1

1

1∞

+

+

=k

x

x

x

x

k

k当

ε

α

ε

α

(2)考查迭代向量序列:

))

(

max(

)

(

)

max(

1

1

1

1

1

1

1

1

1

-

-

-+

+

=

=

k

k

k

k

k

K

k x

x

v

A

v

A

v

ε

α

λ

ε

α

λ

)

max(

1

1

1

1

1

1

-

+

+

=

k

k

x

x

ε

α

ε

α

λ

)

(,

max(

)

max(

)

max(

1

1

1

1

1

1

1

+

+

=

=

-

k

x

x

v

k

k

k

k

λ

ε

α

ε

α

λ

μ

定理 (改进幂法)

(1)设n n

R

A?

∈有n个线性无关特征向量;

(2)设A特征值满足

n

λ

λ

λ≥

>

2

1

且)

,

,2,1

(n

i

x

Ax

i

i

i

=

(3)}

{

},

{

k

k

v

u由改进幂法得到((4.1.7)式),则有

(a)

)

max(

lim

1

1

x

x

u

k

k

=

(b)

1

)

max(

lim

limλ

μ=

=

k

k

k

k

v

且收敛速度由比值|

|

1

2

λ

λ

=

r

确定.

实现幂法,每迭代一次主要是计算一次矩阵乘向量)

(Au,可编一个子程序求矩阵按模最大特征值如下:

%这个函数用于使用幂法求矩阵特征向量和特征值

%A--矩阵,v--初始向量,e--精度

function [t,p]=pm(A,v,e)

u=v./max(abs(v));%

old = 0;%记录上一次迭代得到的特征值

while(1)

v=A*u;

u=v./max(abs(v));

if(abs(max(v)-old)

break;

于是,

old = max(v);

end

p = u;

t = max(v);

end

例1.为检验以上代码的正确性,我们使用以上代码计算以下矩阵的最大特征值和特征向量

?

?

?

?

?

?

?

?

?

?

=

1,3,4

5,1,2

3,3,1

A

结果为:

例2.利用你所编制的子程序求如下矩阵(从60到70阶)

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

-

-

-

-

-

-

=

2

1

1

2

1

1

2

1

1

2

A

按模最大、按模最小的特征值及对应特征向量。

解:代码见附录,运行得到的结果如下:

以上仅给出特征值的计算结果。特征向量见附录,这里给出70阶的特征向量: [0.58 -0.94 1.00 -0.81 0.54 -0.29 0.13 -0.05 0.01 -0.00 0.00 -0.00 0.00 -0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.00 0.00 -0.00 0.00 -0.00 0.01 -0.05 0.13 -0.29 0.54 -0.81 1.00 -0.94 0.58 ]

4.2 反冥法

(1) 反幂法可用来计算矩阵按模最小的特征值及对应的特征向量.

设n n R A ?∈为非厅异矩阵,A 特征值满足

021>≥≥≥n λλλ

对应特征向量n x x x ,,,11 为线性无关,则1-A 特征求值为

|

|1|

|1|1|21

n λλλ≤

≤≤

特征向量为.,,21n x x x

因此计算A 的按模最小的特征值n λ的部题就是计算1-A 按模最大的特征值部题. 对于1-A 应用幂法迭代(称为反幂法),可求矩阵1-A 的主特征值n λ/1.

反幂法迭代公式:

任取初始向量)0

(0

=

n

u

且,

=

k1,2,…

?

?

?

?

?

=

=

=

-

-

k

k

k

k

k

k

k

u

v

u

v

u

A

v

/

)

max(

1

1

μ(4.2.1)

其中迭代向量

k

v可通过解方程组求得:

如果n

n

n

R

A有

?

∈个线性无关特征向量且A特征值满足:

1

1

>

>

-n

n

λ

λ

λ

则由反幂法(2.11)构造的向量序列}

{

},

{

k

k

v

u满足

n

k

k

n

n

k

k

b

x

x

u

a

λ

μ

1

lim

)

(

)

max(

lim

)

(

=

=

且收敛速度由比值|

|

1-

=

n

n

r

λ

λ

确定.

(2)应用反幂法求一个的似特征值对应的特征向量.

设已知n n

R

A?

∈的特征值

j

λ的一个近似值

j

λ(通常是用其它方法得到),现要求对应

的特征向量

j

x(近似),在反幂法中也可用原点平移法来加速收敛.

如果1

)

(-

-pI

A存在,显然,特征值为

p

p

p

n

-

-

λ

λ

1

,

,

1

,

1

2

1

对应的特征向量

n

x

x

x,

,

,

2

1

.

1-

=

k

k

u

Av

现取=

p

j

λ(但不能取

j

λ),且设

j

λ与其它特征值是分离的,即

|

|p

j

-

λ《)

(|,

|i

j

p

i

-

λ

|

|

1

p

j

-

λ

》)

(,

|

1

j

i

p

i

-

λ

说明

p

j

-

λ

1

是1

)

(-

-pI

A的主特征值.

现对1

)

(-

-pI

A应用幂法得到反幂法计算公式:

取初始向量),0

(0

=

j

v

,

,2,1

=

k

?

?

?

?

?

=

=

-

=

-

-

k

k

k

k

k

k

k

u

v

u

v

u

pI

A

v

/

)

max(

)

(

1

1

μ(4.2.2)

与定理8证明类似,可得下述结果.

定理10 (1)设n n

R

A?

∈有n个线性无关特征向量即)

,

,1

(n

i

x

Ax

i

i

i

=

=λ.

(2)取=

p

j

λ(为A特征值

j

λ一个近似值),设1)

(-

-pI

A存在且

|

|p

j

-

λ《)

(|

|i

j

p

i

-

λ

则由反幂法迭代公式(2,12)构造向量序列}

{

},

{

k

k

v

u满足:

)

(

1

)

max(

)

(

)

(

)

max(

)

(

-

=

k

p

j

k

v

k

b

k

j

j

k x

x

u

a

λ

μ

j

k

μ

+

1

)

(∞

且收敛速度由比值

|

|

min

|

|

p

p

r

i

j

i

j

-

-

=

λ

λ

确定.

似且A 的特征值分离情况较好,一般r 很小,所以迭代过程收敛较快,同时改进特征值. 反幂法迭代公式中k v 是以通过解方程组

1)(-=-k k u v pI A

求得.为了节省计算量,可先将)(pI A -进行三角分解.

LU pI A P )(-

其中p 为置换阵,于是每次迭代求k v 相当于求解两个三角形方程组

??

?==-k

k k k y Uv pu Ly 1 可按下述方法取00u v =,即选0u 使

T Pu L Uv )1,,1(011 ==- 回代求解即求得1v . 反幂法计算公式: 1.分解计算

LU pI A P )(-,且保存U L ,及P 信息

2.反幂法迭代

(1)求T Uv )1,,1(1 =1v

)max(,/11111v v u ==μμ (2) ,2=k

1)1-=k k Pu Ly 求k

y

k k y Uv =求k v 2))max(k k v =μ 3)k k k v u μ/=

对于计算对称三对角阵,或计算Hessenberg 阵对应于一个给定的近似特征值的特征向量,反幂法是一个有效方法.

使用Matlab编写一个使用反幂法求矩阵最小特征值和特征向量的程序如下:function [s,y]=fpm(A,x0,eps) % s 为按模最小特征值,y是对应特征向量

k=1;

r=0; % r相当于0?

y=x0./max(abs(x0)); % 规范化初始向量

[L,U]=lu(A);

z=L\y;

x=U\z;

u=max(x);

s=1/u; % 按模最小为A-1按模最大的倒数.

if abs(u-r)

return

end

while abs(u-r)>eps % 终止条件.

k=k+1;

r=u;

y=x./max(abs(x));

z=L\y;

x=U\z;

u=max(x);

end

[m,index]=max(abs(x)); % 这两步保证取出来的按模最大特征值

s=1/x(index); % 是原值,而非其绝对值。

end

同样,取一个矩阵进行测试:

?

?

?

?

?

?

?

?

?

?

=

1,3,4

5,1,2

3,3,1

A

计算结果为:

例2.利用你所编制的子程序求如下矩阵(从60到70阶)

??

?

??

??

?????????------=2112112112

A 按模最小的特征值及对应特征向量。 代码见附录,程序结果如下图:

同样只给出70阶时的特征值,具体结果见附录

[0.04 0.09 0.13 0.18 0.22 0.26 0.30 0.35 0.39 0.43 0.47 0.51 0.54 0.58 0.62 0.65 0.68 0.72 0.75 0.77 0.80 0.83 0.85 0.87 0.89 0.91 0.93 0.95 0.96 0.97 0.98 0.99 0.99 1.00 1.00 1.00 1.00 0.99 0.99 0.98 0.97 0.96 0.95 0.93 0.91 0.89 0.87 0.85 0.83 0.80 0.77 0.75 0.72 0.68 0.65 0.62 0.58 0.54 0.51 0.47 0.43 0.39 0.35 0.30 0.26 0.22 0.18 0.13 0.09 0.04 ]

参考文献

[1] 姜启源,谢金星,叶俊编.数学模型(第三版)[M].北京:高等教育出版社,2005:

1-202.

[2] 王建卫,曲中水凌滨编著. MATLAB 7.X 程序设计[M]. 北京:中国水利水电出版社,2007:55-80.

[3] 李庆扬,王能超,易大义编著.数值分析(第四版)[M]. 武汉:华中科技大学出版社,2006:219-245.

附录

%这个函数用来生成老师要求记算的那个矩阵,n是指定阶数

function A=createMatrix(n)

A = zeros(n);%先全部初始化为0

for i=1:n

for j=1:n

if(i==j)

A(i,j)=2;%设置主对角线上的值为2

elseif(i==j-1 || i==j+1)%设置主对角线傍边的两条斜线上的的值为-1 A(i,j)=-1;

end

end

end

end

%这个函数用于使用幂法求矩阵特征向量和特征值

%A--矩阵,v--初始向量,e--精度

function [t,p]=pm(A,v,e)

u=v./max(abs(v));%

old = 0;%记录上一次迭代得到的特征值

while(1)

v=A*u;

u=v./max(abs(v));

if(abs(max(v)-old)

break;

end

old = max(v);

end

p = u;

t = max(v);

end

%这个程序用于求60-60阶矩阵的特征值和特征向量

clc

clear

e = 0.01;

for i=60:70

A = createMatrix(i);%生成要计算的矩阵

v = ones(i,1);%生成初始微量

[t,p] = pm(A,v,e);%计算

fprintf('%d阶特征值:%f\n',i,t);%输出特征值

%以下三句代码为输出特征值和特征微量

% fprintf('%d阶:%f [',i,t);

% fprintf('%.2f ',p);

% fprintf(']\n');

end

% 使用反幂法求矩阵按模最小特征值

function [s,y]=fpm(A,x0,eps) % s 为按模最小特征值,y是对应特征向量k=1;

r=0; % r相当于0?

y=x0./max(abs(x0)); % 规范化初始向量

[L,U]=lu(A);

z=L\y;

x=U\z;

u=max(x);

s=1/u; % 按模最小为A-1按模最大的倒数.

if abs(u-r)

return

end

while abs(u-r)>eps % 终止条件.

k=k+1;

r=u;

y=x./max(abs(x));

z=L\y;

x=U\z;

u=max(x);

end

[m,index]=max(abs(x)); % 这两步保证取出来的按模最大特征值

s=1/x(index); % 是原值,而非其绝对值。

end

%这个程序用于使用反幂法求60-60阶矩阵的特征值和特征向量

clc

clear

e = 0.01;

for i=60:70

A = createMatrix(i);

v = ones(i,1);

v(1) = 1;

[t,p] = fpm(A,v,e);

% fprintf('%d阶特征值:%f\n',i,t);

fprintf('%d阶:%f [',i,t);

幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量

数值计算解矩阵的按模最大最小特征值及对应的特征向量 —一 .幂法 1. 幕法简介: 当矩阵A 满足一定条件时,在工程中可用幕法计算其主特征值 (按模最大) 及其特征向量。矩阵A 需要满足的条件为: ⑴I 1 I I 2|n |- 0, i 为A 的特征值 (2)存在n 个线性无关的特征向量,设为 X i ,X 2,…,X n 1.1计算过程: n 对任意向量x (0),有x (0)八:-M —不全为0,则有 i 4 X (k 岀)=Ax (k)= = A k 岀乂。) n n A k 1 aq a 扌1 5 i =1 i =1 ■k 1 2 可见,当 1 — 1 越小时,收敛越快;且当k 充分大时,有 ? "1 2算法实现 ⑶.计算x Ay,… max(x); ⑷若| ?一十:;,输出-,y,否则,转(5) (5)若N ,置k 「k 1^ -,转3,否则输出失败信息,停机. 3 matlab 程序代码 (冲1 %叫 x (k 1) [x (k) k 二 u x (k) > (k+1) 1,对应的特征向量即是 x (1).输入矩阵A ,初始向量X ,误差限 最大迭代次数N (k) 0; y (k) max(abs(x (k ))

k=1; z=0; y=x0./max(abs(x0)); x=A*y; % z相当于■ %规范化初始向量%迭代格式 b=max(x); % b相当于: if abs(z-b)eps && k> y]=lpower (A, xO, eps, X)

幂法及反幂法

随机产生一对称矩阵,对不同的原点位移和初值(至少取3个)分别使用幂法求计算矩阵的主特征值及主特征向量,用反幂法求计算矩阵的按模最小特征值及特征向量。 要求 1)比较不同的原点位移和初值说明收敛性 2)给出迭代结果,生成DOC 文件。 3)程序清单,生成M 文件。 解答: >> A=rand(5) %随机产生5*5矩阵 求随机矩阵 A = 0.7094 0.1626 0.5853 0.6991 0.1493 0.7547 0.1190 0.2238 0.8909 0.2575 0.2760 0.4984 0.7513 0.9593 0.8407 0.6797 0.9597 0.2551 0.5472 0.2543 0.6551 0.3404 0.5060 0.1386 0.8143 >> B=A+A' %A 矩阵和A 的转置相加,得到随机对称矩阵B B = 1.4187 0.9173 0.8613 1.3788 0.8044 0.9173 0.2380 0.7222 1.8506 0.5979 0.8613 0.7222 1.5025 1.2144 1.3467 1.3788 1.8506 1.2144 1.0944 0.3929 0.8044 0.5979 1.3467 0.3929 1.6286 B=??? ???? ???? ?? ???6286.13929.03467.15979.08044.03929.00944.12144.18506.13788.13467.12144.15025.17222.08613.05979.08506.17222.02380.09173.08044.03788.18613.09173.04187.1

用QR算法求矩阵的特征值

一、实验名称:用QR 算法求矩阵的特征值 二、实验目的:1、通过实验进一步熟悉掌握求矩阵特征值的QR 方法及原理。 2、理解QR 方法的计算流程。 3、能够编程实现QR 方法。 三、实验内容:给定矩阵 ??? ? ? ??=111132126A , ?? ??? ?? ? ? ?=0100098 20 087630 7654465432H ,采用QR 方法计算A 和H 矩阵的全部特征值。 四、实验要求: (1) 根据QR 算法原理编写程序求矩阵A 及矩阵H 的全部特征值(要求误差<10 5 -)。 (2) 直接用MATLAB 的内部函数eig 求矩阵A 及矩阵H 的全部特征值,并与(1)的结果比较。 五、QR 方法计算矩阵特征值的程序: function [namda,time,data_na]=qr_tz(A,tol) if nargin==1; tol=1e-5; end wucha=1; time=0; while (wucha>tol)&(time<500) [q,r]=qr(A); A1=r*q; tz0=diag(A1); tz1=diag(A); wucha=norm(tz0-tz1); A=A1; time=time+1; data_na(time,:)=tz1; end namda=tz1; disp(‘特征值为’) namda disp(‘第一个特征在值’) time n1=length(data_na); n2=(1:n1)’; temp1=[n2,data_na]; subplot(2,2,1:2)

plot(date_na(:,1)) title(‘迭代次数为’) grid subplot(2,2,3) plot(data-na(:,2)) title(‘第二个特征值’)grid subplot(2,2,4) plot(data-na(:,3)) title(‘第三个特征值’) grid 六、实验结果: >> A=[6,2,1;2,3,1;1,1,1];[namda,time,data_na]=qr_tz(A,1e-5);特征值为 namda = 迭代次数为 time = 6 图 1

幂法求矩阵主特征值

!程序说明:幂法求矩阵主特征值 !日期:2010年11月30日 PROGRAM Matrix_EigenValue PARAMETER(N=3) REAL ARR(N,N) CALL INPUT(ARR,N) CALL MATEV(ARR,N) END PROGRAM SUBROUTINE INPUT(ARR,N) REAL ARR(N,N) OPEN(1,FILE='MAT.TXT') READ(1,*)((ARR(I,J),J=1,N),I=1,N) END SUBROUTINE SUBROUTINE MATEV(ARR,N) PARAMETER(EPS=1E-7) REAL :: ARR(N,N),X(N),X1(N),MAX=0 INTEGER :: K=0,P=0 X=RESHAPE((/1,1,1/),(/3/)) WRITE(1,*) ' 迭代次数 U(规范化向量) & & MAX(V)(主特征值)' DO WHILE(P/=N) WRITE(1,'(I6,A,F12.6,A,F12.6)') K,' (',X,' )',MAX P=0 MAX=0 DO I=1,N X1(I)=0 DO J=1,N X1(I)=X1(I)+ARR(I,J)*X(J) !迭代过程 ENDDO ENDDO DO I=1,N IF(ABS(X1(I))>ABS(MAX)) MAX=X1(I) !选取主特征值 ENDDO DO I=1,N IF(ABS(X(I)-X1(I)/MAX)

ENDDO K=K+1 ENDDO END SUBROUTINE 输出结果: 1 1 0.5 1 1 0.25 0.5 0.25 2 迭代次数 U(规范化向量) MAX(V)(主特征值) 0 ( 1.000000 1.000000 1.000000 ) 0.000000 1 ( 0.909091 0.81818 2 1.000000 ) 2.750000 2 ( 0.837607 0.743590 1.000000 ) 2.659091 3 ( 0.799016 0.703035 1.000000 ) 2.604701 4 ( 0.77741 5 0.680338 1.000000 ) 2.575267 5 ( 0.765108 0.66740 6 1.000000 ) 2.558792 6 ( 0.758025 0.659963 1.000000 ) 2.549406 7 ( 0.753925 0.655655 1.000000 ) 2.544003 8 ( 0.751544 0.653153 1.000000 ) 2.540876 9 ( 0.750158 0.651697 1.000000 ) 2.539060 10 ( 0.749351 0.650848 1.000000 ) 2.538003 11 ( 0.748880 0.650354 1.000000 ) 2.537387 12 ( 0.748606 0.650065 1.000000 ) 2.537028 13 ( 0.748445 0.649897 1.000000 ) 2.536819 14 ( 0.748352 0.649799 1.000000 ) 2.536697 15 ( 0.748298 0.649741 1.000000 ) 2.536626 16 ( 0.748266 0.649708 1.000000 ) 2.536584 17 ( 0.748247 0.649688 1.000000 ) 2.536560 18 ( 0.748236 0.649677 1.000000 ) 2.536546 19 ( 0.748230 0.649670 1.000000 ) 2.536537 20 ( 0.748226 0.649667 1.000000 ) 2.536533 21 ( 0.748224 0.649664 1.000000 ) 2.536530 22 ( 0.748223 0.649663 1.000000 ) 2.536528 23 ( 0.748222 0.649662 1.000000 ) 2.536527 24 ( 0.748222 0.649662 1.000000 ) 2.536527 25 ( 0.748222 0.649662 1.000000 ) 2.536526 26 ( 0.748221 0.649661 1.000000 ) 2.536526

幂法求矩阵A按模最大的特征值及其特征向量

数值分析 幂法求矩阵A按模最大的特征值及其 特征向量

幂法的主要思想 设 n n ij R a A ?∈=)( ,其特征值为i λ ,对应特征向量为),,,1(n i x i =即 i i i x Ax λ= ),,1(n i =,且 x 1,······,x n 线性无关。求矩阵A 的主特征值及对应的特征向量。 幂法的基本思想: 任取一个非零初始向量 v 0 ∈R n 且v 0≠0, 由矩阵A 的乘幂构造一向量序列: 称{ v k }为迭代向量, A 特征值中 λ1为强占优,即▕ λ1▕>▏λ2 ▏>······>▏λn ▏, {x 1,x 2,······,x n }线性无关,即{x 1,x 2,······,x n }为R n 中的一 个基,于是对任意的初始向量v 0 ∈R n 且 v 0≠0有展开式。 (v 0 用{x i } 的线性组合表示) (且设01≠α) 则 当k =2,3,… 时,v k = A v k-1 = A k v ? ?? 1Av v =0 212v A Av v ==01 1 v A Av v k k k ++==) ,,1,0(n k =∑==n i i i x v 1 α)(221101n n x x x A v A v ααα+++==n n x A x A x A ααα+++=2211n n n x x x λαλαλα+++=222111) (111 +≡x k αλk ε

其中 由假设▕ λ1▕>▏λ2 ▏>······>▏λn ▏,得 ,从而 即,0lim =∞→k k ε且收敛速度由比值||12λλ=r 确定。 所以有 说明,当k 充分大时,有1 11 x v k k αλ≈,或 k k v 1λ 越来越接近特征 向量 规范化幂法的算法 ①输入矩阵 A 、初始向量v (0),误差 eps ,实用中一般取 v (0)=(1,1,···,1)T ; ②k ←1; ③计算 v (k) ←Au (k-1); ④m k ←max{ v (k) },m k-1 ←{ v (k-1) }; ⑤u (k) ←v (k)/ m k ; ⑥如果▕ m k - m k-1▕<eps ,则显示特征值λ1←和对应的特征 向量x (1),终止; ⑦k=k+1,转③。 n k n n k k x x )()(1 2122λλαλλαε++=),,2(1||1 n i i =<λλ ),,,2(0)(lim 1n i k i k ==∞→λλ111 lim x v k k k αλ=∞ →。 11x α

matlab求矩阵特征值特征向量 乘幂法

摘 要 根据现代控制理论课程的特点, 提出并利用MATLAB 设计了现代控制理论课程的实验, 给出了设计的每个实验的主要内容及使用到的MATLAB 函数, 并对其中的一个实验作了详细说明。通过这些实验, 将有助于学生理解理论知识, 学习利用MATLAB 解决现代控制理论问题。 关键词:现代控制理论、MATLAB 、仿真。 1设计目的、内容及要求 1.1设计目的 本课程设计以自动控制理论、现代控制理论、MATLAB 及应用等知识为基础,求连续系统对应的离散化的系统,并用计算系数阵按模最大的特征根法判别离散系统的稳定性,目的是使学生在现有的控制理论的基础上,学会用MATLAB 语言编写控制系统设计与分析的程序,通过上机实习加深对课堂所学知识的理解,掌握一种能方便地对系统进行离散化的实现和分析系统的稳定性的设计的工具。 1.2设计内容及要求 1 在理论上对连续系统离散化推导出算法和计算公式 2 画出计算机实现算法的框图 3 编写程序并调试和运行 4 以下面的系统为例,进行计算 ??????????----=041020122A ,?? ?? ? ?????=100B ,[]111-=c 5 分析运算结果

6 幂法迭代精度为ep=0.001,离散系统展开项数为20 7 程序应具有一定的通用性,对不同参数能有兼容性。 2算法选择及推导 2.1连续系统离散化算法 书P67离散化意义 已知被控对象的状态方程为: ()()()()()()t t u t y t t u t =+=+ x Ax B Cx D 对方程求解,得: 0()()0()()()o t t t t t t e t e u d τττ --=+?A A x x B 设0t kT =,(1)t k T =+,代入上式,得: H 公式 若省略T 则为{ ? +-++Φ=+T k kT d kT Bu T k kt x T T k x )1()(])1[()()(])1([(τ τφ不改变与离散后时刻,即得连续离散化方程则:相当于)+=(上限相当于下限设令D C kT Du kT Cx kT y kT t kT u T H kT x T G T k x Bdt t Bdt e T H t T k T t kT d dt T k t Bd e T H e T T G T T AT T k kT T k A AT )()()()()()()(])1([(: )()(0 ,1,,)1()()()(0 )1(])1[(+==+=+Φ=====-=-+=?==Φ=???+-+τττττ τ

一些特殊矩阵特征值得求法与应用 (2)

本科毕业设计题目:一些特殊矩阵特征值的求法与应用 作者:高英 学号: 2010012491 所属学院:金融与数学书院 专业班级:应数1002班 指导教师:赵建中职称:院长 完成时间: 2014 年 4月 10日 皖西学院教务处制

独创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 学生签名:日期:年月日 论文版权使用授权书 本人完全了解皖西学院有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件和磁盘,允许论文被查阅和借阅,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。同意皖西学院可以用不同方式在不同媒体上发表、传播学位论文的全部或部分内容。 (保密的学位论文在解密后应遵守此协议) 学生签名:日期:年月日 导师签名:日期:年月

目录 摘要 .......................................................... 错误!未定义书签。Abstract ...................................................... 错误!未定义书签。第1章绪论 .................................................. 错误!未定义书签。 1.1 课题研究背景及目的................................... 错误!未定义书签。 1.2 研究现状 (1) 1.3研究方法 (2) 1.4研究内容 (2) 第2章几类特殊矩阵的概念及主要性质............................ 错误!未定义书签。 2.1 正交矩阵............................................. 错误!未定义书签。 2.2 幂零矩阵 (2) 2.3 对称矩阵 (3) 2.4 三对角矩阵 (4) 第3章矩阵特征值的求法与应用 (4) 3.1 一般矩阵的求法与应用 (4) 3.2 特殊矩阵的求法与应用 (7) 结语 (20) 致谢 (20) 参考文献 (21)

数学建模 用幂法 和法 根法求特征值特征向量

数学建模作业 计算机学院信计1102班姜圣涛 (1)幂法求矩阵最大特征值及特征向量: 程序为: #include #include using namespace std; #define n 3 //三阶矩阵 #define N 20 #define err 0.0001 //幂法求特征值特征向量 void main(){ cout<<"**********幂法求矩阵最大特征值及特征向量***********"<>A[i][j]; //输入矩阵 cout<<"请输入初始向量:\n"; for(i=0;i>X[i]; //输入初始向量 k=1; u=0;

while(1){ max=X[0]; for(i=0;i

幂法反幂法求解矩阵大小特征值及其对应的特征向量

幂法反幂法求解矩阵大小特征值及其对应的特征向量

————————————————————————————————作者:————————————————————————————————日期:

数值计算解矩阵的按模最大最小特征值及对应的特征向量 一.幂法 1. 幂法简介: 当矩阵A 满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。矩阵A 需要满足的条件为: (1) 的特征值为A i n λλλλ,0||...||||21 ≥≥≥> (2) 存在n 个线性无关的特征向量,设为n x x x ,...,,21 1.1计算过程: i n i i i u x x αα,1 ) 0()0(∑==,有对任意向量不全为0,则有 1 11111221 12111 1 1 11 1 011)()(...u u a u a u λu λαu αA x A Ax x k n n k n k k n i i k i i n i i i k )(k (k))(k αλλλλλα++++=+=+++≈? ? ????+++======∑∑ 可见,当||1 2 λλ越小时,收敛越快;且当k 充分大时,有1)11 11)11111λαλαλ=??????==+++(k )(k k (k k )(k x x u x u x ,对应的特征向量即是)(k x 1+。 2 算法实现 . ,, 3,,1 , ).5() 5(,,,,||).4();max(,).3() (max(;0,1).2(,).1()() () (停机否则输出失败信息转置若转否则输出若计算最大迭代次数,误差限,初始向量输入矩阵βλβεβλβλε←+←<<-←←= ←←k k N k y x Ay x x abs x y k N x A k k k 3 matlab 程序代码

幂法和反幂法的matlab实现

幂法和反幂法的matlab实现

幂法求矩阵主特征值及对应特征向量 摘要 矩阵特征值的数值算法,在科学和工程技术中很多问题在数学上都归结为矩阵的特征值问题,所以说研究利用数学软件解决求特征值的问题是非常必要的。实际问题中,有时需要的并不是所有的特征根,而是最大最小的实特征根。称模最大的特征根为主特征值。 幂法是一种计算矩阵主特征值(矩阵按模最大的特征值)及对应特征向量的迭代方法,它最大的优点是方法简单,特别适用于大型稀疏矩阵,但有时收敛速度很慢。 用java来编写算法。这个程序主要分成了四个大部分:第一部分为将矩阵转化为线性方程组;第二部分为求特征向量的极大值;第三部分为求幂法函数块;第四部分为页面设计及事件处理。其基本流程为幂法函数块通过调用将矩阵转化为线性方程组的方法,再经过一系列的验证和迭代得到结果。

关键字:主特征值;特征向量;线性方程组;幂法函数块 POWER METHOD FOR FINDING THE EIGENVALUES AND CORRESPONDING EIGENVECTORS OF THE MATRIX ABSTRACT Numerical algorithm for the eigenvalue of matrix, in science and engineering technology, a

lot of problems in mathematics are attributed matrix characteristic value problem, so that studies using mathematical software to solve the eigenvalue problem is very necessary. In practical problems, sometimes need not all eigenvalues, but the maximum and minimum eigenvalue of real. The characteristic value of the largest eigenvalue of the modulus maximum. Power method is a calculation of main features of the matrix values (matrix according to the characteristics of the largest value) and the corresponding eigenvector of iterative method. It is the biggest advantage is simple method, especially for large sparse matrix, but sometimes the convergence speed is very slow. Using java to write algorithms. This program is divided into three parts: the first part is the matrix is transformed into linear equations; the second part for the sake of feature vector of the maximum; the third part is

幂法求矩阵最大特征值

幂法求矩阵最大特征值 摘要 在物理、力学和工程技术中的很多问题在数学上都归结为求矩阵特征值的问题,而在某些工程、物理问题中,通常只需要求出矩阵的最大的特征值(即主特征值)和相应的特征向量,对于解这种特征值问题,运用幂法则可以有效的解决这个问题。 幂法是一种计算实矩阵A的最大特征值的一种迭代法,它最大的优点是方法简单。对于稀疏矩阵较合适,但有时收敛速度很慢。 用java来编写算法。这个程序主要分成了三个大部分:第一部分为将矩阵转化为线性方程组;第二部分为求特征向量的极大值;第三部分为求幂法函数块。其基本流程为幂法函数块通过调用将矩阵转化为线性方程组的方法,再经过一系列的验证和迭代得到结果。 关键词:幂法;矩阵最大特征值;j ava;迭代

POWER METHOD TO CALCULATE THE MAXIMUM EIGENV ALUE 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-Jacobi法计算矩阵特征值

准备工作 ?算法设计 矩阵特征值的求法有幂法、Jacobi法、QR法等,其中幂法可求得矩阵按模最大的特征值(反幂法可求得按模最小特征值),Jacobi法则可以求得对称阵的所有特征值。 分析一:由题目中所给条件λ1≤λ2≤…≤λn,可得出λ1、λn按模并不一定严格小于或大于其他特征值,且即使按模严格小于或大于其他特征值,也极有可能出现|λs|<λ1|<|λn |或|λs|<λn|<|λ1 |的情况,导致按幂法和反幂法无法求解λ1或λn二者中的一者; 分析二:题目要求求解与数μk =λ1+k(λn-λ1)/40最接近的特征值λik(k=1,2,3…39),这个问题其实可以转换为求A-μk 按模最小的特征值的问题,但因为在第一个问题中无法确定能肯定的求得λ1和λn,所以第二个问题暂先搁浅; 分析三:cond(A) 2 = ||A|| * ||A-1|| =|λ|max * |λ|min,这可以用幂法和反幂法求得,det(A) =λ1 *λ2 * … *λn,这需要求得矩阵A的所有特征值。 由以上分析可知,用幂法和反幂法无法完成所有问题的求解,而用Jacobi法求得矩阵所有特征值后可以求解题目中所给的各个问题。所以该题可以用Jacobi法求解。 ?模块设计 由 ?数据结构设计 由于矩阵是对称阵,上下带宽均为2,所以可以考虑用二维数组压缩存储矩阵上半带或下半带。但由于Jacobi法在迭代过程中会破坏矩阵的形态,所以原来为零的元素可能会变为非零,这就导致原来的二维数组无法存储迭代后的矩阵。基于此的考虑,决定采用一维数组存储整个下三角阵,以此保证迭代的正确进行。 完整代码如下(编译环境windows10 + visual studio2010):

数值方法课程设计幂法反幂法计算矩阵特征值和特征向量附Matlab程序

数值方法课程设计幂法反幂法计算矩阵特征值和特征向量附Matlab程序

矩阵的特征值与特征向量的计算 摘要 物理,力学,工程技术中的很多问题在数学上都归结于求矩阵特征值的问题,例如振动问题(桥梁的振动,机械的振动,电磁振动等)、物理学中某些临界值的确定问题以及理论物理中的一些问题。矩阵特征值的计算在矩阵计算中是一个很重要的部分,本文使用幂法和反幂法分别求矩阵的按模最大,按模最小特征向量及对应的特征值。 幂法是一种计算矩阵主特征值的一种迭代法,它最大的优点是方法简单,对于稀疏矩阵比较合适,但有时收敛速度很慢。其基本思想是任取一个非零的初始向量。由所求矩阵构造一向量序列。再经过所构造的向量序列求出特征值和特征向量。 反幂法用来计算矩阵按模最小特征向量及其特征值,及计算对应于一个给定近似特征值的特征向量。本文中主要使用反幂法计算一个矩阵的按模最小特征向量及其对应的特征值。计算矩阵按模最小特征向量的基本思想是将其转化为求逆矩阵的按模最大特征向量。然后经过这个按模最大的特征向量反推出原矩阵的按模最小特征向量。

关键词:矩阵;特征值;特征向量;冥法;反冥法 THE CALCULATIONS OF EIGENVALUE AND EIGENVECTOR OF MATRIX ABSTRACT Physics, mechanics, engineering technology in a lot of problems in mathematics are attributed to matrix eigenvalue problem, such as vibration (vibration of the bridge, mechanical vibration, electromagnetic vibration, etc.) in physics, some critical values determine problems and

matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量

竭诚为您提供优质文档/双击可除 matlab用规范化乘幂法求以下矩阵的按模最大特征值及其特征向量 篇一:幂法,反幂法求解矩阵最大最小特征值及其对应的特征向量 数值计算解矩阵的按模最大最小特征值及对应的特征 向量 一.幂法 1.幂法简介: 当矩阵a满足一定条件时,在工程中可用幂法计算其主特征值(按模最大)及其特征向量。矩阵a需要满足的条件为: (1)|1||2|...|n|0,i为a的特征值 xn(2)存在n个线性无关的特征向量,设为x1,x2,..., 1.1计算过程: n 对任意向量x,有x(0)(0)iui,i不全为0,则有 i1 x(k1)ax(k)...ak1x(0) aαiuiαiλik1uik1

i1i1nn nk12k1λ1u1()a2u2()anun11 k111u1k11 2|越小时,收敛越快;且当k充分大时,有可见,当|1 (k1)k111u1x(k1)x(k1)(k)x1(k),对应的特征向量即是。kxx11u1 2算法实现 (1).输入矩阵a,初始向量x,误差限,最大迭代次数n (2).k1,0;y(k)x(k) max(abs(x(k)) (3).计算xay,max(x);(4).若||,输出,y,否则,转(5) (5).若kn,置kk1,,转3,否则输出失败信息,停 机.3matlab程序代码 function[t,y]=lpowera,x0,eps,n)%t为所求特征值,y 是对应特征向量k=1; z=0;%z相当于 y=x0./max(abs(x0));%规范化初始向量 x=a*y;%迭代格式 b=max(x);%b相当于 ifabs(z-b) t=max(x); return; end

数值分析幂法与反幂法-matlab程序

数值分析幂法与反幂法 matlab程序 随机产生一对称矩阵,对不同的原点位移和初值(至少取3个)分别使用幂法求计算矩阵的主特征值及主特征向量,用反幂法求计算矩阵的按模最小特征值及特征向量。 要求 1)比较不同的原点位移和初值说明收敛性 2)给出迭代结果,生成DOC文件。 3)程序清单,生成M文件。 解答: >> A=rand(5) %随机产生5*5矩阵求随机矩阵 A = 0.7094 0.1626 0.5853 0.6991 0.1493 0.7547 0.1190 0.2238 0.8909 0.2575 0.2760 0.4984 0.7513 0.9593 0.8407 0.6797 0.9597 0.2551 0.5472 0.2543 0.6551 0.3404 0.5060 0.1386 0.8143 >> B=A+A' %A矩阵和A的转置相加,得到随机对称矩阵B B = 1.4187 0.9173 0.8613 1.3788 0.8044 0.9173 0.2380 0.7222 1.8506 0.5979 0.8613 0.7222 1.5025 1.2144 1.3467 1.3788 1.8506 1.2144 1.0944 0.3929 0.8044 0.5979 1.3467 0.3929 1.6286

B=?? ????? ???? ?? ???6286.13929.03467.15979.08044 .03929.00944 .12144.18506 .13788.13467.12144.15025.17222.08613.05979.08506.17222.02380.09173.08044.03788.18613 .09173 .04187.1 编写幂法、反幂法程序: function [m,u,index,k]=pow(A,u,ep,it_max) % 求矩阵最大特征值的幂法,其中 % A 为矩阵; % ep 为精度要求,缺省为1e-5; % it_max 为最大迭代次数,缺省为100; % m 为绝对值最大的特征值; % u 为对应最大特征值的特征向量; % index ,当index=1时,迭代成功,当index=0时,迭代失败 if nargin<4 it_max=100; end if nargin<3 ep=1e-5; end n=length(A); index=0; k=0; m1=0; m0=0.01; % 修改移位参数,原点移位法加速收敛,为0时,即为幂法 I=eye(n) T=A-m0*I while k<=it_max v=T*u; [vmax,i]=max(abs(v)); m=v(i); u=v/m; if abs(m-m1)

数值方法课程设计报告幂法反幂法计算矩阵特征值和特征向量-附Matlab程序

矩阵的特征值与特征向量的计算 摘要 物理,力学,工程技术中的很多问题在数学上都归结于求矩阵特征值的问题,例如振动问题(桥梁的振动,机械的振动,电磁振动等)、物理学中某些临界值的确定问题以及理论物理中的一些问题。矩阵特征值的计算在矩阵计算中是一个很重要的部分,本文使用幂法和反幂法分别求矩阵的按模最大,按模最小特征向量及对应的特征值。 幂法是一种计算矩阵主特征值的一种迭代法,它最大的优点是方法简单,对于稀疏矩阵比较合适,但有时收敛速度很慢。其基本思想是任取一个非零的初始向量。由所求矩阵构造一向量序列。再通过所构造的向量序列求出特征值和特征向量。 反幂法用来计算矩阵按模最小特征向量及其特征值,及计算对应于一个给定近似特征值的特征向量。本文中主要使用反幂法计算一个矩阵的按模最小特征向量及其对应的特征值。计算矩阵按模最小特征向量的基本思想是将其转化为求逆矩阵的按模最大特征向量。然后通过这个按模最大的特征向量反推出原矩阵的按模最小特征向量。 关键词:矩阵;特征值;特征向量;冥法;反冥法

THE CALCULATIONS OF EIGENVALUE AND EIGENVECTOR OF MATRIX ABSTRACT Physics, mechanics, engineering technology in a lot of problems in mathematics are attributed to matrix eigenvalue problem, such as vibration (vibration of the bridge, mechanical vibration, electromagnetic vibration, etc.) in physics, some critical values determine problems and theoretical physics in some of the problems. Matrix eigenvalue calculation is a very important part in matrix putation. In this paper, we use the power method and inverse power method to calculate the maximum of the matrix, according to the minimum characteristic vector and the corresponding characteristic value. Power method is an iterative method to calculate the eigenvalues of a matrix. It has the advantage that the method is simple and suitable for sparse matrices, but sometimes the convergence rate is very slow. The basic idea is to take a non - zero initial vector. Construct a vector sequence from the matrix of the matrix. Then the eigenvalues and eigenvectors are obtained by using the constructed vector sequence. The inverse power method is used to calculate the minimum feature vectors and their eigenvalues of the matrix, and to calculate the eigenvalues of the matrix. In this paper, we use

数值分析试验幂法与反幂法matlab

一、问题的描述及算法设计 (一)问题的描述 我所要做的课题是:对称矩阵的条件数的求解设计 1、求矩阵A 的二条件数 问题 A=?? ?? ? ?????----210121012 2、设计内容: 1)采用幂法求出A 的 . 2)采用反幂法求出A 的 . 3)计算A 的条件数 ⅡA Ⅱ2* ⅡA -1Ⅱ2=cond2(A )=/ .(精度要求为10-6) 3、设计要求 1)求出ⅡA Ⅱ2。 2)并进行一定的理论分析。 (二)算法设计 1、幂法算法 (1)取初始向量u )0((例如取u )0(=(1,1,…1)T ),置精度要求ε,置k=1. (2)计算 v )(k =Au )1(-k ,m k =max(v )(k ), u )(k = v )(k / m k (3)若| m k = m 1-k |<ε,则停止计算(m k 作为绝对值最大特征值1λ,u )(k 作为相应的特征向量)否则置k=k+1,转(2) 2、反幂法算法 (1)取初始向量u )0((例如取u )0(=(1,1,…1)T ),置精度要求ε,置k=1. (2)对A 作LU 分解,即A=LU (3)解线性方程组 Ly )(k =u )1(-k ,Uv )(k =y )(k (4)计算 m k =max(v )(k ), u )(k = v )(k / m k (5)若|m k =m 1-k |<ε,则停止计算(1/m k 作为绝对值最小特征值n λ,u )(k 作为相应的特征向量);否则置k=k+1,转(3).

二、算法的流程图(一)幂法算法的流程图

(二)反幂法算法的流程图

三、算法的理论依据及其推导 (一)幂法算法的理论依据及推导 幂法是用来确定矩阵的主特征值的一种迭代方法,也即,绝对值最大的特征值。稍微修改该方法,也可以用来确定其他特征值。幂法的一个很有用的特性是它不仅可以生成特征值,而且可以生成相应的特征向量。实际上,幂法经常用来求通过其他方法确定的特征值的特征向量。 1、幂法的迭代格式与收敛性质 设n 阶矩阵A 的特征值1λ,2λ,…,n λ是按绝对值大小编号的,x i (i=1,2,…,n)为对应i λ的特征向量,且1λ为单根,即 |1λ|>|2λ|≥…≥|n λ| 则计算最大特征值与特征向量的迭代格式为 v )(k =Au )1(-k ,m k =max(v )(k ), u )(k = v )(k / m k (1) 其中max(v )(k )表示向量v )(k 绝对值的最大分量。 2、对于幂法的定理 按式(1)计算出m k 和u )(k 满足 ∞ >-k lim m k =1λ, ∞ >-k lim u )(k = ) max(11 x x (二)反幂法算法的理论依据及推导 反幂法是用来计算绝对值最小的特征值忽然相应的特征向量的方法。是对幂法的修改,可以给出更快的收敛性。 1、反幂法的迭代格式与收敛性质 设A 是非奇异矩阵,则零不是特征值,并设特征值为 |1λ|≥|2λ|≥…≥|1-n λ|>|n λ| 则按A 1-的特征值绝对值的大小排序,有 | n λ1 |>| 1 1 -n λ|≥…≥| 1 1 λ| 对A 1-实行幂法,就可得A 1-的绝对值最大的特征值1/n λ和相应的特征向量,即A 的绝对值最小的特征值和相应的特征向量。 由于用A 1-代替A 作幂法计算,因此该方法称为反幂法,反幂法的迭代格式

相关文档
最新文档