当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia LinearAlgebra.schur用法及代码示例


用法一

schur(A::StridedMatrix) -> F::Schur

计算矩阵 A 的 Schur 分解。 (准)三角 Schur 因子可以从 Schur 对象 F 使用 F.SchurF.T 获得,正交/单一 Schur 向量可以使用 F.vectorsF.Z 获得,使得 A = F.vectors * F.Schur * F.vectors' . A 的特征值可以通过 F.values 获得。

对于实数 A ,Schur 分解是 "quasitriangular",这意味着它是 upper-triangular,但对于任何共轭复特征值对有 2×2 对角块;即使存在复杂的特征值,这也允许分解是纯实的。要从真正的准三角分解中获得(复杂的)纯 upper-triangular Schur 分解,您可以使用 Schur{Complex}(schur(A))

迭代分解生成组件 F.TF.ZF.values

例子

julia> A = [5. 7.; -2. -4.]
2×2 Matrix{Float64}:
  5.0   7.0
 -2.0  -4.0

julia> F = schur(A)
Schur{Float64, Matrix{Float64}}
T factor:
2×2 Matrix{Float64}:
 3.0   9.0
 0.0  -2.0
Z factor:
2×2 Matrix{Float64}:
  0.961524  0.274721
 -0.274721  0.961524
eigenvalues:
2-element Vector{Float64}:
  3.0
 -2.0

julia> F.vectors * F.Schur * F.vectors'
2×2 Matrix{Float64}:
  5.0   7.0
 -2.0  -4.0

julia> t, z, vals = F; # destructuring via iteration

julia> t == F.T && z == F.Z && vals == F.values
true

用法二

schur(A::StridedMatrix, B::StridedMatrix) -> F::GeneralizedSchur

计算矩阵 AB 的广义舒尔(或 QZ)分解。 (准)三角舒尔因子可以从 Schur 对象 FF.SF.T 获得,左酉/正交舒尔矢量可以通过 F.leftF.Q 和右酉获得/正交 Schur 向量可以通过 F.rightF.Z 获得,使得 A=F.left*F.S*F.right'B=F.left*F.T*F.right'AB的广义特征值可以用F.α./F.β得到。

迭代分解产生组件 F.SF.TF.QF.ZF.αF.β

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 LinearAlgebra.schur — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。