MIT 线性代数导论 第二十二讲:矩阵对角化和幂

导读:本篇文章讲解 MIT 线性代数导论 第二十二讲:矩阵对角化和幂,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

本讲的主要内容

  • 对角化矩阵的概念以及方法
  • 计算矩阵的幂的对角化方法
  • 几个例子

对角化矩阵、计算矩阵的幂

对于一个有

n

n

n 个不同特征向量(其实就是说所有的特征值均不同)的矩阵

A

A

A,讲它的

n

n

n 个特征向量组成一个矩阵

S

S

S ,如果我们计算

A

S

AS

AS 可以有如下过程:

A

S

=

A

(

x

1

,

x

2

,

x

3

.

.

.

x

n

)

=

(

λ

1

x

1

,

λ

2

x

2

,

.

.

.

.

λ

n

x

n

)

=

(

x

1

,

x

2

,

x

3

.

.

.

x

n

)

(

λ

1

.

.

.

0

.

.

.

.

.

.

.

.

.

0

.

.

.

λ

n

)

=

S

Λ

AS = A(x_{1}, x_{2}, x_{3}…x_{n}) = (\lambda_{1}x_{1},\lambda_{2}x_{2},….\lambda_{n}x_{n})=(x_{1}, x_{2},x_{3}…x_{n})\begin{pmatrix} \lambda_{1} &… & 0\\ … & … & …\\ 0 &… & \lambda_{n} \end{pmatrix}=S\Lambda

AS=A(x1,x2,x3...xn)=(λ1x1,λ2x2,....λnxn)=(x1,x2,x3...xn)λ1...0.........0...λn=SΛ

一定注意上面的式子成立的条件是矩阵有

n

n

n 个不同的特征向量,如果我们将上面的结论继续做变化:

A

=

S

Λ

S

1

A = S\Lambda S^{-1}

A=SΛS1

那么现在就可以拿到这个形式很好看的等式了。使用这个等式我们可以简化很多矩阵的幂的计算,例如计算

A

2

A^{2}

A2:

A

2

=

(

S

Λ

S

1

)

2

=

S

Λ

S

1

S

Λ

S

1

=

S

Λ

2

S

1

A^{2} = (S\Lambda S^{-1})^{2} =S\Lambda S^{-1}S\Lambda S^{-1} = S\Lambda^{2}S^{-1}

A2=(SΛS1)2=SΛS1SΛS1=SΛ2S1

利用对角化计算差分方程

对于矩阵

A

A

A ,如果有列向量

u

i

u_{i}

ui 总有

u

i

+

1

=

A

u

i

u_{i+1} = Au_{i}

ui+1=Aui,现在已知

A

,

u

0

A, u_{0}

A,u0,如何求解

u

k

u_{k}

uk
首先展开这个递推式:

u

k

=

A

u

k

1

=

.

.

.

=

A

k

u

0

u_{k} = Au_{k-1}=… = A^{k}u_{0}

uk=Auk1=...=Aku0
然后把矩阵对角化(当然,这个问题的前提是矩阵可以对角化),有:

u

k

=

S

Λ

k

S

1

u

0

u_{k} = S\Lambda^{k}S^{-1}u_{0}

uk=SΛkS1u0,这时候,前提条件中的

n

n

n 个线性无关的特征向量就有用了, 对于

u

0

u_{0}

u0 这个

n

n

n维向量,可以用这

n

n

n 个特征向量来表示,可以有:

u

0

=

c

1

x

1

+

c

2

x

2

+

.

.

.

+

c

n

x

n

=

(

x

1

,

x

2

,

.

.

.

,

x

n

)

(

c

1

c

2

.

.

.

c

n

)

=

S

C

u_{0} = c_{1}x_{1} + c_{2}x_{2} +…+c_{n}x_{n} = (x_{1}, x_{2}, …,x_{n})\begin{pmatrix} c_{1}\\ c_{2}\\ … \\ c_{n} \end{pmatrix}= SC

u0=c1x1+c2x2+...+cnxn=(x1,x2,...,xn)c1c2...cn=SC
其中

S

S

S 跟前面对角化中的矩阵是一样的,都是特征向量组成的矩阵,把这个式子代入前面的

A

k

u

0

A^{k}u_{0}

Aku0,就可以得到最终的结论:

u

k

=

A

k

u

0

=

S

Λ

k

C

u_{k} = A^{k}u_{0} = S\Lambda^{k}C

uk=Aku0=SΛkC
计算这个表示线性组合的向量

C

C

C 还是比较简单的,所以计算的过程简单了一些。

计算Fibonacci 数列

这一个例子是上面的一个应用,首先我们知道斐波那契数列是:

0

,

1

,

1

,

2

,

3

,

5……

0,1,1,2,3,5……

0,1,1,2,3,5......
也就是:

F

(

n

)

=

F

(

n

1

)

+

F

(

n

2

)

,

(

n

>

=

3

)

F(n) = F(n-1) + F(n-2) ,(n>=3)

F(n)=F(n1)+F(n2),(n>=3)
为了使用对角化的知识计算,令

u

k

=

(

F

k

+

1

F

k

)

u_{k} = \begin{pmatrix} F_{k+1}\\ F_{k} \end{pmatrix}

uk=(Fk+1Fk),构造差分方程组:

{

F

(

k

+

2

)

=

F

(

k

+

1

)

+

F

(

k

)

F

(

k

+

1

)

=

F

(

k

+

1

)

\left\{\begin{matrix} F(k+2) = F(k+1) + F(k)\\ F(k+1) = F(k+1) \end{matrix}\right.

{F(k+2)=F(k+1)+F(k)F(k+1)=F(k+1)
这时候,我们可以得到:

u

k

+

1

=

A

u

k

A

=

(

1

1

1

0

)

u_{k+1} = Au_{k},A=\begin{pmatrix} 1 &1 \\ 1&0 \end{pmatrix}

uk+1=AukA=(1110)
这样,我们就构造了上面一样的递推形式,接下来按照对角化矩阵

A

A

A 然后就可以计算

S

Λ

k

C

S\Lambda^{k}C

SΛkC就可以快速计算了。

用线性代数解决斐波那契数列,感觉真的是…Amazing!,学数学的人真厉害啊。

以上~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116732.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!