LU
Phân tích LU của một ma trận thành tích của một ma trận tam giác dưới và một ma trận tam giác trên.
cpp
bool matrix::LU(
matrix& L, // ma trận tam giác dưới
matrix& U // ma trận tam giác trên
);
1
2
3
4
2
3
4
Tham số
L
[out] Ma trận tam giác dưới.
U
[out] Ma trận tam giác trên.
Giá trị trả về
Trả về true nếu thành công, false nếu không.
Ví dụ
cpp
matrix matrix_a={{1,2,3,4},
{5,2,6,7},
{8,9,3,10},
{11,12,14,4}};
matrix matrix_l,matrix_u;
//--- phân tích LU
matrix_a.LU(matrix_l,matrix_u);
Print("matrix_l\n",matrix_l);
Print("matrix_u\n",matrix_u);
//--- kiểm tra xem A = L * U
Print("check\n",matrix_l.MatMul(matrix_u));
/*
matrix_l
[[1,0,0,0]
[5,1,0,0]
[8,0.875,1,0]
[11,1.25,0.5904761904761905,1]]
matrix_u
[[1,2,3,4]
[0,-8,-9,-13]
[0,0,-13.125,-10.625]
[0,0,0,-17.47619047619047]]
check
[[1,2,3,4]
[5,2,6,7]
[8,9,3,10]
[11,12,14,4]]
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28