for(i=0;i<n;i++)
  for(j=0;j<n;j++)
  {
   cout<<"第"<<++b<<"个元素为:";                 //用户输入矩阵元素
   cin>>a[i][j];
  }
 cout<<"您输入的矩阵为:"<<endl;
 for(i=0;i<n;i++)
 {
  for(j=0;j<n;j++)
   cout<<a[i][j]<<" ";                         //将矩阵元素反馈给用户
  cout<<endl;
 }
 for(i=0;i<n;i++)
  for(j=n;j<2*n;j++)                                //将矩阵有半部分置为单位阵
  {
   int c=j-n;
   if(c==i)
    a[i][j]=1;
   else
    a[i][j]=0;
  }
 cout<<"在原矩阵右边加上单位阵后所得矩阵为:"<<endl;
 for(i=0;i<n;i++)
 {
  for(j=0;j<2*n;j++)
   cout<<a[i][j]<<" ";
  cout<<endl;
 }
 cout<<endl;
 cout<<"记原矩阵为A,A加上单位阵后所得的矩阵为B!"<<endl;            
 for(i=0;i<n-1;i++)
 {
  for(j=i+1;j<n;j++)                               //将矩阵A变为上三角矩阵
  {
   double d=a[j][i];
   for(k=i;k<2*n;k++)
    a[j][k]-=a[i][k]*d/a[i][i];
  }
 }
 cout<<"将矩阵B中的矩阵A变成上三角矩阵后,B变为:"<<endl;
 for(i=0;i<n;i++)
 {
  for(j=0;j<2*n;j++)
   cout<<a[i][j]<<" ";
  cout<<endl;
 }
 cout<<endl;
 for(i=0;i<n;i++)
 {
  double f=a[i][i];
  for(j=0;j<2*n;j++)
   a[i][j]=a[i][j]/f;                          //将矩阵A对角线元素置1
 } 
 if(a[n-1][n-1]==0)                                 //判断矩阵是否有逆矩阵
 {
  cout<<"此矩阵没有逆矩阵!"<<endl;
  exit(1);
 } 
 cout<<"将矩阵B中的矩阵A的对角线元素都置1后,B变为:"<<endl; 
    for(i=0;i<n;i++)
 {
  for(j=0;j<2*n;j++)
   cout<<a[i][j]<<" ";
  cout<<endl;
 }
原文请找腾讯752018766辣.文-论'文;网
http://www.751com.cn     a[i][k]-=a[j][k]*g;                              //进一步将A置为单位阵
  } 
 cout<<"将矩阵B中的矩阵A变为单位阵后,B变为:"<<endl;
    for(i=0;i<n;i++)
 {
  for(j=0;j<2*n;j++)
   cout<<a[i][j]<<" ";
  cout<<endl;
 }
 cout<<endl;
 cout<<"所以,矩阵A的逆矩阵即所求矩阵为:"<<endl;
 cout<<fixed<<setprecision(6);                              //精确结果
 for(i=0;i<n;i++)
 {
  for(j=n;j<2*n;j++)
   cout<<a[i][j]<<" ";                               //输出逆矩阵
  cout<<endl;
 }
 cout<<endl;}
上一页  [1] [2] 
C++求满秩矩阵的逆矩阵 第2页下载如图片无法显示或论文不完整,请联系qq752018766