当前位置: 首页 > 知识库问答 >
问题:

用高斯-乔丹消去法求MxM矩阵的逆矩阵

李云
2023-03-14

现在,我想我明白了这个概念。但是当我把它们都放入代码中时,它就不起作用了……

首先,我试图将矩阵转换为上三角矩阵,但由于某种原因,在第2列之后,它停止工作。。

我输入的数组是:

[1.00][5.00][4.00][4.00][1.00]

[5.00] [7.00] [7.00] [4.00] [8.00]

[7.00] [4.00] [8.00] [4.00] [7.00]

[10.00][12.00][8.00][4.00][3.00]

[10.00] [12.00] [13.00] [4.00] [3.00]

输出,输出

double** inverseMatrix(double **matA, int dimension)
{

    double** matInverse=malloc(dimension*sizeof(double*)); 
    double **holder = matA;

    for(int i = 0; i < dimension; i++){

        matInverse[i] = malloc(dimension*sizeof(matInverse[0]));
    }

    for(int i = 0; i < dimension; i++){
        for(int j = 0; j < dimension; j++){
            matInverse[i][j] = 0.0;
        }
        matInverse[i][i] = 1.0;
    }




   for(int i = 0; i < dimension; i++){


        double pivot = holder[i][i];
        for(int j = 0; j < dimension; j++){
            
            holder[i][j] = (holder[i][j]/pivot);
            matInverse[i][j] = (matInverse[i][j]/pivot);
        }

            for(int row = i+1; row < dimension; row++){
                int number = holder[row][i];
                for(int col = 0; col < dimension; col++){
                    holder[row][col] = holder[row][col] - (holder[i][col] * number);
                    matInverse[row][col] = matInverse[row][col] - (matInverse[i][col] * number);
                }
                
            }
                
            
              
    }

共有1个答案

袁奇逸
2023-03-14

虽然该函数不完整,并且我们无法判断调用者站点是否存在其他问题,但可以在发布的片段中检测到错误:

int number = holder[row][i];

这里的< code>number应该是< code>double。

 类似资料:
  • 所以我试图通过高斯-乔丹消除找到矩阵的逆矩阵(使用 Python 列表)。但我正面临这个特殊的问题。在下面的代码中,我将我的代码应用于给定的矩阵,并按预期简化为单位矩阵。 输出为 但是当我应用相同的代码时,在为我的单位矩阵(它是给定矩阵的增广矩阵的一部分)添加代码行后,它没有在应该给我的时候给我正确的逆(因为我对它应用了与对给定矩阵应用相同的操作)。 输出不是逆矩阵,而是其他东西(尽管最后一列有正

  • 我知道我听起来很蠢,但我真的需要理解高斯-乔丹消去c程序。我已经试图理解编码,但逐行阅读代码仍然令人困惑。尤其是for(j = 1;英语字母表中第十个字母

  • 我正在编写代码以在python中消除高斯 - 乔丹。我的指示如下: 到目前为止,我已经: 这是正确的开始吗?我对下一步该去哪里感到很迷茫。输入将是一个 Numpy 数组。任何想法都非常感谢!

  • 我现在正在研究一个 c 代码库,它使用矩阵库来计算各种东西。其中一件事是计算矩阵的逆。它使用高斯消除来实现这一点。但结果非常不准确。如此之多,以至于将逆矩阵与原始矩阵相乘甚至不会接近单位矩阵。 下面是用于计算逆矩阵的代码,矩阵以数字类型以及行和列为模板: 现在我已经做了一个单元测试,使用预先计算的值来测试逆是否正确。我尝试了两个矩阵,一个3x3,一个4x4。我用这个网站来计算逆:https://m

  • 本文向大家介绍java实现的n*n矩阵求值及求逆矩阵算法示例,包括了java实现的n*n矩阵求值及求逆矩阵算法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java实现的n*n矩阵求值及求逆矩阵算法。分享给大家供大家参考,具体如下: 先来看看运行结果: java版的写出来了,用的跟c语言相同的算法,然后看看能不能以后加个框做成程序: 更多关于java算法相关内容感兴趣的读者可查看本站

  • 我目前正在做一个音频信号处理项目,需要在Java中的一个复杂矩阵上使用SVD。我当前的线性代数库是Apache Commons。但它只提供实矩阵的SVD,JAMA、JBLAS、EJML、ojAlgo都不支持复杂的SVD。 我一直在用一些技巧从一个等效的实矩阵中找到SVD。然而,当我重建矩阵时,这种技术对于虚部有很大的不准确性。