數(shù)據(jù)結(jié)構(gòu)算法:矩陣求逆算法

字號:

/**
    * 求矩陣A的逆矩陣Ai
    *@param A 源矩陣
    *@param Ai 逆矩陣
    *@param size 矩陣的大小
    *@return 求解成功返回非零值,失敗返回零
    */
    int InverseMatrix(double **Ai, double **A, int size)
    {
    int i, j;
    double *b, *x;
    b = (double*)malloc(sizeof(double)*size);
    x = (double*)malloc(sizeof(double)*size);  
    for (i = 0; i < size; i++)
    {
    memset(b, 0, sizeof(double)*size);
    b[i] = 1;
    if (!LinearEquation(A, x, b, size))
    {
    free(b);
    free(x);
    return 0;
    }
    for (j = 0; j < size; j++)
    Ai[j][i] = x[j];
    }
    free(b);
    free(x);
    return 1;
    }