欢迎来到天天文库
浏览记录
ID:53880703
大小:51.50 KB
页数:7页
时间:2020-04-10
《求逆矩阵的C++程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//*************************//***求任何一个矩阵的逆***//*************************#include#include#include#defineN10//定义方阵的最大阶数为10//函数的声明部分floatMatDet(float*p,intn);//求矩阵的行列式floatCreat_M(float*p,intm,intn,intk);//求矩阵元素A(m,n)的代数余之式voidprint(fl
2、oat*p,intn);//输出矩阵n*nboolGauss(floatA[][N],floatB[][N],intn);//采用部分主元的高斯消去法求方阵A的逆矩阵Bintmain(){float*buffer,*p;//定义数组首地址指针变量introw,num;//定义矩阵的行数和矩阵元素个数inti,j;floatdeterm;//定义矩阵的行列式floata[N][N],b[N][N];intn;cout<<"采用逆矩阵的定义法求矩阵的逆矩阵!";cout<<"请输入矩阵的行数:";cin>>row;
3、num=2*row*row;buffer=(float*)calloc(num,sizeof(float));//分配内存单元p=buffer;if(NULL!=p){for(i=0;i>*p++;}}}else{cout<<"Can'tdistributememory";}cout<<"Theoriginalmatrix:";print(buffer,r
4、ow);//打印该矩阵determ=MatDet(buffer,row);//求整个矩阵的行列式p=buffer+row*row;if(determ!=0){cout<<"Thedeterminantofthematrixis"<5、,row);//打印该矩阵}else{cout<<"Thedeterminantis0,andthereisnoinversematrix!";}free(buffer);//释放内存空间cout<<"采用部分主元的高斯消去法求方阵的逆矩阵!";cout<<"请输入方阵的阶数:";cin>>n;cout<<"请输入"<>a[i][j];}}//运用高斯消去法求该矩阵的逆矩阵并输出if(G6、auss(a,b,n)){cout<<"该方阵的逆矩阵为:";for(i=0;i7、(float*p,intn){intr,c,m;intlop=0;floatresult=0;floatmid=1;if(n!=1){lop=(n==2)?1:n;//控制求和循环次数,若为2阶,则循环1次,否则为n次for(m=0;m8、=0,c=n-1-m+n;r
5、,row);//打印该矩阵}else{cout<<"Thedeterminantis0,andthereisnoinversematrix!";}free(buffer);//释放内存空间cout<<"采用部分主元的高斯消去法求方阵的逆矩阵!";cout<<"请输入方阵的阶数:";cin>>n;cout<<"请输入"<>a[i][j];}}//运用高斯消去法求该矩阵的逆矩阵并输出if(G
6、auss(a,b,n)){cout<<"该方阵的逆矩阵为:";for(i=0;i7、(float*p,intn){intr,c,m;intlop=0;floatresult=0;floatmid=1;if(n!=1){lop=(n==2)?1:n;//控制求和循环次数,若为2阶,则循环1次,否则为n次for(m=0;m8、=0,c=n-1-m+n;r
7、(float*p,intn){intr,c,m;intlop=0;floatresult=0;floatmid=1;if(n!=1){lop=(n==2)?1:n;//控制求和循环次数,若为2阶,则循环1次,否则为n次for(m=0;m8、=0,c=n-1-m+n;r
8、=0,c=n-1-m+n;r
此文档下载收益归作者所有