逆矩阵c语言

逆矩阵c语言,第1张

以递归的形式写的一个求逆矩阵的c语音程序源码在后面

 

 

 #include
#include
#define N 9
float hang_lie_shi(int n,double a[N][N]){
    double b[N][N];
    int i,j;
    double sum=0;
    int c=0,p=0;
    if(n==1){
        return a[0][0];
    }
    for(i=0;i
        for(c=0;c
            for(j=0;j
                if(c
                    p=0;
                }
                else{
                    p=1;
                }
                b[c][j]=a[c+p][j+1];
            }
        }
        sum=sum+a[i][0]*hang_lie_shi(n-1,b)*pow(-1,i);
    }
    return sum;
}
int main(){
    int n;//阶数
    int i,j,i1,i2,j1,j2;
    double a[N][N],b[N][N],c[N][N];
    double d;//行列式的值
    printf("请输入矩阵的阶数\n");
    scanf("%d",&n);
    printf("请输入矩阵\n");
    for (i=0;i     {
        for(j=0;j
            scanf("%lf",&a[i][j]);
        }
    }
    printf("原矩阵为:\n");
    for(i=0;i
        for(j=0;j
            printf("%10lf",a[i][j]);
        }
        printf("\n");
    }
    d=hang_lie_shi(n,a);
    if(d==0)
        printf("该矩阵无逆矩阵");
    else{
        printf("矩阵的行列式为%f\n",d);
          if(n==1)
              c[0][0]=1.0/d;
            else if(n>1){
              for(i=0;i<=n-1;i++){
                  for(j=0;j<=n-1;j++){
                      for(i1=0,i2=0;i2
                          for(j1=0,j2=0;j2
                              if(i1==i){
                                  i1++;
                              }
                               if(j1==j){
                                  j1++;
                              }
                              b[i2][j2]=a[i1][j1];
                          }
                      }
                     if(pow(-1,i+j)*hang_lie_shi(n-1,b)==0||d==0){
                         c[j][i]=0.000000;
                     }else{
                          c[j][i]=pow(-1,i+j)*hang_lie_shi(n-1,b)/d;
                     }
                  }
              }
            }
            printf("逆矩阵为\n");
          for(i=0;i
              for(j=0;j
                  printf("%10lf",c[i][j]);
              }
                printf("\n");
          }
    }
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/563245.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存