GG313 Lecture 12

advertisement
GG313 Lecture 12
Matrix Operations
Sept 29, 2005
Matrix Addition
Requirement: same order
Characteristic: element-by-element addition
Notation: A+B=C
a11 a12 


A  a21 a22

a31 a32

1
A= 1
1
b11 b12 
a11  b11 a12  b12 




B  b21 b22 C = A + B = a21  b21 a22  b22


b31 b32

a31  b31 a32  b32

1
1
1
2
B = -1
0
1
3
-2
3
C=A+B = 0
1
2
4
-1
Eqn
3.20
Commutative: A+B=B+A
Associative: A+B+C= A+(B+C)
You can add a scalar to a matrix:
1
A= 1
1
1
1
1
B=A+4=
5
5
5
5
5
5
You can also multiply a scalar by a matrix:
2
A= 4
1
4
6
3
B=A*2=
4
8
2
8
12
6
Dot Product
Also known as: scalar product or inner product
Requirements: row vector and column vector of the
same order (dimensions)
Characteristics: Result is a scalar
Uses: Big in physics. The dot product between a
force and a velocity yields the power being given
to a body
Notation: a • b = d
a  a1  a2  a3 
b1 
 
b  b2 

b3 

a  b  d  a1b1  a2b2  a3b3
Eqn. 3.25
In physics, we multiply the projection of one vector onto
the other vector by the length of the second vector:
a=ua,va,wa

b=ub,vb,wb
a•b=uaub+vavb+wawb=|a||b|cos()
|a|=sqrt(ua2+va2+wa2)=length of a
If a and b are orthogonal to eachother, then cos() =0
and a•b=0
If a and b are parallel to eachother, then cos() =1 and
a•b= |a||b|= product of the lengths of the vectors
Squaring a vector is simply taking the dot product of
the vector and its transpose:
For a row vector:
a2 = a • aT
For a column vector: a2 = aT • a
Matrix Multiplication
We can extend the idea of the dot product to matrices:
Requirement: There must be the same number of
columns in the first matrix as rows in the second.
Characteristics: The resulting matrix has the same
number of rows as the first matrix and same
number of columns as the second.
Notation: C(m,n)=A(m,p)• B(p,n)
p
elements of C are: c ij
  aikbkj
k1
In Matlab, matrix multiplication is: C = A*B
c11 c12 c13  a11 a12

 
c
c
c
 21 22 23 a21 a22

c 31 c 32 c 33
 
a31 a32

a13
a23
a14
a24
a33
a34
a15 

a25
a35

b11

b21
b31

b41

b51
b12
b22
b32
b42
b52
b13 

b23
b33

b43
b53

c32  a31b12  a32b22  a33b32  a34b42  a35b52
C(m,n)=A(m,p). B(p,n)
A
C
m=5, p=3
1,1 1,2 1,3
B
2,1 2,2 2,3
1,1 1,2 1,3 1,4
3,1 3,2 3,3
4,1 4,2 4,3
5,1 5,2 5,3
*
1,1 1,2 1,3 1,4
p=3, n=4
2,1 2,2 2,3 2,4
3,1 3,2 3,3 3,4
p
cij=aikbkj
k=1
m=5, n=4
2,1 2,2 2,3 2,4
=
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4
5,1 5,2 5,3 5,4
The order of multiplication is important:
NOT Commutative: A • B ≠ B • A
Associative: (A • B) • C= A • (B • C)
On the previous page, we have an order A(5,3) matrix times
a B(3,4) matrix. B•A is not even possible.
If the matrices are square, or if AT has the same order as B,
or BT the same order as A, then both products, A•B and
B•A can be formed.
The transpose of a matrix product is equal to the product of
the transpose of the matrices in reverse order:
A • B • C = CT • BT • AT
Multiplication by the identity matrix (Matlab: eye(p,p) ) leaves
the original matrix unchanged - just as multiplying any
regular number by “1” leaves that number unchanged.
A(n,p) • I(p,p) = I • A = A
For example:
1 2 3 4 5  1 2 3 4 5 

 

6
7
8
9
10

6
7
8
9
10

 


11 12 13 14 15
 
11 12 13 14 15

1



1




1


1 


1


Scaling:
We can scale a coordinate system by multiplying by a
diagonal matrix of scale weights:
d11



D  
d22


d33


a11d11 a12d11

C  a 21d22 a 22d22

a 31d33 a 32d33
a11 a12 a13 a14

• A = a 21 a 22 a 23 a 24

a 31 a 32 a 33 a 34
a13d11 a14 d11 a15d11 

a 23d22 a 24 d22 a 25d22
a 33d33 a 34 d33 a 35d33

a15 

a 25
a 35

On the previous slide we pre-multiplied by the
scaling matrix. If we post-multiply instead,then each
column gets multiplied by the same scaling factor:
d11



a11 a12 a13 a14 a15 
d
22




 
A = a 21 a 22 a 23 a 24 a 25• D  
d33



d
a 31 a 32 a 33 a 34 a 35

44



d55


a11d11 a12d22 a13d33 a14 d44

C  a 21d11 a 22d22 a 23d33 a 24 d44

a 31d11 a 32d22 a 33d33 a 34 d44
a15d55 

a 25d55
a 35d55

