矩阵的lu分解:满秩矩阵的LU分解



/**
*LU分解(V2非递归法)
*@param A (in)输入矩阵
*@param L (out)输出L阵
*@param U (out)输出U阵
*@param size (in)矩阵大小
*@ 分解成功返回非零值失败返回零
*/
LUDecomposition(double **A, double **L, double **U, size)
{
i, j, k;

double **Ax;

Ax = (double**)malloc((double*)*size);

for (i = 0; i < size; i)
Ax[i] = (double*)malloc((double)*size);

for (i = 0; i < size; i)
for (j = 0; j < size; j)
Ax[i][j] = A[i][j];

for (i = 1; i < size; i)
for (j = 0; j < i; j)
U[i][j] = 0;

for (i = 0; i < size; i)
{
L[i][i] = 1;
for (j = i+1; j < size; j)
L[i][j] = 0;
}

for (k = 0; k < size; k)
{
U[k][k] = Ax[k][k];
for (i = k+1; i < size; i)
{
L[i][k] = Ax[i][k] / U[k][k];
U[k][i] = Ax[k][i];
}
for (i = k+1; i < size; i)
for (j = k+1; j < size; j)
Ax[i][j] = Ax[i][j] - L[i][k] * U[k][j];
}

for (i = 0; i < size; i)
free(Ax[i]);
free(Ax);

1;
}
Tags:  矩阵的秩 满秩分解 满秩矩阵 矩阵的lu分解

延伸阅读

最新评论

发表评论