矩阵分解
文章目录
矩阵分解
矩阵分解(或称为矩阵因式分解)是线性代数中的一个重要概念,在许多领域如机器学习、数据分析、信号处理等都有广泛应用。下面是10种常见的矩阵分解方法:
-
奇异值分解(SVD)
- 将任意矩阵 A A A 分解成三个矩阵的乘积 U Σ V T U \Sigma V^T UΣVT,其中 U U U 和 V V V 是正交矩阵, Σ \Sigma Σ 是一个对角矩阵。
-
特征分解(Eigenvalue Decomposition)
- 适用于方阵,将矩阵 A A A 分解为 Q Λ Q − 1 Q \Lambda Q^{-1} QΛQ−1,其中 Q Q Q 包含特征向量, Λ \Lambda Λ 是对角矩阵,其元素是对应的特征值。
-
QR 分解
- 将矩阵 A A A 表示为正交矩阵 Q Q Q 和上三角矩阵 R R R 的乘积,即 A = Q R A = QR A=QR。
-
LU 分解
- 将矩阵 A A A 分解为下三角矩阵 L L L 和上三角矩阵 U U U 的乘积,即 A = L U A = LU A=LU。有时还会引入置换矩阵 P P P 来保证分解成功,即 P A = L U PA = LU PA=LU。
-
Cholesky 分解
- 针对对称正定矩阵 A A A,将其分解为下三角矩阵 L L L 和其转置 L T L^T LT 的乘积,即 A = L L T A = LL^T A=LLT。
-
极分解(Polar Decomposition)
- 将矩阵 A A A 分解为正交矩阵 U U U 和半正定对称矩阵 P P P 的乘积,即 A = U P A = UP A=UP 或 A = P U A = PU A=PU。
-
非负矩阵分解(NMF)
- 对于非负矩阵 A A A,找到非负矩阵 W W W 和 H H H,使得 A ≈ W H A \approx WH A≈WH,这在数据挖掘和模式识别中有应用。
-
稀疏编码(Sparse Coding)
- 类似于 NMF,但是目标是让矩阵的一个因子尽可能稀疏,通常用于信号处理和机器学习中的特征学习。
-
核范数最小化(Nuclear Norm Minimization)
- 一种优化问题,用于低秩矩阵恢复或补全,通过最小化矩阵的核范数来逼近原始矩阵。
-
张量分解(Tensor Decomposition)
- 虽然严格意义上不是矩阵分解,但在高维数据分析中,将多维数组(张量)分解为多个低秩张量的乘积也是一种常见技术,如 CANDECOMP/PARAFAC (CP) 分解或 Tucker 分解。
每种分解都有其特定的应用场景和优势,选择哪种分解取决于具体的问题和数据特性。
矩阵分解的应用场景
不同的矩阵分解方法因其各自的特性和数学性质,在实际应用中有着不同的用途。以下是这些方法在不同场景中的典型应用:
-
奇异值分解(SVD)
- 应用场景:降维、数据压缩、图像处理、推荐系统、文本分析中的主题建模。
- 优点:能够揭示数据的主要成分,并且可以去除噪声。
-
特征分解(Eigenvalue Decomposition)
- 应用场景:稳定性分析、主成分分析(PCA)、谱聚类。
- 优点:能够帮助理解矩阵的内在结构,特别是对于对称矩阵非常有用。
-
QR 分解
- 应用场景:解决最小二乘问题、数值线性代数中的多项式拟合、信号处理。
- 优点:QR 分解保证了正交性,有助于减少数值误差。
-
LU 分解
- 应用场景:求解线性方程组、计算行列式、逆矩阵。
- 优点:简化了求解过程,特别是当需要多次求解同一系数矩阵的不同常数项时。
-
Cholesky 分解
- 应用场景:高效地求解线性方程组、最优化问题、概率论与统计学中的协方差矩阵。
- 优点:对于对称正定矩阵来说,计算速度快且数值稳定。
-
极分解(Polar Decomposition)
- 应用场景:机器人学中的运动学、计算机图形学中的变换。
- 优点:提供了矩阵旋转和平移部分的明确分离。
-
非负矩阵分解(NMF)
- 应用场景:图像处理、音频信号处理、文档分类。
- 优点:结果具有解释性,因为所有元素都是非负的,这有助于理解数据的自然成分。
-
稀疏编码(Sparse Coding)
- 应用场景:图像识别、音频处理、生物信息学。
- 优点:能够从过完备字典中学习到稀疏表示,有利于特征选择和降噪。
-
核范数最小化(Nuclear Norm Minimization)
- 应用场景:低秩矩阵恢复、推荐系统、系统辨识。
- 优点:在数据缺失的情况下仍然能够恢复出完整的矩阵。
-
张量分解(Tensor Decomposition)
- 应用场景:多维数据分析、社交网络分析、多媒体数据融合。
- 优点:可以处理高维数据结构,捕捉到数据之间的复杂关系。
在选择合适的矩阵分解方法时,需要考虑数据的性质(例如是否非负、是否对称)、所需的计算效率、以及最终的应用需求。
1. 矩阵的特征分解
特征分解(Eigenvalue Decomposition),也称为谱分解(Spectral Decomposition),是一种***将矩阵分解为其特征值和特征向量的过程。这种分解仅适用于方阵***,并且对于非对称矩阵,只有在矩阵是可对角化的条件下才成立。下面是特征分解的具体过程和一个计算示例。
1.1 特征分解的过程
-
计算特征值:
- 计算矩阵 A A A 的特征值,即求解特征多项式 det ( A − λ I ) = 0 \det(A - \lambda I) = 0 det(A−λI)=0 的根,其中 λ \lambda λ 是特征值, I I I 是单位矩阵。
-
计算特征向量:
- 对于每个特征值 λ i \lambda_i λi,求解方程 ( A − λ i I ) v i = 0 (A - \lambda_i I)v_i = 0 (A−λiI)vi=0,得到对应的特征向量 v i v_i vi。这个方程的解空间(除了零向量外)就是特征向量。
-
形成特征向量矩阵:
- 将所有特征向量作为列向量组成矩阵 Q Q Q。
-
形成对角矩阵:
- 将所有特征值放在对角线上形成对角矩阵 Λ \Lambda Λ。
-
组合分解结果:
- 最终得到的分解形式为 A = Q Λ Q − 1 A = Q \Lambda Q^{-1} A=QΛQ−1,其中 Q Q Q 是由特征向量组成的正交矩阵(如果 A A A 是对称矩阵, Q Q Q 就是酉矩阵), Λ \Lambda Λ 是包含特征值的对角矩阵。
1.2 计算示例
假设我们有一个
2
×
2
2 \times 2
2×2 的矩阵
A
A
A:
A
=
(
1
2
2
1
)
A = \begin{pmatrix} 1 & 2 \\ 2 & 1 \end{pmatrix}
A=(1221)
-
计算特征值:
- 解决特征多项式
det
(
A
−
λ
I
)
=
0
\det(A - \lambda I) = 0
det(A−λI)=0:
det ( 1 − λ 2 2 1 − λ ) = ( 1 − λ ) 2 − 4 = λ 2 − 2 λ − 3 = 0 \det\begin{pmatrix} 1-\lambda & 2 \\ 2 & 1-\lambda \end{pmatrix} = (1-\lambda)^2 - 4 = \lambda^2 - 2\lambda - 3 = 0 det(1−λ221−λ)=(1−λ)2−4=λ2−2λ−3=0 - 求解二次方程得到特征值 λ 1 = 3 , λ 2 = − 1 \lambda_1 = 3, \lambda_2 = -1 λ1=3,λ2=−1。
- 解决特征多项式
det
(
A
−
λ
I
)
=
0
\det(A - \lambda I) = 0
det(A−λI)=0:
-
计算特征向量:
- 对于
λ
1
=
3
\lambda_1 = 3
λ1=3,解方程
(
A
−
3
I
)
v
1
=
0
(A - 3I)v_1 = 0
(A−3I)v1=0:
( − 2 2 2 − 2 ) ( x y ) = ( 0 0 ) \begin{pmatrix} -2 & 2 \\ 2 & -2 \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix} (−222−2)(xy)=(00)- 得到 x = y x = y x=y,因此一个可能的特征向量为 v 1 = ( 1 1 ) v_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix} v1=(11)。
- 对于
λ
2
=
−
1
\lambda_2 = -1
λ2=−1,解方程
(
A
+
I
)
v
2
=
0
(A + I)v_2 = 0
(A+I)v2=0:
( 2 2 2 2 ) ( x y ) = ( 0 0 ) \begin{pmatrix} 2 & 2 \\ 2 & 2 \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix} (2222)(xy)=(00)- 得到 x = − y x = -y x=−y,因此一个可能的特征向量为 v 2 = ( 1 − 1 ) v_2 = \begin{pmatrix} 1 \\ -1 \end{pmatrix} v2=(1−1)。
- 对于
λ
1
=
3
\lambda_1 = 3
λ1=3,解方程
(
A
−
3
I
)
v
1
=
0
(A - 3I)v_1 = 0
(A−3I)v1=0:
-
形成特征向量矩阵:
- 将特征向量作为列向量组成矩阵
Q
Q
Q:
Q = ( 1 1 1 − 1 ) Q = \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} Q=(111−1)
- 将特征向量作为列向量组成矩阵
Q
Q
Q:
-
形成对角矩阵:
- 形成对角矩阵
Λ
\Lambda
Λ:
Λ = ( 3 0 0 − 1 ) \Lambda = \begin{pmatrix} 3 & 0 \\ 0 & -1 \end{pmatrix} Λ=(300−1)
- 形成对角矩阵
Λ
\Lambda
Λ:
-
组合分解结果:
- 因此,
A
A
A 可以分解为:
A = Q Λ Q − 1 A = Q \Lambda Q^{-1} A=QΛQ−1
- 因此,
A
A
A 可以分解为:
这里,
Q
−
1
Q^{-1}
Q−1 是
Q
Q
Q 的逆矩阵,可以通过求解来得到。由于
Q
Q
Q 是正交矩阵,
Q
−
1
=
Q
T
Q^{-1} = Q^T
Q−1=QT,即:
Q
T
=
(
1
1
1
−
1
)
T
=
(
1
1
1
−
1
)
Q^T = \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}^T = \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}
QT=(111−1)T=(111−1)
因此,最终的分解形式为:
A
=
(
1
1
1
−
1
)
(
3
0
0
−
1
)
(
1
1
1
−
1
)
T
A = \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} \begin{pmatrix} 3 & 0 \\ 0 & -1 \end{pmatrix} \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}^T
A=(111−1)(300−1)(111−1)T
这就是特征分解的具体过程和一个简单的计算示例。
2. 斐波那契数列的矩阵表示、特征分解、数列通解
2.1 斐波那契数列
斐波那契数列是一个著名的数列,定义如下:
F
(
n
)
=
F
(
n
−
1
)
+
F
(
n
−
2
)
F(n) = F(n-1) + F(n-2)
F(n)=F(n−1)+F(n−2)
F
(
0
)
=
0
,
F
(
1
)
=
1
F(0) = 0, \quad F(1) = 1
F(0)=0,F(1)=1
我们可以用矩阵的形式来表示斐波那契数列,这样可以更容易地推导出数列的通项公式。
2.2 矩阵表示
为了用矩阵表示斐波那契数列,我们可以定义一个 2 × 2 2 \times 2 2×2 的矩阵 A A A 和一个 2 × 1 2 \times 1 2×1 的向量 F n F_n Fn,其中 F n F_n Fn 表示第 n n n 个斐波那契数和第 n − 1 n-1 n−1 个斐波那契数的列向量。定义如下:
F n = ( F ( n ) F ( n − 1 ) ) F_n = \begin{pmatrix} F(n) \\ F(n-1) \end{pmatrix} Fn=(F(n)F(n−1))
根据斐波那契数列的定义,我们有:
F ( n + 1 ) = F ( n ) + F ( n − 1 ) F(n+1) = F(n) + F(n-1) F(n+1)=F(n)+F(n−1)
这可以写成矩阵形式:
F n + 1 = A F n F_{n+1} = A F_n Fn+1=AFn
其中,
A = ( 1 1 1 0 ) A = \begin{pmatrix} 1 & 1 \\ 1 & 0 \end{pmatrix} A=(1110)
因此,
F n + 1 = ( F ( n + 1 ) F ( n ) ) = ( 1 1 1 0 ) ( F ( n ) F ( n − 1 ) ) F_{n+1} = \begin{pmatrix} F(n+1) \\ F(n) \end{pmatrix} = \begin{pmatrix} 1 & 1 \\ 1 & 0 \end{pmatrix} \begin{pmatrix} F(n) \\ F(n-1) \end{pmatrix} Fn+1=(F(n+1)F(n))=(1110)(F(n)F(n−1))
2.3 特征分解
接下来,我们进行特征分解。首先计算矩阵 A A A 的特征值和特征向量。
计算特征值
要找到矩阵 A A A 的特征值,我们需要解方程:
det ( A − λ I ) = 0 \det(A - \lambda I) = 0 det(A−λI)=0
det ( 1 − λ 1 1 − λ ) = ( 1 − λ ) ( − λ ) − 1 = λ 2 − λ − 1 = 0 \det\begin{pmatrix} 1-\lambda & 1 \\ 1 & -\lambda \end{pmatrix} = (1-\lambda)(-\lambda) - 1 = \lambda^2 - \lambda - 1 = 0 det(1−λ11−λ)=(1−λ)(−λ)−1=λ2−λ−1=0
特征值 λ \lambda λ 为方程的解:
λ = 1 ± 5 2 \lambda = \frac{1 \pm \sqrt{5}}{2} λ=21±5
设 λ 1 = 1 + 5 2 \lambda_1 = \frac{1 + \sqrt{5}}{2} λ1=21+5 和 λ 2 = 1 − 5 2 \lambda_2 = \frac{1 - \sqrt{5}}{2} λ2=21−5。
计算特征向量
对于每个特征值,我们需要找到相应的特征向量。
-
对于 λ 1 = 1 + 5 2 \lambda_1 = \frac{1 + \sqrt{5}}{2} λ1=21+5,解方程 ( A − λ 1 I ) v 1 = 0 (A - \lambda_1 I)v_1 = 0 (A−λ1I)v1=0:
( 1 − 1 + 5 2 1 1 − 1 + 5 2 ) v 1 = 0 \begin{pmatrix} 1 - \frac{1 + \sqrt{5}}{2} & 1 \\ 1 & -\frac{1 + \sqrt{5}}{2} \end{pmatrix} v_1 = 0 (1−21+511−21+5)v1=0
这简化为:
( − 5 2 1 1 − 1 + 5 2 ) v 1 = 0 \begin{pmatrix} -\frac{\sqrt{5}}{2} & 1 \\ 1 & -\frac{1 + \sqrt{5}}{2} \end{pmatrix} v_1 = 0 (−2511−21+5)v1=0
解得一个可能的特征向量 v 1 = ( 5 − 1 2 1 ) v_1 = \begin{pmatrix} \frac{\sqrt{5} - 1}{2} \\ 1 \end{pmatrix} v1=(25−11)。
-
对于 λ 2 = 1 − 5 2 \lambda_2 = \frac{1 - \sqrt{5}}{2} λ2=21−5,解方程 ( A − λ 2 I ) v 2 = 0 (A - \lambda_2 I)v_2 = 0 (A−λ2I)v2=0:
( 1 − 1 − 5 2 1 1 − 1 − 5 2 ) v 2 = 0 \begin{pmatrix} 1 - \frac{1 - \sqrt{5}}{2} & 1 \\ 1 & -\frac{1 - \sqrt{5}}{2} \end{pmatrix} v_2 = 0 (1−21−511−21−5)v2=0
这简化为:
( 5 2 1 1 − 1 − 5 2 ) v 2 = 0 \begin{pmatrix} \frac{\sqrt{5}}{2} & 1 \\ 1 & -\frac{1 - \sqrt{5}}{2} \end{pmatrix} v_2 = 0 (2511−21−5)v2=0
解得一个可能的特征向量 v 2 = ( − 5 − 1 2 1 ) v_2 = \begin{pmatrix} \frac{-\sqrt{5} - 1}{2} \\ 1 \end{pmatrix} v2=(2−5−11)。
形成特征向量矩阵
将特征向量作为列向量组成矩阵 Q Q Q:
Q = ( 5 − 1 2 − 5 − 1 2 1 1 ) Q = \begin{pmatrix} \frac{\sqrt{5} - 1}{2} & \frac{-\sqrt{5} - 1}{2} \\ 1 & 1 \end{pmatrix} Q=(25−112−5−11)
形成对角矩阵
形成对角矩阵 Λ \Lambda Λ:
Λ = ( 1 + 5 2 0 0 1 − 5 2 ) \Lambda = \begin{pmatrix} \frac{1 + \sqrt{5}}{2} & 0 \\ 0 & \frac{1 - \sqrt{5}}{2} \end{pmatrix} Λ=(21+50021−5)
组合分解结果
最终得到的特征分解形式为:
A = Q Λ Q − 1 A = Q \Lambda Q^{-1} A=QΛQ−1
其中, Q Q Q 是由特征向量组成的矩阵, Λ \Lambda Λ 是对角矩阵,包含了特征值。通过这种方式,我们可以更方便地分析斐波那契数列的性质,并利用矩阵幂来快速计算斐波那契数列的任意一项。
2.4 数列通解
已知初始条件 X 0 = ( 0 , 1 ) X_0= (0,1) X0=(0,1),
则斐波那契数列的通解为
X n = A n X 0 = Q Λ n Q − 1 X 0 X_n = A^n X_0= Q \Lambda^n Q^{-1} X_0 Xn=AnX0=QΛnQ−1X0
= ( 5 − 1 2 − 5 − 1 2 1 1 ) ( 1 + 5 2 0 0 1 − 5 2 ) n ( 5 − 1 2 − 5 − 1 2 1 1 ) − 1 ( 0 , 1 ) = \begin{pmatrix} \frac{\sqrt{5} - 1}{2} & \frac{-\sqrt{5} - 1}{2} \\ 1 & 1 \end{pmatrix} \begin{pmatrix} \frac{1 + \sqrt{5}}{2} & 0 \\ 0 & \frac{1 - \sqrt{5}}{2} \end{pmatrix}^n \begin{pmatrix} \frac{\sqrt{5} - 1}{2} & \frac{-\sqrt{5} - 1}{2} \\ 1 & 1 \end{pmatrix}^{-1} (0,1) =(25−112−5−11)(21+50021−5)n(25−112−5−11)−1(0,1) 来快速计算任意时刻的状态 X n X_n Xn。
3. 二阶齐次线性差分方程的矩阵表示、特征分解、方程通解
3.1 二阶齐次线性差分方程
二阶齐次线性差分方程可以用来描述很多离散系统的动态行为。这类方程的一般形式可以写作:
x n + 2 = a x n + 1 + b x n x_{n+2} = a x_{n+1} + b x_n xn+2=axn+1+bxn
这里 a a a 和 b b b 是常数, x n x_n xn 是序列的第 n n n 项。
3.2 矩阵表示
为了将这个差分方程转换成矩阵形式,我们可以定义一个新的向量 X n X_n Xn,它包含了当前项和前一项:
X n = ( x n + 1 x n ) X_n = \begin{pmatrix} x_{n+1} \\ x_n \end{pmatrix} Xn=(xn+1xn)
那么下一个状态 X n + 1 X_{n+1} Xn+1 可以表示为当前状态 X n X_n Xn 乘以一个矩阵 A A A:
X n + 1 = A X n X_{n+1} = A X_n Xn+1=AXn
其中矩阵 A A A 定义为:
A = ( a b 1 0 ) A = \begin{pmatrix} a & b \\ 1 & 0 \end{pmatrix} A=(a1b0)
这意味着:
X n + 1 = ( x n + 2 x n + 1 ) = ( a b 1 0 ) ( x n + 1 x n ) = ( a x n + 1 + b x n x n + 1 ) X_{n+1} = \begin{pmatrix} x_{n+2} \\ x_{n+1} \end{pmatrix} = \begin{pmatrix} a & b \\ 1 & 0 \end{pmatrix} \begin{pmatrix} x_{n+1} \\ x_n \end{pmatrix} = \begin{pmatrix} ax_{n+1} + bx_n \\ x_{n+1} \end{pmatrix} Xn+1=(xn+2xn+1)=(a1b0)(xn+1xn)=(axn+1+bxnxn+1)
3.3 特征分解
为了进一步分析这个系统,我们可以对矩阵 A A A 进行特征分解。特征分解可以帮助我们理解系统的长期行为,并且可以使计算变得更为简单。
计算特征值
首先,我们需要找到矩阵 A A A 的特征值。特征值 λ \lambda λ 是满足以下特征方程的解:
det ( A − λ I ) = 0 \det(A - \lambda I) = 0 det(A−λI)=0
对于矩阵 A A A,我们有:
det ( ( a b 1 0 ) − λ ( 1 0 0 1 ) ) = det ( ( a − λ b 1 − λ ) ) = 0 \det\left(\begin{pmatrix} a & b \\ 1 & 0 \end{pmatrix} - \lambda \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}\right) = \det\left(\begin{pmatrix} a-\lambda & b \\ 1 & -\lambda \end{pmatrix}\right) = 0 det((a1b0)−λ(1001))=det((a−λ1b−λ))=0
计算行列式:
( a − λ ) ( − λ ) − b = 0 (a - \lambda)(-\lambda) - b = 0 (a−λ)(−λ)−b=0
λ 2 − a λ − b = 0 \lambda^2 - a\lambda - b = 0 λ2−aλ−b=0
解这个二次方程,我们得到两个特征值 λ 1 \lambda_1 λ1 和 λ 2 \lambda_2 λ2:
λ 1 , 2 = a ± a 2 + 4 b 2 \lambda_{1,2} = \frac{a \pm \sqrt{a^2 + 4b}}{2} λ1,2=2a±a2+4b
计算特征向量
对于每个特征值 λ 1 \lambda_1 λ1 和 λ 2 \lambda_2 λ2,我们可以通过解方程 ( A − λ I ) v = 0 (A - \lambda I) v = 0 (A−λI)v=0 来找到对应的特征向量 v v v。
-
对于 λ 1 \lambda_1 λ1,解方程:
( a − λ 1 b 1 − λ 1 ) ( v 1 v 2 ) = 0 \begin{pmatrix} a - \lambda_1 & b \\ 1 & -\lambda_1 \end{pmatrix} \begin{pmatrix} v_1 \\ v_2 \end{pmatrix} = 0 (a−λ11b−λ1)(v1v2)=0
-
对于 λ 2 \lambda_2 λ2,解方程:
( a − λ 2 b 1 − λ 2 ) ( v 1 v 2 ) = 0 \begin{pmatrix} a - \lambda_2 & b \\ 1 & -\lambda_2 \end{pmatrix} \begin{pmatrix} v_1 \\ v_2 \end{pmatrix} = 0 (a−λ21b−λ2)(v1v2)=0
假设我们得到了两个独立的特征向量 v 1 v_1 v1 和 v 2 v_2 v2。
形成特征向量矩阵
将特征向量作为列向量组成矩阵 Q Q Q:
Q = ( v 11 v 21 v 12 v 22 ) Q = \begin{pmatrix} v_{11} & v_{21} \\ v_{12} & v_{22} \end{pmatrix} Q=(v11v12v21v22)
形成对角矩阵
形成对角矩阵 Λ \Lambda Λ:
Λ = ( λ 1 0 0 λ 2 ) \Lambda = \begin{pmatrix} \lambda_1 & 0 \\ 0 & \lambda_2 \end{pmatrix} Λ=(λ100λ2)
组合分解结果
最终得到的特征分解形式为:
A = Q Λ Q − 1 A = Q \Lambda Q^{-1} A=QΛQ−1
这里的 Q Q Q 是由特征向量组成的矩阵, Λ \Lambda Λ 是对角矩阵,包含了特征值。通过特征分解,我们可以更容易地分析系统的稳定性以及其他动力学性质。
3.4 方程通解
如果我们知道初始条件 X 0 X_0 X0,我们可以通过 X n = A n X 0 = Q Λ n Q − 1 X 0 X_n = A^n X_0= Q \Lambda^n Q^{-1} X_0 Xn=AnX0=QΛnQ−1X0 来快速计算任意时刻的状态 X n X_n Xn。
推导过程:
X n = A X n − 1 = A 2 X n − 2 = . . . = A n X 0 X_n = AX_{n-1} = A^2 X_{n-2} =... = A^n X_0 Xn=AXn−1=A2Xn−2=...=AnX0
= ( Q Λ Q − 1 ) n X 0 = (Q \Lambda Q^{-1})^n X_0 =(QΛQ−1)nX0
= ( Q Λ Q − 1 ) ( Q Λ Q − 1 ) . . . ( Q Λ Q − 1 ) X 0 = (Q \Lambda Q^{-1})(Q \Lambda Q^{-1})...(Q \Lambda Q^{-1}) X_0 =(QΛQ−1)(QΛQ−1)...(QΛQ−1)X0
= ( Q Λ ) ( Q − 1 Q ) ( Λ ) ( Q − 1 Q ) . . . ( Q − 1 Q ) ( Λ Q − 1 ) X 0 = (Q \Lambda) (Q^{-1}Q) (\Lambda) (Q^{-1}Q)...(Q^{-1}Q) (\Lambda Q^{-1}) X_0 =(QΛ)(Q−1Q)(Λ)(Q−1Q)...(Q−1Q)(ΛQ−1)X0
= ( Q Λ ) ( I ) ( Λ ) ( I ) . . . ( I ) ( Λ Q − 1 ) X 0 = (Q \Lambda) (I) (\Lambda) (I)...(I) (\Lambda Q^{-1}) X_0 =(QΛ)(I)(Λ)(I)...(I)(ΛQ−1)X0
= Q Λ n Q − 1 X 0 = Q \Lambda^n Q^{-1} X_0 =QΛnQ−1X0
= ( v 11 v 21 v 12 v 22 ) ( λ 1 0 0 λ 2 ) n ( v 11 v 21 v 12 v 22 ) − 1 X 0 = \begin{pmatrix} v_{11} & v_{21} \\ v_{12} & v_{22} \end{pmatrix} \begin{pmatrix} \lambda_1 & 0 \\ 0 & \lambda_2 \end{pmatrix}^n \begin{pmatrix} v_{11} & v_{21} \\ v_{12} & v_{22} \end{pmatrix}^{-1} X_0 =(v11v12v21v22)(λ100λ2)n(v11v12v21v22)−1X0
4. n阶齐次线性差分方程的矩阵表示、特征分解、方程通解
4.1 n阶齐次线性差分方程
n阶齐次线性差分方程可以表示为:
x n + k = a k − 1 x n + k − 1 + a k − 2 x n + k − 2 + ⋯ + a 1 x n + 1 + a 0 x n x_{n+k} = a_{k-1} x_{n+k-1} + a_{k-2} x_{n+k-2} + \cdots + a_1 x_{n+1} + a_0 x_n xn+k=ak−1xn+k−1+ak−2xn+k−2+⋯+a1xn+1+a0xn
其中 a 0 , a 1 , … , a k − 1 a_0, a_1, \ldots, a_{k-1} a0,a1,…,ak−1 是常数系数。
4.2 矩阵表示
为了将这个差分方程转换为矩阵形式,我们可以定义一个 k k k 维的向量 X n X_n Xn,它包含了当前项及其前 k − 1 k-1 k−1 项:
X n = ( x n + k − 1 x n + k − 2 ⋮ x n + 1 x n ) X_n = \begin{pmatrix} x_{n+k-1} \\ x_{n+k-2} \\ \vdots \\ x_{n+1} \\ x_n \end{pmatrix} Xn= xn+k−1xn+k−2⋮xn+1xn
这样,下一个状态 X n + 1 X_{n+1} Xn+1 可以表示为当前状态 X n X_n Xn 乘以一个 k × k k \times k k×k 的矩阵 A A A:
X n + 1 = A X n X_{n+1} = A X_n Xn+1=AXn
矩阵 A A A 的形式如下:也称为***递推式的伴生矩阵(companion matrix of recurrence)***
A = ( a k − 1 a k − 2 a k − 3 ⋯ a 1 a 0 1 0 0 ⋯ 0 0 0 1 0 ⋯ 0 0 ⋮ ⋮ ⋱ ⋱ ⋮ ⋮ 0 0 0 ⋯ 1 0 ) A = \begin{pmatrix} a_{k-1} & a_{k-2} & a_{k-3} & \cdots & a_1 & a_0 \\ 1 & 0 & 0 & \cdots & 0 & 0 \\ 0 & 1 & 0 & \cdots & 0 & 0 \\ \vdots & \vdots & \ddots & \ddots & \vdots & \vdots \\ 0 & 0 & 0 & \cdots & 1 & 0 \end{pmatrix} A= ak−110⋮0ak−201⋮0ak−300⋱0⋯⋯⋯⋱⋯a100⋮1a000⋮0
这意味着:
X n + 1 = ( x n + k x n + k − 1 ⋮ x n + 2 x n + 1 ) = ( a k − 1 a k − 2 a k − 3 ⋯ a 1 a 0 1 0 0 ⋯ 0 0 0 1 0 ⋯ 0 0 ⋮ ⋮ ⋱ ⋱ ⋮ ⋮ 0 0 0 ⋯ 1 0 ) ( x n + k − 1 x n + k − 2 ⋮ x n + 1 x n ) X_{n+1} = \begin{pmatrix} x_{n+k} \\ x_{n+k-1} \\ \vdots \\ x_{n+2} \\ x_{n+1} \end{pmatrix} = \begin{pmatrix} a_{k-1} & a_{k-2} & a_{k-3} & \cdots & a_1 & a_0 \\ 1 & 0 & 0 & \cdots & 0 & 0 \\ 0 & 1 & 0 & \cdots & 0 & 0 \\ \vdots & \vdots & \ddots & \ddots & \vdots & \vdots \\ 0 & 0 & 0 & \cdots & 1 & 0 \end{pmatrix} \begin{pmatrix} x_{n+k-1} \\ x_{n+k-2} \\ \vdots \\ x_{n+1} \\ x_n \end{pmatrix} Xn+1= xn+kxn+k−1⋮xn+2xn+1 = ak−110⋮0ak−201⋮0ak−300⋱0⋯⋯⋯⋱⋯a100⋮1a000⋮0 xn+k−1xn+k−2⋮xn+1xn
4.3 特征分解
为了进行特征分解,我们需要找到矩阵 A A A 的特征值和特征向量。
计算特征值
首先,我们需要找到矩阵 A A A 的特征值。特征值 λ \lambda λ 是满足以下特征方程的解:
det ( A − λ I ) = 0 \det(A - \lambda I) = 0 det(A−λI)=0
对于矩阵 A A A,我们有:
det ( ( a k − 1 − λ a k − 2 a k − 3 ⋯ a 1 a 0 1 − λ 0 ⋯ 0 0 0 1 − λ ⋯ 0 0 ⋮ ⋮ ⋱ ⋱ ⋮ ⋮ 0 0 0 ⋯ 1 − λ ) ) = 0 \det\left(\begin{pmatrix} a_{k-1} - \lambda & a_{k-2} & a_{k-3} & \cdots & a_1 & a_0 \\ 1 & -\lambda & 0 & \cdots & 0 & 0 \\ 0 & 1 & -\lambda & \cdots & 0 & 0 \\ \vdots & \vdots & \ddots & \ddots & \vdots & \vdots \\ 0 & 0 & 0 & \cdots & 1 & -\lambda \end{pmatrix}\right) = 0 det ak−1−λ10⋮0ak−2−λ1⋮0ak−30−λ⋱0⋯⋯⋯⋱⋯a100⋮1a000⋮−λ =0
这个行列式的结果是一个 k k k 阶的多项式,称为特征多项式:
p ( λ ) = ( − 1 ) k ( λ k − a k − 1 λ k − 1 − a k − 2 λ k − 2 − ⋯ − a 1 λ − a 0 ) p(\lambda) = (-1)^k (\lambda^k - a_{k-1} \lambda^{k-1} - a_{k-2} \lambda^{k-2} - \cdots - a_1 \lambda - a_0) p(λ)=(−1)k(λk−ak−1λk−1−ak−2λk−2−⋯−a1λ−a0)
解这个多项式方程,我们得到 k k k 个特征值 λ 1 , λ 2 , … , λ k \lambda_1, \lambda_2, \ldots, \lambda_k λ1,λ2,…,λk。
计算特征向量
对于每个特征值 λ i \lambda_i λi,我们可以通过解方程 ( A − λ i I ) v i = 0 (A - \lambda_i I) v_i = 0 (A−λiI)vi=0 来找到对应的特征向量 v i v_i vi。每个特征向量 v i v_i vi 是一个 k k k 维向量。
形成特征向量矩阵
将特征向量作为列向量组成矩阵 Q Q Q:
Q = ( v 1 v 2 ⋯ v k ) Q = \begin{pmatrix} v_{1} & v_{2} & \cdots & v_{k} \end{pmatrix} Q=(v1v2⋯vk)
形成对角矩阵
形成对角矩阵 Λ \Lambda Λ,其中对角线上的元素是特征值:
Λ = ( λ 1 0 ⋯ 0 0 λ 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ λ k ) \Lambda = \begin{pmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_k \end{pmatrix} Λ= λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λk
组合分解结果
最终得到的特征分解形式为:
A = Q Λ Q − 1 A = Q \Lambda Q^{-1} A=QΛQ−1
这里的 Q Q Q 是由特征向量组成的矩阵, Λ \Lambda Λ 是对角矩阵,包含了特征值。
4.4 方程通解
通过这种方法,我们可以更方便地分析 n 阶齐次线性差分方程的行为,并且可以利用矩阵的幂来快速计算差分方程的解。如果矩阵 A A A 可以对角化,那么我们可以通过对角化后的形式更容易地求解 X n X_n Xn,即:
X n = A n X 0 = ( Q Λ Q − 1 ) n X 0 = Q Λ n Q − 1 X 0 X_n = A^n X_0 = (Q \Lambda Q^{-1})^n X_0 = Q \Lambda^n Q^{-1} X_0 Xn=AnX0=(QΛQ−1)nX0=QΛnQ−1X0
这样,我们只需要计算对角矩阵 Λ \Lambda Λ 的幂,然后通过矩阵乘法得到 X n X_n Xn。
5. 二阶齐次线性微分方程的矩阵表示、特征分解、方程通解
5.1 二阶齐次线性微分方程
二阶齐次线性微分方程可以表示为:
y ′ ′ + p ( x ) y ′ + q ( x ) y = 0 y'' + p(x)y' + q(x)y = 0 y′′+p(x)y′+q(x)y=0
5.2 矩阵表示
为了将这样的微分方程转换为矩阵形式,我们可以使用一个技巧,即通过引入辅助变量来将二阶方程转化为一阶向量方程。
设 y 1 = y y_1 = y y1=y,那么 y 1 ′ = y ′ y_1' = y' y1′=y′。再设 y 2 = y ′ y_2 = y' y2=y′,则有 y 2 ′ = y ′ ′ y_2' = y'' y2′=y′′。因此原方程可以写作:
y 2 ′ + p ( x ) y 2 + q ( x ) y 1 = 0 y_2' + p(x)y_2 + q(x)y_1 = 0 y2′+p(x)y2+q(x)y1=0
现在我们有了两个方程:
y
1
′
=
y
2
y_1' = y_2
y1′=y2
y
2
′
=
−
q
(
x
)
y
1
−
p
(
x
)
y
2
y_2' = -q(x)y_1 - p(x)y_2
y2′=−q(x)y1−p(x)y2
可以将这两个方程组合成一个一阶向量微分方程:
( y 1 ′ y 2 ′ ) = ( 0 1 − q ( x ) − p ( x ) ) ( y 1 y 2 ) \begin{pmatrix} y_1' \\ y_2' \end{pmatrix} = \begin{pmatrix} 0 & 1 \\ -q(x) & -p(x) \end{pmatrix} \begin{pmatrix} y_1 \\ y_2 \end{pmatrix} (y1′y2′)=(0−q(x)1−p(x))(y1y2)
或者用更简洁的矩阵形式表示为:
Y ′ ( x ) = A ( x ) Y ( x ) \mathbf{Y}'(x) = A(x)\mathbf{Y}(x) Y′(x)=A(x)Y(x)
其中,
Y ( x ) = ( y 1 ( x ) y 2 ( x ) ) , A ( x ) = ( 0 1 − q ( x ) − p ( x ) ) \mathbf{Y}(x) = \begin{pmatrix} y_1(x) \\ y_2(x) \end{pmatrix}, \quad A(x) = \begin{pmatrix} 0 & 1 \\ -q(x) & -p(x) \end{pmatrix} Y(x)=(y1(x)y2(x)),A(x)=(0−q(x)1−p(x))
5.3 特征分解
如果 p ( x ) p(x) p(x) 和 q ( x ) q(x) q(x) 是常数,则矩阵 A A A 也是常数矩阵,此时可以通过求解矩阵 A A A 的特征值和特征向量来进行特征分解。
对于常系数矩阵 A A A,其特征值 λ \lambda λ 满足特征方程:
det ( A − λ I ) = 0 \det(A - \lambda I) = 0 det(A−λI)=0
其中 I I I 是单位矩阵。对于给定的 A A A,解这个二次方程得到 λ 1 \lambda_1 λ1 和 λ 2 \lambda_2 λ2。
5.4 方程通解
假设 λ 1 \lambda_1 λ1 和 λ 2 \lambda_2 λ2 是 A A A 的特征值,对应的特征向量分别为 v 1 \mathbf{v}_1 v1 和 v 2 \mathbf{v}_2 v2,那么解的一般形式为:
Y ( x ) = c 1 e λ 1 x v 1 + c 2 e λ 2 x v 2 \mathbf{Y}(x) = c_1 e^{\lambda_1 x}\mathbf{v}_1 + c_2 e^{\lambda_2 x}\mathbf{v}_2 Y(x)=c1eλ1xv1+c2eλ2xv2
其中 c 1 c_1 c1 和 c 2 c_2 c2 是积分常数,取决于初始条件。根据 Y ( x ) \mathbf{Y}(x) Y(x) 的定义, y ( x ) y(x) y(x) 就是 Y ( x ) \mathbf{Y}(x) Y(x) 的第一个分量,即 y ( x ) = c 1 e λ 1 x v 11 + c 2 e λ 2 x v 21 y(x) = c_1 e^{\lambda_1 x}v_{11} + c_2 e^{\lambda_2 x}v_{21} y(x)=c1eλ1xv11+c2eλ2xv21,其中 v 11 v_{11} v11 和 v 21 v_{21} v21 分别是特征向量 v 1 \mathbf{v}_1 v1 和 v 2 \mathbf{v}_2 v2 的第一个分量。
6. n阶齐次线性微分方程的矩阵表示、特征分解、方程通解
6.1 n 阶齐次线性微分方程
对于一个 n 阶齐次线性微分方程:
y ( n ) + a n − 1 ( x ) y ( n − 1 ) + ⋯ + a 1 ( x ) y ′ + a 0 ( x ) y = 0 , y^{(n)} + a_{n-1}(x)y^{(n-1)} + \cdots + a_1(x)y' + a_0(x)y = 0, y(n)+an−1(x)y(n−1)+⋯+a1(x)y′+a0(x)y=0,
6.2 矩阵表示
我们可以将其转换为一个 n 维向量的一阶系统。为此,我们定义新的变量 y i y_i yi (i=1, 2, …, n) 如下:
y
1
=
y
,
y_1 = y,
y1=y,
y
2
=
y
′
,
y_2 = y',
y2=y′,
y
3
=
y
′
′
,
y_3 = y'',
y3=y′′,
⋮
\vdots
⋮
y
n
=
y
(
n
−
1
)
.
y_n = y^{(n-1)}.
yn=y(n−1).
这样,原方程可以重新写为一组 n 个一阶微分方程:
y
1
′
=
y
2
,
y_1' = y_2,
y1′=y2,
y
2
′
=
y
3
,
y_2' = y_3,
y2′=y3,
⋮
\vdots
⋮
y
n
−
1
′
=
y
n
,
y_{n-1}' = y_n,
yn−1′=yn,
y
n
′
=
−
a
0
(
x
)
y
1
−
a
1
(
x
)
y
2
−
⋯
−
a
n
−
1
(
x
)
y
n
.
y_n' = -a_0(x)y_1 - a_1(x)y_2 - \cdots - a_{n-1}(x)y_n.
yn′=−a0(x)y1−a1(x)y2−⋯−an−1(x)yn.
这些方程可以写成矩阵形式:
y ′ ( x ) = A ( x ) y ( x ) , \mathbf{y}'(x) = A(x)\mathbf{y}(x), y′(x)=A(x)y(x),
其中,
y ( x ) = ( y 1 ( x ) y 2 ( x ) ⋮ y n ( x ) ) , \mathbf{y}(x) = \begin{pmatrix} y_1(x) \\ y_2(x) \\ \vdots \\ y_n(x) \end{pmatrix}, y(x)= y1(x)y2(x)⋮yn(x) ,
并且
A ( x ) = ( 0 1 0 ⋯ 0 0 0 1 ⋯ 0 ⋮ ⋮ ⋮ ⋱ ⋮ 0 0 0 ⋯ 1 − a 0 ( x ) − a 1 ( x ) − a 2 ( x ) ⋯ − a n − 1 ( x ) ) . A(x) = \begin{pmatrix} 0 & 1 & 0 & \cdots & 0 \\ 0 & 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & 1 \\ -a_0(x) & -a_1(x) & -a_2(x) & \cdots & -a_{n-1}(x) \end{pmatrix}. A(x)= 00⋮0−a0(x)10⋮0−a1(x)01⋮0−a2(x)⋯⋯⋱⋯⋯00⋮1−an−1(x) .
6.3 特征分解
如果 a i ( x ) a_i(x) ai(x)(i=0, 1, …, n-1)都是常数,那么矩阵 A A A 也是常数矩阵,此时可以进行特征分解。
特征值 λ \lambda λ 可以通过解以下特征方程找到:
det ( A − λ I ) = 0 , \det(A - \lambda I) = 0, det(A−λI)=0,
其中 I I I 是 n×n 的单位矩阵。
解得 λ \lambda λ 后,可以找到对应的特征向量 v \mathbf{v} v。
6.4 方程通解
如果 λ i \lambda_i λi 和 v i \mathbf{v}_i vi 分别是 A A A 的特征值和特征向量,则解的一般形式可以表示为:
y ( x ) = ∑ i = 1 n c i e λ i x v i , \mathbf{y}(x) = \sum_{i=1}^{n} c_i e^{\lambda_i x} \mathbf{v}_i, y(x)=∑i=1ncieλixvi,
其中 c i c_i ci 是常数,由初始条件确定。
需要注意的是,当特征值是复数或多重根时,解的形式会有所不同,并且可能需要使用广义特征向量或其他方法来构造完整的解集。此外,如果系数不是常数,那么情况会复杂得多,通常需要其他技术来求解。