本程序主要实现了一个方阵的求逆与实现了逆矩阵和原矩阵的乘积为单位矩阵
生活随笔
收集整理的這篇文章主要介紹了
本程序主要实现了一个方阵的求逆与实现了逆矩阵和原矩阵的乘积为单位矩阵
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include<stdio.h>
#define M 10
int main()
{void chengji(int n);float a[M][M*2];float b[M][M*2];float c[M][M*2];float d[M][M];//存儲(chǔ)原矩陣float t,x;int k,T,i,j,n;printf("輸入方陣的維數(shù)(小于M):\n"); //請(qǐng)輸入方陣,即行和列相等的矩陣。scanf("%d",&T);n=T;printf("請(qǐng)輸入矩陣:\n");for(i=0; i<T; i++)for (j=0; j<T; j++){scanf("%f",&b[i][j]);d[i][j]=b[i][j];}printf("原矩陣為:\n");for (i=0; i<T; i++){for (j=0; j<T; j++) printf("%10.3f",b[i][j]);printf("\n");}for(i=0; i<T; i++) for(j=0; j<(2*T); j++){if(j<T) a[i][j]=b[i][j];else if (j==T+i) a[i][j]=1.0;else a[i][j]=0.0;}for(i=0; i<T; i++){for(k=0; k<T; k++){if(k!=i){t=a[k][i]/a[i][i];for(j=0; j<(2*T); j++){x=a[i][j]*t;a[k][j]=a[k][j]-x;}}}}for(i=0; i<T; i++){t=a[i][i];for(j=0; j<(2*T); j++) a[i][j]=a[i][j]/t;}int y=1;for(i=0; i<T; i++) y=y*a[i][i];if(y==0)printf("對(duì)不起,您輸入的矩陣沒有逆矩陣,請(qǐng)重新輸入。\n");else{for(i=0; i<T; i++)for(j=0; j<T; j++) b[i][j]=a[i][j+T];printf("逆矩陣為:\n");for (i=0; i<T; i++){for (j=0; j<T; j++)printf("%10.3f",b[i][j]);printf("\n");}}printf("原方陣與逆方陣的積:\n");k=0;//int l=0;//int i,j;for(i=0; i<n; i++){for(j=0; j<n; j++){c[i][j]=0;for(k=0; k<n; k++){c[i][j]+=d[i][k]*b[k][j];
//printf("%g ",c[i][j]);}}}for (i=0; i<n; i++){for(j=0; j<n; j++){printf("%g ",c[i][j]);}puts("");}puts(" ");return 0;
}
總結(jié)
以上是生活随笔為你收集整理的本程序主要实现了一个方阵的求逆与实现了逆矩阵和原矩阵的乘积为单位矩阵的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想新8英寸平板Y700即将发布 配置都
- 下一篇: angularjs ng-click传参