作业帮 > 综合 > 作业

求三阶矩阵A的逆矩阵C语言算法程序

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/19 06:54:19
求三阶矩阵A的逆矩阵C语言算法程序
#include<stdio.h>
#include<math.h>
#define n 3 //三阶矩阵
#define N 20
#define err 0.0001
void main()
{
int i,j,k;
double A[n][n],X[n],u,y[n],max;
printf("Please input the matrix:\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%lf",&A[i][j]); //输入矩阵
printf("Please input the initialized vector:\n");
for(i=0;i<n;i++)
scanf("%lf",&X[i]); //输入初始向量
k=1;
u=0;
while(1)
{
max=X[0];
for(i=0;i<n;i++)
{
if(max<X[i]) max=X[i]; //选择最大值
}
for(i=0;i<n;i++)
y[i]=X[i]/max;
for(i=0;i<n;i++)
{
X[i]=0;
for(j=0;j<n;j++)
X[i]+=A[i][j]*y[j]; //矩阵相乘
}
if(fabs(max-u)<err)
{
printf("The eignvalue of A is:%f\n",max);
printf("The eignvector of A is:");
for(i=0;i<n;i++)
printf("%f ",X[i]);
break;
}
else
{
if(k<N)
else
}
}
}