Python/C3/Matrices/English-timed
From Script | Spoken-Tutorial
Visual Cue | Narration |
---|---|
0:01 | Hello friends and welcome to the tutorial on 'Matrices'. |
0:05 | At the end of this tutorial, you will be able to,
|
0:31 | Before beginning this tutorial,we would suggest you to complete the tutorial on "Getting started with lists", "Getting started with arrays", "Accessing parts of arrays". |
0:42 | Let us start our ipython interpreter by pylab loaded |
0:47 | Type ipython hypen pylab in terminal |
0:52 | All matrix operations are done using arrays. |
0:55 | Thus all the operations on arrays are valid on matrices only. |
1:00 | A matrix may be created as, |
1:02 | Type in the terminal m1 = array within bracket and square bracket 1 comma 2 comma 3 comma 4 hit enter. |
1:16 | Using the method shape , we can find out the shape or size of the matrix, |
1:20 | Type m1 dot shape and hit enter |
1:27 | We can see the output |
1:29 | Since it is a one row four column matrix it returned a tuple, one by four. |
1:46 | A list can also be converted to a matrix as follows,
|
1:50 | Type l1 = within square bracket square bracket 1 comma 2 comma 3 comma 4 comma in another square bracket 5 comma 6 comma 7 comma 8
Type m2 = array within bracket 11 |
2:28 | Sorry you have to type l1 array . |
2:35 | Pause the video here, try out the following exercise and resume the video. |
2:43 | Create a two dimensional matrix m3 of order 2 by 4 with elements 5, 6, 7, 8, 9, 10, 11, 12. |
2:51 | Switch to terminal for solution. |
2:54 | m3 can be created as, |
2:56 | Type m3 = array within closing bracket inside square bracket square bracket 5 comma 6 comma 7 comma 8 comma in another square bracket 9 comma 10 comma 11 comma 12 |
3:31 | Let us now move to matrix operations. |
3:34 | We can do matrix addition and subtraction easily. |
3:37 | m3+m2 does element by element addition, that is matrix addition. |
3:43 | Note that both the matrices should be of the same order. |
3:47 | Type m3+m2 and hit enter so you can see the output. |
3:55 | Similarly,m3 minus m2 does matrix subtraction, that is element by element subtraction. |
4:02 | You can try out by typing m3 minus m2 |
4:09 | Now let us try,matrix multiplication |
4:13 | Type m3 star m2 |
4:20 | Note that in arrays m3 star m2 does element wise multiplication and not matrix multiplication, |
4:28 | Matrix multiplication in matrices are done using the function dot() |
4:37 | Type dot within bracket m3 comma m2 and hit enter. |
4:47 | So we can see error value show in the command. |
4:50 | Due to size mismatch, the multiplication could not be done and it returned an error. |
4:56 | Now let us see an example for matrix multiplication. |
5:00 | For doing matrix multiplication we need to have two matrices of the order n by m and m by r and the resulting matrix will be of the order n by r. |
5:11 | Thus let us first create two matrices which are compatible for multiplication. |
5:16 | Type m1.shape and hit enter |
5:24 | matrix m1 is of the shape one by four, |
5:28 | let us create another one, of the order four by two, |
5:33 | So type m4 = array in closing bracket within square bracket within square bracket 1 comma 2 comma within square bracket 3 comma 4 comma within square bracket 5 comma 6 within square bracket comma within square bracket 7 comma 8
Type dot within bracket m1 comma m4 |
6:10 | Thus the dot() function is used for matrix multiplication. |
6:15 | As we already learnt in arrays, the function identity() which creates an identity matrix of the order n by n, |
6:24 | the function zeros() which creates a matrix of the order m by n with all zeros, |
6:30 | the function zeros like function() which creates a matrix with zeros with the shape of the matrix passed, |
6:39 | the function ones() which creates a matrix of order m by n with all ones, |
6:47 | the function ones underscore like() which creates a matrix with ones with the shape of the matrix passed; |
6:53 | all these functions can also be used with matrices. |
6:57 | So now Let us see, how to find out the transpose of a matrix we can do, |
7:03 | Type print m4
m4 dot T |
7:14 | As you saw, Matrix name dot capital T will give the transpose of a matrix |
7:21 | Pause the video here, try out the following exercise and resume the video. |
7:26 | Find out the Frobenius norm of inverse of a 4 by 4 matrix, the matrix being, |
7:33 | m5 = arrange within bracket 1 comma 17 dot reshape to 4 comma 4 |
7:44 | The Frobenius norm of a matrix is defined as, the square root of the sum of the absolute squares of its elements |
7:54 | Switch to terminal for the solution |
7:58 | Let us create the matrix m5 by using the data provided in the question |
8:03 | Type m5 = arrange within bracket 1 comma 17.reshape within square bracket 4 comma 4
Then type print m5 |
8:20 | The inverse of a matrix A, A raise to minus one, is also called the reciprocal matrix, such that A multiplied by A inverse will give 1. |
8:33 | The Frobenius norm of a matrix is defined as square root of sum of squares of elements in the matrix. |
8:41 | The inverse of a matrix can be found using the function inv(A) . |
8:47 | Type in the terminal im5 = inv within bracket m5 |
8:57 | And the Frobenius norm of the matrix im5 can be found out as,
sum = 0 for each in im5 dot flatten function(): sum plus= each star each print sqrt within bracket sum |
9:52 | Thus we have successfully obtained the Frobenius norm of the matrix m5 |
9:58 | Pause the video here, try out the following exercise and resume the video. |
10:04 | Find out the infinity norm of the matrix im5. |
10:08 | The infinity norm of a matrix is defined as the maximum value of sum of the absolute of elements in each row. |
10:16 | Switch to terminal for the solution |
10:20 | sum underscore rows = square bracket
for i in im5 colon sum underscore rows.append within bracket abs within bracket i.sum() print max within square bracket sum underscore rows |
11:01 | Well! to find out the Frobenius norm and Infinity norm we have an even easier method, and let us see that now. |
11:10 | The norm of a matrix can be found out using the method norm(). |
11:19 | In order to find out the Frobenius norm of the matrix im5, we do, |
11:25 | In the terminal type norm within bracket im5 and hit enter |
11:34 | And to find out the Infinity norm of the matrix im5, we do, |
11:39 | norm within bracket im5,ord=inf |
11:51 | This is easier when compared to the code we wrote. |
11:55 | Read the documentation of norm to read up more about ord and the possible type of norms the norm function produces. |
12:04 | Now let us find out the determinant of a the matrix m5. |
12:11 | The determinant of a square matrix can be obtained by using the function det() and the determinant of m5 can be found out as, |
12:20 | So type det within bracket m5 |
12:26 | Hence we get the determinant. |
12:29 | Let us now move on to eigen vectors and eigen values |
12:34 | The eigen values and eigen vector of a square matrix can be computed using the function eig() and eigvals(). |
12:46 | Let us find out the eigen values and eigen vectors of the matrix m5. We find them as, |
12:53 | Typing eig within bracket m5 in the terminal. |
13:02 | Note that it returned a tuple of two matrices. |
13:06 | The first element in the tuple are the eigen values and the second element in the tuple are the eigen vectors. |
13:11 | Thus eigen values are given by,eig within bracket m5 and in square bracket 0 |
13:30 | and the eigen vectors are given by,eig within bracket m5 within square bracket 1 |
13:44 | The eigen values can also be computed using the function eigvals() as, |
13:50 | Typing on the terminal eigvals within bracket m5 |
13:58 | Now let us learn how to do the singular value decomposition or S V D of a matrix. |
14:06 | Suppose M is an m (cross) in matrix, whose entries come from the field K, which is either the field of real numbers or the field of complex numbers. |
14:18 | Then there exists a factorization of the form
M = U Sigma V star |
14:25 | where U is an (m by m) unitary matrix over K, the matrix Sigma is an (m by n) diagonal matrix and the non-negative real numbers on the diagonal, and V* is an (n by n) unitary matrix over K,which denotes the conjugate transpose of V. |
14:53 | Such a factorization is called the singular-value decomposition of M. |
14:58 | The SVD of matrix m5 can be found as |
15:01 | So now open the terminal and type svd within brackets m5 |
15:09 | Notice that it returned a tuple of 3 elements. |
15:12 | The first one U the next one Sigma and the third one V star |
15:19 | This brings us to the end of the end of this tutorial. |
15:22 | In this tutorial, we have learnt to, 1. Create matrices using arrays. |
15:25 | 2. Add,subtract and multiply the elements of matrix. |
15:28 | 3. Find out the inverse of a matrix,using the function inv() . |
15:32 | 4. Use the function det() to find the determinant of a matrix. |
15:36 | 5. Calculate the norm of a matrix using the for loop and also using the function norm() |
15:43 | 6. Finding out the eigen vectors and eigen values of a matrix, using functions eig() and eigvals() |
15:50 | 7. Calculate singular value decomposition(SVD) of a matrix using the function svd() . |
15:58 | Here are some self assessment questions for you to solve |
16:01 | 1. A and B are two array objects. Element wise multiplication in matrices are done by,
A * B multiply within bracket A comma B dot within bracket A comma B element underscore multiply within bracket A comma B |
16:19 | 2. eig within bracket A within square bracket 1 and eigvals within bracket A are the same.Is it True or False? |
16:31 | 3. norm within bracket A comma ord= within is equal to fro is the same as norm within bracket A . Is it True or False? |
16:43 | Look at the answers, |
16:47 | 1. Element wise multiplication between two matrices, A and B is done as, A into B |
16:53 | 2. False. eig within bracket A within square bracket 0and eigvals within bracket A are same, that is both will give the eigen values of matrix A. |
17:06 | 3. norm within bracket A comma ord=is equal to fro and norm(A) are same, since the order=is equal to fro stands for Frobenius norm. |
17:22 | Hence answer is true. |
17:26 | Hope you have enjoyed this tutorial and found it useful. |
17:30 | Thank you! |