Note that we had to use a diagonal order 5x5 matrix.
Efficiency considerations:
When dealing with large matrices, it is possible to save a
considerable amount of calculating by being careful how
multiplies are arranged. While there may be no difference
in the result mathematically, if the number of calculations
can be significantly reduced, time can be reduced and
precision can be improved.
Note that while (A•B)•C = A•(B•C), these two expressions
can have very different numbers of multiplications.
D(m,n) = A(m,p)• B(p,n) has m*n*p multiplications
E(m,q) = D(m,n) • C(n,q) has m*n*q multiplications
So E=(A•B)•C requires m*n(p+q) multiplications
Similarly,
F(p,q) =B(p,n) •C(n,q) has n*p*q multiplications
E(m,q)= A(m,p)• F(p,q) has m*p*q multiplications
So E=A•(B•C) requires p*q*(m+n) multiplications.
If p*q >> m*n, then A•(B•C) will require far more
multiplications than (A•B)•C.
Fore example, say m=5, n=2, p=25, and q=100. Then one
way requires 25*100*(5+2)=17,500 multiplications, and the
other requires 5*2*(25+100)=1,250. As execution time and
“digital noise”, or round off error, increase with every
multiplication, it makes sense to perform the calculation in a
particular way.
In class exercises.
1) We have three vectors A, B, and C with one end at the
origin and the other at xi,yi,zi. A(x,y,z)=(22,7,100),
B=(-32,1,48), and C=(3,-11,33). Using Matlab matrices,
transform the vectors into another coordinate system where
r=3x and s=5y, t=2.5z.
We set up a matrix with the x-values in the first row,
y in the second, and z in the third:
>> A=[22 -32 3;7 1 -11;100 48 33]
A = 22 -32 3
7 1 -11
100 48 33
Now set up a diagonal matrix containing the
transformations:
>> D=[3 0 0;0 5 0; 0 0 2.5]
D = 3.0
0
0
0
5.0
0
0
0
2.5
Now multiply:
>> D*A
ans = 66.0 -96.0 9.0
35.0 5.0 -55.0
250.0 120.0 82.5
This is a simple transformation; others, like changing from
rectangular to spherical coordinates utilize more terms in
the transformation matrix.
DETERMINANT: A property of a matrix very useful in the
solution of simultaneous equations.
Requirement: Square matrices only
Notation: det A, |A|, or ||A||
Calculation:
a11 a12
A  a21 a22
a31 a32
a13
a23  a11a22a33  a12a23a31  a13a32a21  a11a32a23  a12a21a33  a13a22a31
a33
As the matrix size grows, Matlab comes in handy, det(A).
Determinant Characteristics:
• Switching two rows or columns changes the sign.
• Scalars can be factored out of rows and columns.
• Multiplication of a row or column by a scalar multiplies
the determinant by that scalar.
• The determinant of a diagonal matrix equals its trace.
Consider the determinant of a 3x3 matrix. It can be rewritten:
a11 a12
A  a21 a22
a31 a32
a13
a22
a23  a11
a32
a33
a23
a33
 a12
a21 a23
a31 a33
 a13
a21 a22
a31 a32
And the determinant can be written:
|A|=a11(a22a33-a23a32)-a12(a21a33-a23a31)+a13(a21a32-a22a31)
A singular matrix is a square matrix with determinant
equal to 0. This happens when
1) any row or column is equal to zero or
2) Any row or column is a linear combination of any other
rows or columns
The degree of clustering about the principal diagonal is
a property of a matrix that affects the determinant. If
clustering is high, then the determinant is larger.
The rank of a matrix is the number of linearly independent
vectors (row or column) that it contains. The rank of a
product of two matrices must be less than or equal to the
smallest rank of the two matrices being multiplied.
Linear independence here means that the two vectors
being considered are NOT scalar multiples of each other.
Matrix division (Matrix inverse)
In normal math, we can easily solve the equation below
for c.
y= cx, c = y/x = y•x-1.
X•x-1=1
We can generate inverse matrices to do the same
operation in matrix algebra. In matrix algebra the inverse
matrix is
A-1 , where AA-1=I, the identity matrix.
The inverse of a matrix exists only if its determinant is
non-zero.
The inverse of a matrix is easy to calculate for 2x2
matrices, but anything larger is difficult to even explain. For
a 2x2 matrix:
1 a22 a12
1
A 
Eqn. 3.63


a
a
| A |  21
11 
4 5 
For example, A  
 A = 4 * (-2) - 5 * 3 = -23,
3 2

1 2 5 2 /23 5 /23 
1
A 

 

23 3 4  3/23 4 /23
To check:
4 5  2 /23 5 /23  4 * 2 /23  5 * 3/23 4 * 5 /23  5 * (4 /23) 1 
A • A   • 
 
  
3* 5 /23  2 * 4 /23   1
3 2 3/23 4 /23 3* 2 /23  2 * 3/23
1
Using matrices to calculate normal scores - as in Chapter 2.
We can use matrix notation to calculate the mean and zvalues of vectors.
An important concept is the unit vector that consists of ones
in a row (unit row vector) or column (unit column vector).
Consider the data matrix A consisting of three columns of
data samples:
1 2 3


A  4 5 6and the unit row vector : jT3  1 1 1

7 8 9

We can calculate the mean of each column in A simply
by multiplying A by J3T and dividing by 3:
1 T
1
x c  jn A for column mean, and x r  Ajm for row mean
n
m
In our example:
xc 
1
1 1
3
1
1 
x r   4
3

7
1 2 3

 1
1  4 5 6 = 12 15 18  4 5 6, and
3

7 8 9

6  2
2 31
 1    
5 61 = 15 5.
3

8 9

1

24
 
8

We now have the mean values, but we want the normal
scores (z-values),
aij  a j
zij 
.
sj
We do the subtraction in the numerator by:
D= - (1/n) JA where J is the nxm unit matrix
(all entries=1).
The standard deviation is not linear, and needs to be
calculated separately, then entered into a diagonal
matrix:
1 0

0 2

S


0 0
0 

0 


 n1
The normal scores are then:


 1  1  1
1
Z  DS  A  JA S  I  JAS


 n 
n
1
Download