一、問題的引入: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
例 1:學院進行體育比賽,四個年級分別獲得金、銀、銅牌數見表格 1-1; |
得分與獎金 |
||||||||||||||||||||
見表格 1-2; 統計每個年級的總分數和總獎金數。 |
|
|
|
|
|
|
|
|
|||||||||||||
|
|
表 1-1 |
|
|
|
|
|
|
|
|
|
|
表 1-2 |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
金牌 |
|
銀牌 |
|
|
銅牌 |
|
|
|
|
|
|
|
分值 |
|
獎金(元) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
四年級 |
|
|
3 |
|
|
3 |
|
|
1 |
|
|
|
|
|
金牌 |
|
|
3 |
|
500 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
銀牌 |
|
|
2 |
|
300 |
|
|
三年級 |
|
|
5 |
|
|
4 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
銅牌 |
|
|
1 |
|
100 |
|
|
二年級 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
一年級 |
|
|
4 |
|
|
4 |
|
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
表 1-3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
總分 |
|
|
|
|
|
|
|
|
總獎金(元) |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
四年級 |
|
|
3×3+3×2+1×1=16 |
|
|
|
|
|
3×500+3×300+1×100=2500 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
三年級 |
|
|
5×3+4×2+2×1=25 |
|
|
|
|
|
5×500+4×300+2×100=3900 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
二年級 |
|
|
4×3+5×2+6×1=28 |
|
|
|
|
|
4×500+5×300+6×100=4100 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
一年級 |
|
|
4×3+4×2+7×1=27 |
|
|
|
|
|
4×500+4×300+7×100=3900 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
如用矩陣 A、B、C 分別表示表 1-1,表 1-2,表 1-3 中的有關數據, |
|
|
|
|
|||||||||||||||||
|
|
3 |
3 |
1 |
|
|
3 |
500 |
|
16 |
2500 |
|
|||||||||
|
|
|
5 |
4 |
2 |
|
|
|
|
|
25 |
3900 |
|
||||||||
|
A = |
|
B = |
2 |
300 |
|
|
C = |
|
||||||||||||
|
|
|
4 |
5 |
6 |
|
|
|
|
|
|
|
|
|
28 |
4100 |
|
||||
|
|
|
|
|
100 |
|
|
|
|||||||||||||
|
|
|
4 |
4 |
7 |
|
|
|
1 |
|
|
|
|
27 |
3900 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
即:則這三個矩陣間有這樣一種關系:
矩陣 C 完全由矩陣 A 和矩陣 B 決定,C 中每一個元素都是由 A 的某一行的元素和 B 的某一列對應元素相乘再相加得到。如 C 中第一行第二列的元素2500=3×500+3×300+1×100,就是 A 的第一行元素與 B 的第二列對應元素相乘再相加的結果。
例 2:某單位計划在 2008 年與 2009 年兩年內建造三種類型的房屋,建造每種房屋的數
168
量如表 1-1,每 100m2 房屋各種材料的耗用量如表 1-2,試求 2008 年與 2009 年計划建造房屋所需的各種材料的耗用量。
表 2-1
|
|
類型 |
|
|
|
|
|
|
|
|
|
|
|
甲 |
乙 |
|
丙 |
|
|
|
年份 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008 |
|
|
a11 |
a12 |
|
a13 |
|
||
|
|
|
|
|
|
||||
2009 |
|
|
a21 |
a22 |
|
a23 |
|
||
|
|
|
|
|
|
||||
|
|
|
|
表 2-2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
材料 |
|
|
|
|
|
|
|
|
|
|
|
|
水泥(t) |
|
鋼筋(t) |
|
木材(m2) |
|
|
類型 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
甲 |
|
|
b11 |
|
b12 |
|
b13 |
|
|
|
|
|
|
|
|
|||
|
乙 |
|
|
b21 |
|
b22 |
|
b23 |
|
|
|
|
|
|
|
|
|||
|
丙 |
|
|
b31 |
|
b32 |
|
b33 |
|
|
|
|
|
|
|
|
解:依題意,2008 年和 2009 年計划建造房屋所需的各種材料的耗用量為表 2-3
表 2-3
|
材料 |
|
|
|
|
|
|
水泥(t) |
鋼筋(t) |
木材(m2) |
|
年份 |
|
|
|
|
|
|
|
|
|
|
|
2008 |
|
a11b11 |
+ a12 b21 |
a11b12 + a12b22 |
a11b13 + a12b23 |
|
|
||||
|
|
+ a13 b31 |
+ a13 b32 |
+ a13b33 |
|
2009 |
|
a21b11 |
+ a22 b21 |
a21b12 + a22b22 |
a21b13 + a22b23 |
|
|
||||
|
|
+ a23 b31 |
+ a23 b32 |
+ a23b33 |
用矩陣 A、B、C 表示上面表格
a |
a |
|
a |
|
|
A = |
11 |
12 |
13 |
|
|
|
a |
a |
22 |
a |
|
21 |
|
23 |
|
b11 |
b12 |
b13 |
|
B = |
b |
b |
b |
|
|
21 |
22 |
23 |
|
|
b |
b |
b |
|
|
31 |
32 |
33 |
|
a b + a b + a b |
a b + a b + a b |
a b + a b + a b |
|
|||||||||||||||||
C = |
11 |
11 |
12 |
21 |
13 |
31 |
11 |
12 |
12 |
22 |
13 |
32 |
11 |
13 |
12 |
23 |
13 |
33 |
|
|
|
a b + a |
b + a b |
a b + a b + a b |
a b + a b + a b |
|
|||||||||||||||
21 |
11 |
|
22 |
21 |
23 |
31 |
21 |
12 |
22 |
22 |
23 |
32 |
21 |
13 |
22 |
23 |
23 |
33 |
則 C 中的元素也是由是由 A 的某一行的元素和 B 的某一列對應元素相乘再相加得到。這種由矩陣 A 和矩陣 B 決定矩陣 C 的方法就是矩陣的乘法。
二、矩陣乘法概念
定義 設 A = ( aij)m× r ,B = (bij)r ×n ,則由元素 cij = ∑aik bkj = ai1b1 j + ai 2 b2 j + + air brj k =1
構成的矩陣 C = ( cij )m× n 稱為矩陣 A 與矩陣 B 的乘積,記為C = AB .
這個定義說明,矩陣 A 與矩陣 B 的乘積 C 的第 i 行第 j 列的元素等於第一個矩陣 A 的第 i 行與第二個矩陣 B 的第 j 列對應元素乘積之和。並且矩陣 C 的行數等於矩陣 A 的行數,列數等於矩陣 B 的列數。
AB 和 BA 都有意義且他們的行數、列數相同,但 AB 和 BA 也不一定相等。此例還說明兩個非零矩陣的乘積可能是零矩陣。
雖然 AC = BC 且 C ≠ O ,但不能推出 A = B 。根據上面的例題,在做乘法計算時要注意以下幾點:1.矩陣乘法不滿足交換律,一般來說AB ≠ BA ;
2.矩陣乘法不滿足消去律,一般來說,當 AB = AC 且 A ≠ O 時,不一定有B = C ;3.一般由 AB = O ,不能推出 A = O 或B = O ,這時稱 A ( B )是 B ( A )的左(右)零
因子。
三、運算規律
1.結合律 ( AB)C = A(BC)
2.分配律 |
|
|
( A + B)C = AC + BC |
A(B + C) = AB + AC |
|
k( AB) = (kA)B |
|
|
定義 方陣的冪 Am |
= AA |
A m個 A連乘。 |
n×n |
|
代碼實現矩陣乘法:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int ai,aj,bi,bj;
struct Mart
{
long long a[205][205];
}A,B,C;
void Martix(Mart A,Mart B)
{
for(int i=1;i<=ai;i++)
{
for(int j=1;j<=bj;j++)
{
for(int k=1;k<=aj;k++)
{
C.a[i][j]+=A.a[i][k]*B.a[k][j];
}
printf("%d ",C.a[i][j]);
}
printf("\n");
}
}
int main()
{
scanf("%d%d",&ai,&aj);
for(int i=1;i<=ai;i++)
for(int j=1;j<=aj;j++)
scanf("%lld",&A.a[i][j]);
scanf("%d%d",&bi,&bj);
for(int i=1;i<=bi;i++)
for(int j=1;j<=bj;j++)
scanf("%lld",&B.a[i][j]);
Martix(A,B);
return 0;
}
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。