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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。