源自於http://bime-matlab.blogspot.com/2006/10/blog-post.html
矩陣為一組二維向量之實數或複數之陣列,其加減乘除之運算與一般的數學運算法略有不同,陣列通常以行向量為主,但一般運算仍可混用。即使如此,在線性代數中所定義的矩陣操作大體上
Matlab均能支援。其中諸如一般運算、線性方程、特徵值及單一值與階乘運算等均包括在內。
由於陣列所代表的是一堆有系統的數字,與另一個陣列相運算時,必須依據不同的規則才能獲得
================================
操作名稱 應用情形
---------------------------------
C= A◎B-- ◎處可為加法(+)、減法(-)、乘法(*)、左除(\)、右除(/)
C= A.◎B-- ◎處可為乘法(*)、乘幂(^)、左除(\)、右除(/)
C= A◎c-- ◎處可為加法(+)、減法(-)、乘法(*)、乘幂(^)、右除(/)
C= c◎B-- ◎處可為加法(+)、減法(-)、乘法(*)、乘幂(^)、左除(\)、右除(./)
由表中可知,一個操作元前有一點與沒有一點其意義是不同的。
C= A.◎B C= A◎B
在操作元前加一點表示是項目與項目間之操作,即為所謂之對映運算方式,此時兩矩陣之大小要相同。這與一般矩陣之加法及減法相同,其運算僅針對元素間之運算。偏置功能則僅適用於矩陣間,不適用於項目間之操作。這些操作元亦可應用於矩陣與一般常數,後者之大小為[1x1]。
矩陣之加減
設C、D分別為3x3之方矩陣,且設C為魔術方塊,D為[1 2 3;4 5 6;7 8 9],即:
>> C=magic(3)
C =
8 1 6
3 5 7
4 9 2
>> D=[1 2 3;4 5 6;7 8 9]
D =
1 2 3
4 5 6
7 8 9
>> C+D
ans =
9 3 9
7 10 13
11 17 11
>> C-D
ans =
7 -1 3
-1 0 1
-3 1 -7
>> C*D
ans =
54 69 84
72 87 102
54 69 84
>> C/D
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND =
1.652118e-18.
ans =
1.0e+16 *
3.7830 -7.5660 3.7830
0.0000 0.0000 -0.0000
-3.7830 7.5660 -3.7830
>> C\D
ans =
0.0167 0.0833 0.1500
0.7667 0.8333 0.9000
0.0167 0.0833 0.1500
C.*D與C*D兩種之運算結果,前者為對應元素相乘;後者為兩個矩陣進行數學相乘:
C =
8 1 6
3 5 7
4 9 2
>>C.*D %對應元素相乘
ans =
8 2 18
12 25 42
28 72 18
>>C*D %矩陣乘法
ans =
54 69 84
72 87 102
54 69 84
例如有一化妝品系列,均由三種原料調配而成,因原料之分量會產生不同產品系列。今設有四種產品,其基本原料分別如有下份量:
>>A=[ 2 4 3; 5 2 1; 7 3 5; 4 5 6]A =2 4 3 %產品1之成分
5 2 1 %產品2之成分
7 3 5 %產品3之成分
4 5 6 %產品4之成分此時矩陣A代表四種產品(四列)之三種成份量。現設三種成分均有不同的價格,其價格設以一行向量表示,即:>>P=[120 50 100]'
P =
120
50
100矩陣之第一列,其成本只要將A(1,:)與P相乘,即A(1,:)*P,其結果為:>>A(1,:)*P
亦即代表產品1的成本,若直接計算應為
ans = 7402 x (120) + 4x(50) +3x(100) = 740
結果與上面之A(1,:)*P相同。故上面四種產品,若以成分矩陣A與價格矩陣P,即可得四種產品之成本:>>A*P
ans =
740
800
1490
1330A之大小為(4x3),P之大小為(3x1),得到的結果為(3x1)。換言之,兩矩陣相乘,第一矩陣之行與第二矩陣之列,其大小應一致。
而結果之大小應為第一矩陣之列與第二矩陣之行,或(4x3)(3x1)=(4x1)。
以通式表示之:A[m,n] * B[n,p] = C[m,p]
>>D*C
ans =
26 38 26
71 83 71
116 128 116
足見D*C與C*D的結果並不同。但只要矩陣之大小相搭配,其分解及分配之特性則仍然存在,如:A*(B+C)=A*B + A*C
或(A*B)*C=A*(B*C)
若用eye(3)函數產生單位矩陣,則其無論先乘與後乘,結果都會一樣。>>I=eye(3)
結論是若I為單位矩陣,則I*A=A*I=A,顯示交換律在此情形下仍可成立。
I =
1 0 0
0 1 0
0 0 1
>>AA*I
ans =
8 1 6
3 5 7
4 9 2
>>I*AA
ans =
8 1 6
3 5 7
4 9 2
陣列之除法
陣列除法屬逐元除法,因此兩陣列相除時必須同樣大小。例如:>> a=[2 3 4]
a = 2 3 4
>> b=[5 6 7]
b = 5 6 7
>> a/b
ans = 0.5091
>> a./b
ans = 0.4000 0.5000 0.5714
>> c=[1 2;3 4]
這是兩陣列經過右除(./)運算之結果
c =
1 2
3 4
>> d=[3 5; 8 7]
d =
3 5
8 7
>> c./d
ans =
0.3333 0.4000
0.3750 0.5714陣列之次方
陣列之逐元運算亦可應用於次方,但其次方數必須為常數,以pascal函數產生之對稱矩陣為例:>> A=pascal(3)
A =
1 1 1
1 2 3
1 3 6
>> A.^3
ans =
1 1 1
1 8 27
1 27 216
沒有留言:
張貼留言