Thuật toán Crout phân rã LU
Quá trình chuyển hoá ma trận ban đầu thành tích hai ma trân tam giác dựa vào phép khử Gauss được thực hiện bằng các phép nhân ma trận. Thuật toán này được gọi là thuật toán Crout. Quá trình Crout bao gồm nhiều bước hồi quy. Nếu ma trận có cấp ta cần bước. Thuật toán được thể hiện cụ thể như sau:
Thông qua bước hồi quy ta được với là ma trận tam giác dưới và là ma trận tam giác trên.
Code:
void PhanRaLU(float A[max][max], float L[max][max], float U[max][max], int n) {
for(int k =0; k<n; k++) {
U[k][k] = A[k][k];
L[k][k] = 1;
for(int i=k+1; i<n; i++) {
L[i][k] = A[i][k]/U[k][k];
U[k][i] = A[k][i];
}
for(i = k+1; i<n; i++)
for(int j = k+1; j<n; j++)
A[i][j] = A[i][j]-L[i][k]*U[k][j];
}
}
BÀI TẬP: