请问这道题用c语言怎么编啊~先谢谢了
啊~~!
矩阵乘法C(m*n)=A(m*p)*B(p*n),其中m、n、p为矩阵的行列数。
答案:2 悬赏:0 手机版
解决时间 2021-01-28 01:36
- 提问者网友:饥饿走向夜
- 2021-01-27 15:56
最佳答案
- 五星知识达人网友:雾月
- 2021-01-27 17:06
// 注意:矩阵乘法交换律不存在。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;i
for (j=0;j
c[i][j] = 0.0;
for (k=0;k c[i][j] = c[i][j] + a[i][k] * b[k][j];
};
};
};
结果在 c[i][j] 中。 有m行,n列
// 声明数组类型和大小
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;i
for (k=0;k c[i][j] = c[i][j] + a[i][k] * b[k][j];
};
};
};
结果在 c[i][j] 中。 有m行,n列
全部回答
- 1楼网友:患得患失的劫
- 2021-01-27 18:28
将a进行列分块为(a1,a2,a3,...ap),于是ab=b11a1+b21a2+...bp1ap+b12a1+b22a2+...+...+bpnap
所以ab可以由a的p个向量组线性线性表示,即r(ab)<=r(a).同理将b按行分块可证明r(ab)<=r(b).
考虑ab的相抵标准形paq=(多余的点是为了对齐,p与q皆是可逆矩阵)
|i(r(a阶)) 0|
|0........... 0|
于是ab的秩等于paq(q^-1)b.(左乘初等矩阵不会改变秩)
令q的-1次方乘以b等于b',则r(b)=r(b'),将其分块为r(a)+(p-r(a))的上下两部分
于是
paq(q^-1)b=
|i(r(a阶)) 0|*|b'1|
|0........... 0| |b'2|
=
|b'1|
|0...|
所以r(ab)=r(b'1)>=r(b')-r(b'2)=r(b)-r(b'2)
而r(b'2)不大于其行数p-r(a)
所以r(ab)>=r(b)-p+r(a)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