MtxExpr.LUSolve Method

Overload List

#SignatureDescription
1function LUSolve(const B: TMtx; const A: TMtx; MtxType: TMtxType; Operation: TMtxOperation): Matrix;Returns the X from LU solving A*X = B.
2function LUSolve(const B: TVec; const A: TMtx; MtxType: TMtxType; Operation: TMtxOperation): Vector;Returns the X from LU solving A*X = B.

Overload 1: function LUSolve(const B: TMtx; const A: TMtx; MtxType: TMtxType; Operation: TMtxOperation): Matrix;

Returns the X from LU solving A*X = B.

#NameTypeDescription
1BTMtx
2ATMtx
3MtxTypeTMtxType
4OperationTMtxOperation

Returns: Matrix

Remarks:

Internally calls Matrix.LUSolve

Examples
aXY =   (X Row index, Y Column index)

[a11,  a12,  a13,      0,     0,     0]
[a21,  a22,  a23,  a24,     0,     0]
[a31,  a32,  a33,  a34,  a35,     0]
[0,      a42,  a43,  a44,  a45, a46]
[0,          0,  a53,  a54,  a55, a56]
[0,          0,      0,  a64,  a65, a66]

A.SubDiag := 2;
A.SuperDiag := 2;
A.Size(5,6);   // 5 here is the number of rows for the banded, not for the dense matrix storage format

[0   ,  0,  a13, a24 ,a35, a46]    second upper diagonal
[0   , a12, a23, a34, a45, a56]     first upper diagonal
[a11 , a22, a33, a44, a55, a66]      main diagonal
[a21 , a32, a43, a54, a65,   0]     first lower diagonal
[a31 , a42, a53, a64,   0,   0]     second lower diagonal

Overload 2: function LUSolve(const B: TVec; const A: TMtx; MtxType: TMtxType; Operation: TMtxOperation): Vector;

Returns the X from LU solving A*X = B.

#NameTypeDescription
1BTVec
2ATMtx
3MtxTypeTMtxType
4OperationTMtxOperation

Returns: Vector

Remarks:

Internally calls Matrix.LUSolve