全文预览

n阶方阵求逆(精选)

上传者:upcfxx |  格式:doc  |  页数:10 |  大小:0KB

文档介绍
f((fmax+1.0)==1.0)Р { Р free(is);free(js);Р return 0;Р }Р 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);Р return 1;Р}Рvoid swap(double a,double b)Р{ Р?double c;Р c=a;Р a=b;Р b=c;Р}

收藏

分享

举报
下载此文档