全文预览

n阶方阵求逆

上传者:非学无以广才 |  格式:doc  |  页数:10 |  大小:0KB

文档介绍
(int*)malloc(n*sizeof(int));for(k=0;k<n;k++){fmax=0.0;for(i=k;i<n;i++){for(j=k;j<n;j++){temp=fabs(a[i][j]);//找最大值if(temp>fmax){fmax=temp;is[k]=i;js[k]=j;}}}if((fmax+1.0)==1.0){free(is);free(js);return0;}if((i=is[k])!=k){for(j=0;j<n;j++){swap(a[k][j],a[i][j]);//第k行和第i列交换}}if((j=js[k])!=k){for(i=0;i<n;i++){swap(a[i][k],a[i][j]);//第k列和第j列交换}}a[k][k]=1.0/a[k][k];//求倒for(j=0;j<n;j++){if(j!=k){a[k][j]*=a[k][k];//第k行的每一个元素都除以主对角线上的元素}}for(i=0;i<n;i++){if(i!=k){for(j=0;j<n;j++){if(j!=k){a[i][j]=a[i][j]-a[i][k]*a[k][j];}}}}for(i=0;i<n;i++){if(i!=k){a[i][k]*=-a[k][k];}}}for(k=n-1;k>=0;k--){if((j=js[k])!=k){for(i=0;i<n;i++){swap(a[j][i],a[k][i]);//第j行与第k行交换}}if((i=is[k])!=k){for(j=0;j<n;j++){swap(a[j][i],a[j][k]);//第i列与第k列交换}}}free(is);free(js);return1;}voidswap(doublea,doubleb){doublec;c=a;a=b;b=c;}

收藏

分享

举报
下载此文档