线性代数特别不好算,用程序解决繁琐的事,电脑最喜欢干的事就穷举。
比如计算:3行4列矩阵乘以4行5列矩阵。
代码展示:
#include<stdio.h>
#define M 3
#define N 4
#define L 5
int main()
{
int i,j,k;
int a[M][N];
int b[N][L];
int c[M][L]={0};
printf("输入3行4列矩阵(12个数):\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("输入4行5列矩阵(20个数):\n");
for(i=0;i<N;i++)
{
for(j=0;j<L;j++)
{
scanf("%d",&b[i][j]);
}
}
for(i=0;i<N;i++)
{
for(k=0;k<L;k++)
{
for(j=0;j<N;j++)
{
c[i][k]+=a[i][j]*b[j][k];
}
}
}
printf("结果为:\n");
for(i=0;i<M;i++)
{
for(j=0;j<L;j++)
{
printf("%4d",c[i][j]);
}
printf("\n");
}
return 0;
}
代码分析:
用宏定义对矩阵进行设定,矩阵几行几列具有可改性。
算法正是线性代数所教的计算准则。循环嵌套配合二维数组。