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


Julia LinearAlgebra.ldiv!用法及代碼示例


用法一

ldiv!(Y, A, B) -> Y

就地計算 A \ B 並將結果存儲在 Y 中,返回結果。

參數 A 應該 not 是一個矩陣。相反,它應該是一個分解對象,而不是矩陣(例如,由 factorize cholesky 生成)。原因是分解本身既昂貴又通常分配內存(盡管它也可以通過例如 lu! 就地完成),並且需要 ldiv! 的 performance-critical 情況通常也需要細粒度控製在 A 的因式分解上。

例子

julia> A = [1 2.2 4; 3.1 0.2 3; 4 1 2];

julia> X = [1; 2.5; 3];

julia> Y = zero(X);

julia> ldiv!(Y, qr(A), X);

julia> Y
3-element Vector{Float64}:
  0.7128099173553719
 -0.051652892561983806
  0.10020661157024781

julia> A\X
3-element Vector{Float64}:
  0.7128099173553719
 -0.05165289256198342
  0.1002066115702479

用法二

ldiv!(A, B)

就地計算 A \ B 並覆蓋 B 以存儲結果。

參數 A 應該 not 是一個矩陣。相反,它應該是一個分解對象,而不是矩陣(例如,由 factorize cholesky 生成)。原因是分解本身既昂貴又通常分配內存(盡管它也可以通過例如 lu! 就地完成),並且需要 ldiv! 的 performance-critical 情況通常也需要細粒度控製在 A 的因式分解上。

例子

julia> A = [1 2.2 4; 3.1 0.2 3; 4 1 2];

julia> X = [1; 2.5; 3];

julia> Y = copy(X);

julia> ldiv!(qr(A), X);

julia> X
3-element Vector{Float64}:
  0.7128099173553719
 -0.051652892561983806
  0.10020661157024781

julia> A\Y
3-element Vector{Float64}:
  0.7128099173553719
 -0.05165289256198342
  0.1002066115702479

用法三

ldiv!(a::Number, B::AbstractArray)

將數組 B 中的每個條目除以標量 a 就地覆蓋 B。使用 rdiv! 從右除標量。

例子

julia> B = [1.0 2.0; 3.0 4.0]
2×2 Matrix{Float64}:
 1.0  2.0
 3.0  4.0

julia> ldiv!(2.0, B)
2×2 Matrix{Float64}:
 0.5  1.0
 1.5  2.0

相關用法


注:本文由純淨天空篩選整理自julialang.org 大神的英文原創作品 LinearAlgebra.ldiv! — Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。