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.