當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。