将矩阵分解为正交矩阵与对称正定矩阵
时间: 2024-05-06 12:11:49 浏览: 181
将矩阵分解为正交矩阵与对称正定矩阵的过程被称为正交对角化。下面是一个简单的步骤:
1. 对于一个$n \times n$的实对称矩阵$A$,可以通过特征值分解得到$A$的特征值和特征向量。设$A$的特征值为$\lambda_1,\lambda_2,...,\lambda_n$,对应的特征向量为$v_1,v_2,...,v_n$,则有$Av_i=\lambda_iv_i$。
2. 将特征向量$v_1,v_2,...,v_n$组成一个$n \times n$的矩阵$V=[v_1,v_2,...,v_n]$,则$V$是一个正交矩阵,即$V^TV=VV^T=I$,其中$I$是单位矩阵。
3. 将特征值$\lambda_1,\lambda_2,...,\lambda_n$组成一个$n \times n$的对角矩阵$\Lambda=diag(\lambda_1,\lambda_2,...,\lambda_n)$。
4. 则有$A=V\Lambda V^T$,即$A$可以分解为一个正交矩阵$V$和一个对称正定矩阵$\Lambda$的乘积。
下面是一个Python的实现:
```python
import numpy as np
# 定义一个实对称矩阵
A = np.array([[4, 2, 2], [2, 5, 1], [2, 1, 6]])
# 特征值分解
eigenvalues, eigenvectors = np.linalg.eig(A)
# 构造正交矩阵
V = eigenvectors
# 构造对角矩阵
Lambda = np.diag(eigenvalues)
# 正交对角化
A_orthogonal = V @ Lambda @ V.T
print("原矩阵A:\n", A)
print("正交矩阵V:\n", V)
print("对角矩阵Lambda:\n", Lambda)
print("正交对角化结果:\n", A_orthogonal)
```
阅读全文