高斯约当法求逆矩阵的算法实现(C++)

来源:互联网 发布:linux 查看home目录 编辑:程序博客网 时间:2024/06/05 14:14
#include"iostream.h"#include"math.h"void main(){float a[10][10],A[10][10],b[10],c[10][10],d=0,f=0;int i=0,j=0,k=1,l=0,m=0,n=0;//------------------------------------------------------------------cout<<"请输入你所求矩阵的阶数:\n";cin>>n;cout<<"请输入原矩阵:\n";for(int r=1;r<=n;r++){cout<<"|";for(int s=1;s<=n;s++){cin>>c;}}//------------------------------------------------------------------for(m=1;m<=n;m++){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){a=c;}}for(i=1;i<=n;i++){b=0;}b=1;//*******************************************************************************//************************列选主元************************for(k=1;k<=n;k++){d=a;l=k;for(i=k+1;i<=n;i++){if(fabs(a)>fabs(d)){d=a;l=i;}}if(l!=k){for(j=k;j<=n;j++){f=a;a=a;a=f;}f=b;b=b;b=f;}//************************消元************************for(j=k+1;j<=n;j++){a=a/a;//第k行除以主元}b=b/a;//第k行除以主元for(i=1;i<=n;i++){if(i!=k){for(j=k+1;j<=n;j++){a=a-a*a;}b=b-a*b;}}}//*******************************************************************************for(i=1;i<=n;i++){A=b;}}cout<<"该矩阵的逆矩阵为:\n\n";for(i=1;i<=n;i++){cout<<"|";for(j=1;j<=n;j++){cout<<' '<<A<<' ';}cout<<"|";cout<<endl<<endl;}//------------------------------------------------------------------}

0 0
原创粉丝点击