Python/C3/Matrices/English-timed
From Script | Spoken-Tutorial
Time | Narration |
00:01 | Hello friends and welcome to the tutorial on 'Matrices'. |
00:05 | At the end of this tutorial, you will be able to,
Create matrices using data. Create matrices from lists. Do basic matrix operations like addition,multiplication. Perform operations to find out the -- - inverse of a matrix. - determinant of a matrix. - eigen values and eigen vectors of a matrix. - norm of a matrix. - singular value decomposition of a matrix. |
00: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". |
00:42 | Let us start our ipython interpreter by pylab loaded |
00:47 | Type ipython hypen pylab in terminal |
00:52 | All matrix operations are done using arrays. |
00:55 | Thus all the operations on arrays are valid on matrices only. |
01:00 | A matrix may be created as, |
01:02 | Type in the terminal m1 = array within bracket and square bracket 1 comma 2 comma 3 comma 4 hit enter. |
01:16 | Using the method shape , we can find out the shape or size of the matrix, |
01:20 | Type m1 dot shape and hit enter |
01:27 | We can see the output |
01:29 | Since it is a one row four column matrix it returned a tuple, one by four. |
01:46 | A list can also be converted to a matrix as follows, |
01: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 |
02:28 | Sorry you have to type l1 array . |
02:35 | Pause the video here, try out the following exercise and resume the video. |
02:43 | Create a two dimensional matrix m3 of order 2 by 4 with elements 5, 6, 7, 8, 9, 10, 11, 12. |
02:51 | Switch to terminal for solution. |
02:54 | m3 can be created as, |
02: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 |
03:31 | Let us now move to matrix operations. |
03:34 | We can do matrix addition and subtraction easily. |
03:37 | m3+m2 does element by element addition, that is matrix addition. |
03:43 | Note that both the matrices should be of the same order. |
03:47 | Type m3+m2 and hit enter so you can see the output. |
03:55 | Similarly,m3 minus m2 does matrix subtraction, that is element by element subtraction. |
04:02 | You can try out by typing m3 minus m2 |
04:09 | Now let us try,matrix multiplication |
04:13 | Type m3 star m2 |
04:20 | Note that in arrays m3 star m2 does element wise multiplication and not matrix multiplication, |
04:28 | Matrix multiplication in matrices are done using the function dot() |
04:37 | Type dot within bracket m3 comma m2 and hit enter. |
04:47 | So we can see error value show in the command. |
04:50 | Due to size mismatch, the multiplication could not be done and it returned an error. |
04:56 | Now let us see an example for matrix multiplication. |
05: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. |
05:11 | Thus let us first create two matrices which are compatible for multiplication. |
05:16 | Type m1.shape and hit enter |
05:24 | matrix m1 is of the shape one by four, |
05:28 | let us create another one, of the order four by two, |
05: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 |
06:10 | Thus the dot() function is used for matrix multiplication. |
06:15 | As we already learnt in arrays, the function identity() which creates an identity matrix of the order n by n, |
06:24 | the function zeros() which creates a matrix of the order m by n with all zeros, |
06:30 | the function zeros like function() which creates a matrix with zeros with the shape of the matrix passed, |
06:39 | the function ones() which creates a matrix of order m by n with all ones, |
06:47 | the function ones underscore like() which creates a matrix with ones with the shape of the matrix passed; |
06:53 | all these functions can also be used with matrices. |
06:57 | So now Let us see, how to find out the transpose of a matrix we can do, |
07:03 | Type print m4, m4 dot T |
07:14 | As you saw, Matrix name dot capital T will give the transpose of a matrix |
07:21 | Pause the video here, try out the following exercise and resume the video. |
07:26 | Find out the Frobenius norm of inverse of a 4 by 4 matrix, the matrix being, |
07:33 | m5 = arrange within bracket 1 comma 17 dot reshape to 4 comma 4 |
07:44 | The Frobenius norm of a matrix is defined as, the square root of the sum of the absolute squares of its elements |
07:54 | Switch to terminal for the solution |
07:58 | Let us create the matrix m5 by using the data provided in the question |
08:03 | Type m5 = arrange within bracket 1 comma 17.reshape within square bracket 4 comma 4. Then type print m5 |
08: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. |
08:33 | The Frobenius norm of a matrix is defined as square root of sum of squares of elements in the matrix. |
08:41 | The inverse of a matrix can be found using the function inv(A) . |
08:47 | Type in the terminal im5 = inv within bracket m5 |
08: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 |
09:52 | Thus we have successfully obtained the Frobenius norm of the matrix m5 |
09: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, Create matrices using arrays. |
15:25 | Add,subtract and multiply the elements of matrix. |
15:28 | Find out the inverse of a matrix,using the function inv() . |
15:32 | Use the function det() to find the determinant of a matrix. |
15:36 | Calculate the norm of a matrix using the for loop and also using the function norm() |
15:43 | Finding out the eigen vectors and eigen values of a matrix, using functions eig() and eigvals() |
15:50 | 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 | 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 | eig within bracket A within square bracket 1 and eigvals within bracket A are the same.Is it True or False? |
16:31 | 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 | Element wise multiplication between two matrices, A and B is done as, A into B |
16:53 | 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 | 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! |