您的位置:首页 > 其它

矩阵求逆

2014-10-21 17:12 134 查看
矩阵求逆过程中对零判断条件很重要啊!!!!!!!!!!!!!!

Matrix matrixInvese(Matrix mat)
{
if(mat.n==0 || mat.n!=mat.m)
{
printf("不能求逆\n");
exit(0);
}
Matrix temp;
temp.m=mat.m;
temp.n=mat.n;
temp.ary=(double *)malloc(sizeof(double)*temp.m*temp.n);
int i;
int j;
for(i=0; i<mat.n; i++)
{
for(j=0; j<mat.n; j++)
{
if(i==j)
{
temp.ary[i*temp.n+j]=1;
}
else
{
temp.ary[i*temp.n+j]=0;
}
}
}
for(i=0; i<mat.n; i++)
{
for(j=0; j<mat.n; j++)
{
if(j!=i)
{
int k;
double temp1;
temp1=mat.ary[i*mat.n+i]/mat.ary[j*mat.n+i];
for(k=0; k<mat.n; k++)
{
mat.ary[j*mat.n+k]=mat.ary[j*mat.n+k]*temp1-mat.ary[i*mat.n+k];
temp.ary[j*temp.n+k]=temp.ary[j*temp.n+k]*temp1-temp.ary[i*temp.n+k];
}
}
}
}
for(i=0; i<mat.n; i++)
{
for(j=0; j<mat.n; j++)
{
temp.ary[i*temp.n+j]/=mat.ary[i*mat.n+i];
}
}
return temp;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: