欢迎来到天天文库
浏览记录
ID:8813068
大小:32.50 KB
页数:3页
时间:2018-04-08
《利用初等行变换求矩阵的逆运算的代码》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、/**************reversematrix************************///利用的是AX=B,X=A’B,这里B=E;进行初等行变换求解,把左边化为单位阵,右边就是A矩阵的逆矩阵;voidswap(double*a,inti,intline,intn)//exchangeline//交换行位置,i控制行号,line也是行号,//n是矩阵列数{intj;doubletemp;for(j=0;j2、]=temp;}}voidcalculate(double*p,double*q,intn)//形成上三角阵{inti,j,k,m,line;doublemax,temp,mmul;for(i=0;imax){max=fabs(p[j*n+i]);temp=p[j*n+i]3、;line=j;}}if(max<=1e-5){printf("noinversearray");return;}if(line!=i){swap(p,i,line,n);//将每一列中最大行换到i行swap(q,i,line,n);}for(k=0;k4、n+m]-=p[i*n+m]*mmul;//每一行都减去Ak0*i行对应列的值q[k*n+m]-=q[i*n+m]*mmul;}}}}voidbackcalculate(double*p,double*q,intn)//形成单位矩阵{inti,j,k;doublemmul;for(i=n-1;i>0;i--){for(j=i-1;j>=0;j--)//从下往上每一行进行计算,与前面相反{mmul=p[j*n+i];p[j*n+i]-=p[i*n+i]*mmul;for(k=0;k5、]*mmul;}}}}voidunitmatrix(double*q,intn)//形成单位矩阵,矩阵q是一个单位阵{inti,j;for(i=0;i6、ulate(A,C,n);//将A化为了单位阵,这时C即为所求}
2、]=temp;}}voidcalculate(double*p,double*q,intn)//形成上三角阵{inti,j,k,m,line;doublemax,temp,mmul;for(i=0;imax){max=fabs(p[j*n+i]);temp=p[j*n+i]
3、;line=j;}}if(max<=1e-5){printf("noinversearray");return;}if(line!=i){swap(p,i,line,n);//将每一列中最大行换到i行swap(q,i,line,n);}for(k=0;k4、n+m]-=p[i*n+m]*mmul;//每一行都减去Ak0*i行对应列的值q[k*n+m]-=q[i*n+m]*mmul;}}}}voidbackcalculate(double*p,double*q,intn)//形成单位矩阵{inti,j,k;doublemmul;for(i=n-1;i>0;i--){for(j=i-1;j>=0;j--)//从下往上每一行进行计算,与前面相反{mmul=p[j*n+i];p[j*n+i]-=p[i*n+i]*mmul;for(k=0;k5、]*mmul;}}}}voidunitmatrix(double*q,intn)//形成单位矩阵,矩阵q是一个单位阵{inti,j;for(i=0;i6、ulate(A,C,n);//将A化为了单位阵,这时C即为所求}
4、n+m]-=p[i*n+m]*mmul;//每一行都减去Ak0*i行对应列的值q[k*n+m]-=q[i*n+m]*mmul;}}}}voidbackcalculate(double*p,double*q,intn)//形成单位矩阵{inti,j,k;doublemmul;for(i=n-1;i>0;i--){for(j=i-1;j>=0;j--)//从下往上每一行进行计算,与前面相反{mmul=p[j*n+i];p[j*n+i]-=p[i*n+i]*mmul;for(k=0;k5、]*mmul;}}}}voidunitmatrix(double*q,intn)//形成单位矩阵,矩阵q是一个单位阵{inti,j;for(i=0;i6、ulate(A,C,n);//将A化为了单位阵,这时C即为所求}
5、]*mmul;}}}}voidunitmatrix(double*q,intn)//形成单位矩阵,矩阵q是一个单位阵{inti,j;for(i=0;i6、ulate(A,C,n);//将A化为了单位阵,这时C即为所求}
6、ulate(A,C,n);//将A化为了单位阵,这时C即为所求}
此文档下载收益归作者所有