gpt4 book ai didi

julia - Julia 中的左右特征向量

转载 作者:行者123 更新时间:2023-12-04 01:43:44 29 4
gpt4 key购买 nike

我有一个一般的实数矩阵(即非对称或 Hermitian 等),我想在 Julia 中找到它的右特征向量和对应的左特征向量。

Julia 的 eigen 函数只返回正确的特征向量。我可以通过做找到左特征向量

本征(复制(M'))

但这需要复制整个矩阵并再次进行特征分解,并且不能保证特征向量的顺序相同。 (copy 是必需的,因为 Adjoint 类型的矩阵没有eigen 方法。)

在 Python 中,我们有 scipy.linalg.eigs,它可以在一次传递中同时计算左右特征向量,这样效率更高,并保证它们的顺序相同。 Julia 中有类似的东西吗?

最佳答案

可以通过取由右特征向量形成的矩阵的逆来计算左特征向量:

using LinearAlgebra   
A = [1 0.1; 0.1 1]
F = eigen(A)
Q = eigvecs(F) # right eigenvectors
QL = inv(eigvecs(F)) # left eigenvectors
Λ = Diagonal(eigvals(F))
# check the results
A * Q ≈ Q * Λ # returns true
QL * A ≈ Λ * QL # returns true, too
# in general we have:
A ≈ Q * Λ * inv(Q)

在上面的例子中,QL 是左特征向量。

如果将左特征向量应用于向量,计算 Q\vinv(QL)*v 更可取。

关于julia - Julia 中的左右特征向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56214666/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com