1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
#+LaTeX_CLASS: beamer
#+LaTeX_CLASS_OPTIONS: [presentation]
#+BEAMER_FRAME_LEVEL: 1
#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)
#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC
#+LaTeX_CLASS: beamer
#+LaTeX_CLASS_OPTIONS: [presentation]
#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl}
#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet}
#+LaTeX_HEADER: \usepackage{listings}
#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries,
#+LaTeX_HEADER: commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
#+LaTeX_HEADER: showstringspaces=false, keywordstyle=\color{blue}\bfseries}
#+TITLE: Matrices
#+AUTHOR: FOSSEE
#+EMAIL:
#+DATE:
#+DESCRIPTION:
#+KEYWORDS:
#+LANGUAGE: en
#+OPTIONS: H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
#+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc
* Outline
- Creating Matrices
- using direct data
- converting a list
- Matrix operations
- Inverse of matrix
- Determinant of matrix
- Eigen values and Eigen vectors of matrices
- Norm of matrix
- Singular Value Decomposition of matrices
* Creating a matrix
- Creating a matrix using direct data
: In []: m1 = array([1, 2, 3, 4])
- Creating a matrix using lists
: In []: l1 = [[1,2,3,4],[5,6,7,8]]
: In []: m2 = array(l1)
* Exercise 1
Create a (2, 4) matrix ~m3~
: m3 = [[5, 6, 7, 8],
: [9, 10, 11, 12]]
* Solution 1
- m3 can be created as,
: In []: m3 = array([[5,6,7,8],[9,10,11,12]])
* Matrix operations
- Element-wise addition (both matrix should be of order ~mXn~)
: In []: m3 + m2
- Element-wise subtraction (both matrix should be of order ~mXn~)
: In []: m3 - m2
* Matrix Multiplication
- Element-wise multiplication using ~m3 * m2~
: In []: m3 * m2
- Matrix Multiplication using ~dot(m3, m2)~
: In []: dot(m3, m2)
: Out []: ValueError: objects are not aligned
* Matrix Multiplication (cont'd)
- Create two compatible matrices of order ~nXm~ and ~mXr~
: In []: m1.shape
- matrix m1 is of order ~1 X 4~
- Creating another matrix of order ~4 X 2~
: In []: m4 = array([[1,2],[3,4],[5,6],[7,8]])
- Matrix multiplication
: In []: dot(m1, m4)
* Recall from ~array~
- The functions
- ~identity(n)~ -
creates an identity matrix of order ~nXn~
- ~zeros((m,n))~ -
creates a matrix of order ~mXn~ with 0's
- ~zeros_like(A)~ -
creates a matrix with 0's similar to the shape of matrix ~A~
- ~ones((m,n))~
creates a matrix of order ~mXn~ with 1's
- ~ones_like(A)~
creates a matrix with 1's similar to the shape of matrix ~A~
Can also be used with matrices
* More matrix operations
Transpose of a matrix
: In []: m4.T
* Exercise 2 : Frobenius norm \& inverse
Find out the Frobenius norm of inverse of a ~4 X 4~ matrix.
:
The matrix is
: m5 = arange(1,17).reshape(4,4)
- Inverse of A,
-
#+begin_latex
$A^{-1} = inv(A)$
#+end_latex
- Frobenius norm is defined as,
-
#+begin_latex
$||A||_F = [\sum_{i,j} abs(a_{i,j})^2]^{1/2}$
#+end_latex
* Exercise 3 : Infinity norm
Find the infinity norm of the matrix ~im5~
:
- Infinity norm is defined as,
#+begin_latex
$max([\sum_{i} abs(a_{i})^2])$
#+end_latex
* ~norm()~ method
- Frobenius norm
: In []: norm(im5)
- Infinity norm
: In []: norm(im5, ord=inf)
* Determinant
Find out the determinant of the matrix m5
:
- determinant can be found out using
- ~det(A)~ - returns the determinant of matrix ~A~
* eigen values \& eigen vectors
Find out the eigen values and eigen vectors of the matrix ~m5~.
:
- eigen values and vectors can be found out using
: In []: eig(m5)
returns a tuple of /eigen values/ and /eigen vectors/
- /eigen values/ in tuple
- ~In []: eig(m5)[0]~
- /eigen vectors/ in tuple
- ~In []: eig(m5)[1]~
- Computing /eigen values/ using ~eigvals()~
: In []: eigvals(m5)
* Singular Value Decomposition (~svd~)
#+begin_latex
$M = U \Sigma V^*$
#+end_latex
- U, an ~mXm~ unitary matrix over K.
-
#+begin_latex
$\Sigma$
#+end_latex
, an ~mXn~ diagonal matrix with non-negative real numbers on diagonal.
-
#+begin_latex
$V^*$
#+end_latex
, an ~nXn~ unitary matrix over K, denotes the conjugate transpose of V.
- SVD of matrix ~m5~ can be found out as,
: In []: svd(m5)
* Summary
- Matrices
- creating matrices
- Matrix operations
- Inverse (~inv()~)
- Determinant (~det()~)
- Norm (~norm()~)
- Eigen values \& vectors (~eig(), eigvals()~)
- Singular Value Decomposition (~svd()~)
* Thank you!
#+begin_latex
\begin{block}{}
\begin{center}
This spoken tutorial has been produced by the
\textcolor{blue}{FOSSEE} team, which is funded by the
\end{center}
\begin{center}
\textcolor{blue}{National Mission on Education through \\
Information \& Communication Technology \\
MHRD, Govt. of India}.
\end{center}
\end{block}
#+end_latex
|