eigfact(A,?,?,?,?)

``````..  eigfact(A,[irange,][vl,][vu,][permute=true,][scale=true]) -> Eigen

Computes the eigenvalue decomposition of ``A``, returning an ``Eigen``
factorization object ``F`` which contains the eigenvalues in ``F[:values]``
and the eigenvectors in the columns of the matrix ``F[:vectors]``.
(The ``k``\ th eigenvector can be obtained from the slice ``F[:vectors][:, k]``.)

The following functions are available for ``Eigen`` objects: ``inv``,
``det``.

If ``A`` is :class:`Symmetric`, :class:`Hermitian` or :class:`SymTridiagonal`,
it is possible to calculate only a subset of the eigenvalues by specifying
either a :class:`UnitRange` ``irange`` covering indices of the sorted
eigenvalues or a pair ``vl`` and ``vu`` for the lower and upper boundaries
of the eigenvalues.

For general nonsymmetric matrices it is possible to specify how the matrix
is balanced before the eigenvector calculation. The option ``permute=true``
permutes the matrix to become closer to upper triangular, and ``scale=true``
scales the matrix by its diagonal elements to make rows and columns more
equal in norm. The default is ``true`` for both options.``````

Examples

The `eigfact(A, B)` function in Julia computes the generalized eigenvalue decomposition of matrices `A` and `B`. It returns a `GeneralizedEigen` factorization object `F`, which contains the generalized eigenvalues in `F[:values]` and the generalized eigenvectors in the columns of the matrix `F[:vectors]`. The `k`-th generalized eigenvector can be obtained from the slice `F[:vectors][:, k]`.

Here are some examples of how to use the `eigfact` function:

1. Compute generalized eigenvalue decomposition:

``````julia> A = [1 2; 3 4];
julia> B = [5 6; 7 8];
julia> F = eigfact(A, B);
julia> F[:values]
2-element Array{Complex{Float64},1}:
-0.372281+0.0im
5.37228+0.0im

julia> F[:vectors]
2×2 Array{Complex{Float64},2}:
-0.823317+0.0im  -0.415974-0.0im
0.567767+0.0im   0.909376+0.0im``````

This example computes the generalized eigenvalue decomposition of matrices `A` and `B` and stores the result in `F`. The eigenvalues can be accessed using `F[:values]` and the eigenvectors can be accessed using `F[:vectors]`.

2. Access specific generalized eigenvectors:
``````julia> eigvec_1 = F[:vectors][:, 1]
2-element Array{Complex{Float64},1}:
-0.8233165660600293 + 0.0im
0.5677672769869273 + 0.0im``````

In this example, we access the first generalized eigenvector by indexing `F[:vectors][:, 1]`.

Please note that the above examples assume that the matrices `A` and `B` have appropriate dimensions for the generalized eigenvalue decomposition.