【发布时间】:2021-07-20 13:13:50
【问题描述】:
我在 Julia 中经历了一些 tutorial on factorization。为了练习,我尝试从矩阵中提取特征分解并重新创建原始矩阵,使用公式:
A = VλV⁻¹
其中 V 是特征向量矩阵,λ 是特征值对角矩阵,V⁻¹ 是倒矩阵 V。
让我感到困惑的是,特征值是作为向量返回的,而我发现的 guides 表明它应该作为对角矩阵返回。
代码示例:
using LinearAlgebra
# Create matrix
A = rand(3, 3)
# Eigendecomposition
AEig = eigen(A)
λ = AEig.values
3-element Vector{Float64}:
V = AEig.vectors
3×3 Matrix{Float64}:
Acomp = V*λ*inv(V)
A ≈ Acomp
尝试将向量和矩阵相乘会返回错误:
DimensionMismatch("A has dimensions (3,1) but B has dimensions (3,3)")
这是因为将 V 与 λ 相乘返回一个 3 元素向量,然后尝试将其与 V⁻¹ 相乘,这是一个 3×3 矩阵。我的问题是,有没有一种直接的方法可以从向量创建对角矩阵?或者,是否可以通过另一种方式实现对原始矩阵的“重组”?
【问题讨论】:
标签: julia matrix-multiplication eigenvalue matrix-decomposition