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


Julia LinearAlgebra.hessenberg用法及代码示例


用法:

hessenberg(A) -> Hessenberg

计算 A 的 Hessenberg 分解并返回一个 Hessenberg 对象。如果 F 是分解对象,可以使用 F.Q(类型为 LinearAlgebra.HessenbergQ)和 Hessenberg 矩阵使用 F.H(类型为 UpperHessenberg )访问酉矩阵,其中任何一个都可以转换为带有 Matrix(F.H)Matrix(F.Q) 的常规矩阵。

如果 A Hermitian 或实数- Symmetric ,则 Hessenberg 分解会生成实数对称三对角矩阵,并且 F.H 的类型是 SymTridiagonal

请注意,移位分解 A+μI = Q (H+μI) Q' 可以通过 F + μ*I 使用 UniformScaling 对象 I 有效地构造,该对象创建具有共享存储和修改移位的新 Hessenberg 对象。给定 F 的位移由 F.μ 获得。这很有用,因为一旦创建 F,就可以有效地执行多个移位求解 (F + μ*I) \ b(对于不同的 μ 和/或 b )。

迭代分解产生因子 F.Q, F.H, F.μ

例子

julia> A = [4. 9. 7.; 4. 4. 1.; 4. 3. 2.]
3×3 Matrix{Float64}:
 4.0  9.0  7.0
 4.0  4.0  1.0
 4.0  3.0  2.0

julia> F = hessenberg(A)
Hessenberg{Float64, UpperHessenberg{Float64, Matrix{Float64}}, Matrix{Float64}, Vector{Float64}, Bool}
Q factor:
3×3 LinearAlgebra.HessenbergQ{Float64, Matrix{Float64}, Vector{Float64}, false}:
 1.0   0.0        0.0
 0.0  -0.707107  -0.707107
 0.0  -0.707107   0.707107
H factor:
3×3 UpperHessenberg{Float64, Matrix{Float64}}:
  4.0      -11.3137      -1.41421
 -5.65685    5.0          2.0
   ⋅        -1.0444e-15   1.0

julia> F.Q * F.H * F.Q'
3×3 Matrix{Float64}:
 4.0  9.0  7.0
 4.0  4.0  1.0
 4.0  3.0  2.0

julia> q, h = F; # destructuring via iteration

julia> q == F.Q && h == F.H
true

相关用法


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