[线性代数] 矩阵#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 + a12 b22

a11b13 + a12 b23

 

 

 

 

+ a13 b31

+ a13 b32

+ a13b33

2009

 

a21b11

+ a22 b21

a21b12 + a22 b22

a21b13 + a22 b23

 

 

 

 

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


你可能感兴趣的:(矩阵)