[線性代數] 矩陣#1


一、問題的引入

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

例 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 + a2 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;
}



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: