bkfact

..  bkfact(A) -> BunchKaufman

Compute the Bunch-Kaufman [Bunch1977]_ factorization of a real symmetric or complex Hermitian matrix ``A`` and return a ``BunchKaufman`` object. The following functions are available for ``BunchKaufman`` objects: ``size``, ``\``, ``inv``, ``issym``, ``ishermitian``.

.. [Bunch1977] J R Bunch and L Kaufman, Some stable methods for calculating inertia and solving symmetric linear systems, Mathematics of Computation 31:137 (1977), 163-179. `url <http://www.ams.org/journals/mcom/1977-31-137/S0025-5718-1977-0428694-0>`_.

Examples

The bkfact function in Julia computes the Bunch-Kaufman factorization of a real symmetric or complex Hermitian matrix A and returns a BunchKaufman object. The BunchKaufman object has the following functions available: size, transpose, inv, issym, and ishermitian.

Here are some examples of how to use the bkfact function:

julia> A = [4.0 1.0 1.0; 1.0 5.0 2.0; 1.0 2.0 6.0];
julia> bk = bkfact(A)
BunchKaufman{Float64,Array{Float64,2}}
D factor:
3-element Array{Float64,1}:
 4.0
 4.0
 4.0
L factor:
3×3 Array{Float64,2}:
 1.0  0.0  0.0
 0.25 1.0  0.0
 0.25 0.4  1.0

julia> B = [1.0+2.0im 2.0-1.0im 3.0+4.0im; 2.0+1.0im 1.0+3.0im 4.0-2.0im; 3.0-4.0im 4.0+2.0im 1.0-5.0im];
julia> bk = bkfact(B)
BunchKaufman{ComplexF64,Array{ComplexF64,2}}
D factor:
3-element Array{ComplexF64,1}:
   1.0 +  2.0im
 -12.0 +  0.0im
  -4.0 -  8.0im
L factor:
3×3 Array{ComplexF64,2}:
 1.0+0.0im  0.0+0.0im  0.0+0.0im
 2.0-1.0im  1.0+0.0im  0.0+0.0im
 3.0+4.0im  4.0-2.0im  1.0+0.0im

Note: In the examples above, the matrices A and B are used to demonstrate the usage of bkfact function. The resulting BunchKaufman object bk contains the D factor and L factor of the factorization.

For more information on the Bunch-Kaufman factorization, you can refer to the research paper by Bunch and Kaufman titled "Some stable methods for calculating inertia and solving symmetric linear systems" published in Mathematics of Computation in 1977.

See Also

User Contributed Notes

Add a Note

The format of note supported is markdown, use triple backtick to start and end a code block.

*Required Field
Details

Checking you are not a robot: