见
创新互联公司主要从事成都网站设计、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务和田,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
矩阵乘法C(m*n)=A(m*p)*B(p*n),其中m、n、p为矩阵的行列数。
答复:
// 注意:矩阵乘法交换律不存在。a有p列,b有p行才有乘法。
// 声明数组类型和大小
float a[10][10],b[10][10],c[10][10];
// a[列][行]有p列,m行,b[列][行]有p行,n列,
// 结果c[列][行]有m行,n列
int m = 3, p=4, n = 5;
int i,j,k;
输入(或赋值)a,b 数组元素的值。(自己写,不要写乱次序)
计算:
for (i=0;in;i++) {
for (j=0;jm;j++){
c[i][j] = 0.0;
for (k=0;kp;k++){
c[i][j] = c[i][j] + a[i][k] * b[k][j];
};
};
};
结果在 c[i][j] 中。 有m行,n列
方法:左边矩阵第一行的元素分别与右边矩阵第一列的元素相乘,求和得到相乘矩阵的第一行的第一个元素。左边矩阵第一行的元素分别与右边矩阵第二列的元素相乘,求和得到相乘矩阵的第一行的第二个元素,以此类推。
值得注意的是,当提及“矩阵相乘”或者“矩阵乘法”的时候,并不是指代这些特殊的乘积形式,而是定义中所描述的矩阵乘法。在描述这些特殊乘积时,使用这些运算的专用名称和符号来避免表述歧义。
矩阵乘法注意事项
1、当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。
2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。
怎么说呢,错误太多了,双引号都是全角的
数组越界,返回值怎么可能有多个?
修改后程序如下:
#include "stdio.h"
int r[6][6];
void mult(int a[6][6] , int b[6][6])
{
int i,j;
for(i=0;i6;i++)
for(j=0;j6;j++)
r[i][j]=a[i][j]*b[i][i];
printf("\n两个矩阵相乘后的结果为:\n");
for(i=1;i=6;i++)
{
for(j=1;j=6;j++)
printf("%4d",r[i][j]);
printf("\n");
}
}
main()
{
int i,j;
int num1[6][6],num2[6][6];
printf("请输入第一个矩阵的值:\n");
for(i=0;i6;i++)
for(j=0;j6;j++)
scanf("%d",num1[i][j]);
printf("请输入第二个矩阵的值:\n");
for(i=0;i6;i++)
for(j=0;j6;j++)
scanf("%d",num2[i][j]);
mult(num1,num2);
}
矩阵计算公式如下:
1、矩阵的计算,首先确认矩阵是否可以相乘。只有第一个矩阵的列的个数等于第二个矩阵的行的个数,这样的两个矩阵才能相乘。再计算结果矩阵的行列数。画一个空白的矩阵,来代表矩阵乘法的结果。矩阵A和矩阵B相乘得到的矩阵,与矩阵A有相同的行数,与矩阵B有相同的列数。
2、矩阵指在数学中,按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵,由19世纪英国数学家凯利首先提出。它是高等代数学中的常见工具,其运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组合,可以在理论和实际应用上简化矩阵的运算。
3、矩阵的乘法规律:不满足交换律A×B≠B×A。满足结合律,A×B×C=A×B×C。满足分配率,A×B+C=A×B+A×C。单位矩阵:任何矩阵乘以单位矩阵都等于它本身,且此处复合交换律,及任意矩阵乘以单位矩阵=单位矩阵乘以此矩阵,满足:A×I=I×A=A。