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