Difference between revisions of "Python-3.4.3/C3/Basic-Matrix-Operations/English"

From Script | Spoken-Tutorial
Jump to: navigation, search
 
Line 31: Line 31:
 
** '''determinant''' of a '''matrix'''  
 
** '''determinant''' of a '''matrix'''  
 
** '''inverse''' of a '''matrix'''
 
** '''inverse''' of a '''matrix'''
** '''eigenvalues''' and '''eigenvectors''' of a '''matrix '''
+
** '''Eigen values''' and '''Eigen vectors''' of a '''matrix '''
  
 
|-
 
|-
Line 53: Line 53:
  
 
* '''Lists'''
 
* '''Lists'''
* '''arrays '''and '''accessing parts of arrays '''and
+
* '''Arrays '''and '''accessing parts of arrays '''and
* theoretical knowledge of '''matrix operations'''
+
* Theoretical knowledge of '''matrix operations'''
  
 
If not, see the relevant '''Python''' tutorials on this website.
 
If not, see the relevant '''Python''' tutorials on this website.
Line 88: Line 88:
  
 
'''from numpy import matrix'''
 
'''from numpy import matrix'''
 
'''m1 = matrix<nowiki>([1,2,3,4])</nowiki>'''
 
 
'''m1'''
 
 
Point to the output
 
 
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Let us create a '''matrix m1.'''
 
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Let us create a '''matrix m1.'''
  
Line 99: Line 93:
 
Type '''from numpy import matrix'''
 
Type '''from numpy import matrix'''
  
 
+
|-
Then type,
+
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Type,'''m1 = matrix<nowiki>([1,2,3,4])</nowiki>'''
 +
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Then type,
  
 
'''m1 '''''is equal to''''' matrix '''''inside brackets inside square brackets '''''1''''' comma '''''2''''' comma '''''3''''' comma '''''4'''
 
'''m1 '''''is equal to''''' matrix '''''inside brackets inside square brackets '''''1''''' comma '''''2''''' comma '''''3''''' comma '''''4'''
 
+
|-
 
+
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Type,'''m1'''
Now type '''m1'''
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Now type '''m1'''
 
+
|-
 
+
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Point to the output
This creates a '''matrix''' with one row and four columns.
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| This creates a '''matrix''' with one row and four columns.
  
 
|-
 
|-
Line 130: Line 125:
  
 
'''print(m2)'''
 
'''print(m2)'''
 
 
Highlight the output
 
 
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| A '''list''' can also be converted to a '''matrix''' as follows,  
 
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| A '''list''' can also be converted to a '''matrix''' as follows,  
  
Line 138: Line 130:
 
Type as shown.
 
Type as shown.
  
 
+
|-
You can see the '''matrix m2''' with values from '''list l1.'''
+
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Highlight the output
 +
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| You can see the '''matrix m2''' with values from '''list l1.'''
  
 
|-
 
|-
Line 183: Line 176:
  
 
Assignment 1
 
Assignment 1
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Create a two dimensional '''matrix''' '''m3 '''of '''shape''' 2 by 4 with the '''elements''' 5, 6, 7, 8, 9, 10, 11, 12.
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Create a two dimensional '''matrix m3 '''of '''shape''' 2 by 4 with the '''elements''' 5, 6, 7, 8, 9, 10, 11, 12.
  
  
Line 204: Line 197:
  
  
Type,''' m3'''
+
Type''' m3'''
  
 
You can see the required output.
 
You can see the required output.
Line 251: Line 244:
  
  
We get a '''tuple''' '''(2, 4).'''
+
We get a '''tuple (2, 4).'''
  
  
'''Matrix''' '''m2''' is of the shape, two by four,
+
'''Matrix m2''' is of the shape, two by four.
  
 
|-
 
|-
Line 314: Line 307:
  
  
As you saw, '''m4''' dot''' capital T''' will give the transpose of a '''matrix.'''
+
As you saw, '''m4''' dot''' capital T''' will give the '''transpose''' of a '''matrix.'''
  
 
|-
 
|-
Line 346: Line 339:
  
  
The '''determinant''' of '''m5''' can be found by issuing the '''command,'''
+
The '''determinant''' of '''m5''' can be found by issuing the '''command'''
  
 
'''det '''''inside brackets '''''m5'''
 
'''det '''''inside brackets '''''m5'''
Line 376: Line 369:
  
  
Then to see the the '''inverse''', type
+
Then to see the the '''inverse''', type '''im5'''
 
+
'''im5'''
+
  
 
|-
 
|-
Line 439: Line 430:
 
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Show Slide
 
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Show Slide
  
'''eigenvectors''' and '''eigenvalues'''
+
'''Eigen vectors''' and '''Eigen values'''
  
  
  
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Let us now move onto '''eigenvectors''' and '''eigenvalues.'''
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Let us now move onto '''Eigen vectors''' and '''Eigen values.'''
  
  
Line 463: Line 454:
 
'''m6=asmatrix(diag((1, 2, 3)))'''
 
'''m6=asmatrix(diag((1, 2, 3)))'''
  
 +
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Let us find out the '''eigenvalues''' and '''eigenvectors''' of the '''matrix m6'''.
  
Type,
+
 
 +
Type as shown.
 +
 
 +
|-
 +
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Type,
  
 
'''eig(m6)'''
 
'''eig(m6)'''
 +
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Now to see the value, type,'''eig '''''inside brackets '''''m6'''
  
 +
|-
 +
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Highlight '''diag((1, 2, 3)))'''
 +
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| '''diag '''''inside brackets again inside brackets '''''1 '''''comma''''' 2 '''''comma '''''3 '''
  
Highlight '''diag((1, 2, 3)))'''
+
creates a '''diagonal matrix''' with 1,2,3 as diagonal '''elements''' and '''0 '''elsewhere .
  
 
+
|-
Highlight
+
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Highlight
  
 
'''<nowiki>(array([1., 2., 3.]), matrix([[1., 0., 0.],</nowiki>'''
 
'''<nowiki>(array([1., 2., 3.]), matrix([[1., 0., 0.],</nowiki>'''
Line 479: Line 479:
  
 
'''<nowiki>[0., 0., 1.]]))</nowiki>'''
 
'''<nowiki>[0., 0., 1.]]))</nowiki>'''
 
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"|'''diag() function '''is present in''' numpy module.'''
 
+
Put box to array
+
 
+
 
+
Put box to matrix
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Let us find out the '''eigenvalues''' and '''eigenvectors''' of the '''matrix m6'''.
+
 
+
 
+
Type as shown.
+
 
+
 
+
Now to see the value, type,'''eig '''''inside brackets '''''m6'''
+
 
+
 
+
'''diag '''''inside brackets again inside brackets '''''1 '''''comma''''' 2 '''''comma '''''3 '''creates a '''diagonal matrix''' with 1,2,3 as diagonal '''elements''' and '''0 '''elsewhere .
+
 
+
 
+
'''diag() function '''is present in''' numpy module.'''
+
  
  
 
Note that '''eig '''''inside brackets '''''m6''' returned a '''tuple''' of one '''array''' and one '''matrix'''.  
 
Note that '''eig '''''inside brackets '''''m6''' returned a '''tuple''' of one '''array''' and one '''matrix'''.  
  
 +
|-
 +
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Put box to array
 +
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"|The first '''element''' in the '''tuple''' is an '''array''' of three '''eigen values'''.
  
The first '''element''' in the '''tuple''' is an '''array''' of three '''eigenvalues'''.
+
|-
 
+
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Put box to matrix
 
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"|The second '''element''' in the '''tuple''' is a '''matrix''' of three '''eigen vectors'''.  
The second '''element''' in the '''tuple''' is a '''matrix''' of three '''eigenvectors'''.  
+
  
 
|-
 
|-
Line 514: Line 498:
  
 
'''eig_value'''
 
'''eig_value'''
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| To get '''eigenvalues '''type,'''eig''''' underscore '''''value''''' is equal to''''' eig''''' inside brackets '''''m6 '''''inside square brackets '''''0'''
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| To get '''eigen values '''type,'''eig''''' underscore '''''value''''' is equal to''''' eig''''' inside brackets '''''m6 '''''inside square brackets '''''0'''
  
  
Line 526: Line 510:
  
 
'''<nowiki>eig_vector = eig(m6)[1]</nowiki>'''
 
'''<nowiki>eig_vector = eig(m6)[1]</nowiki>'''
 +
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| To get '''eigen vectors '''type,'''eig '''''underscore '''''vector '''''is equal to''''' eig''''' inside brackets '''''m6 '''''inside square brackets '''''1'''
 +
 +
|-
 +
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Type,
  
 
'''eig_vector'''
 
'''eig_vector'''
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| To get '''eigenvectors '''type,'''eig '''''underscore '''''vector '''''is equal to''''' eig''''' inside brackets '''''m6 '''''inside square brackets '''''1'''
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Then type '''eig '''''underscore '''''vector'''
 
+
 
+
Then type '''eig '''''underscore '''''vector'''
+
  
  
'''eig '''''underscore '''''vector '''contains '''eigenvector'''.
+
'''eig '''''underscore '''''vector '''contains '''eigen vector'''.
  
 
|-
 
|-
Line 542: Line 527:
  
 
'''eig_value1 = eigvals(m6)'''
 
'''eig_value1 = eigvals(m6)'''
 +
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| The '''eigen values''' can also be computed using '''eigvals() function'''.
  
  
Then type '''eig_value1'''
+
Type as shown.
 +
 
 +
|-
 +
| style="background-color:#ffffff;border-top:0.5pt solid #000001;border-bottom:0.5pt solid #000001;border-left:0.5pt solid #000001;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Then type '''eig_value1'''
  
  
 
Show both the outputs.
 
Show both the outputs.
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| The '''eigenvalues''' can also be computed using '''eigvals() function'''.
 
 
 
Type as shown.
 
 
  
Then type '''eig '''''underscore '''''value1'''
+
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.095cm;padding-right:0.191cm;"| Then type '''eig '''''underscore '''''value1'''
  
 
You can see that, '''eig '''''underscore '''''value '''and''' eig '''''underscore '''''value1 '''are same.
 
You can see that, '''eig '''''underscore '''''value '''and''' eig '''''underscore '''''value1 '''are same.
Line 575: Line 559:
 
* Use the '''function det()''' to find the '''determinant''' of a '''matrix'''
 
* Use the '''function det()''' to find the '''determinant''' of a '''matrix'''
 
* Find out the '''inverse''' of a '''matrix''' using the '''function inv() '''
 
* Find out the '''inverse''' of a '''matrix''' using the '''function inv() '''
* Find out the '''eigenvectors''' and '''eigenvalues''' of a '''matrix''', using the '''functions eig()''' and '''eigvals()'''
+
* Find out the '''eigen vectors''' and '''eigen values''' of a '''matrix''', using the '''functions eig()''' and '''eigvals()'''
  
 
|-
 
|-
Line 599: Line 583:
  
 
# '''Matrix''' multiplication between A and B is done by, A ''asterisk'' B
 
# '''Matrix''' multiplication between A and B is done by, A ''asterisk'' B
# False. '''eig '''''inside brackets '''''A''''' inside square brackets '''''0''' and '''eigvals '''''inside brackets '''''A''' are same, that is both will give the '''eigenvalues''' of '''matrix''' A.
+
# False. '''eig '''''inside brackets '''''A''''' inside square brackets '''''0''' and '''eigvals '''''inside brackets '''''A''' are same, that is both will give the '''eigen values''' of '''matrix''' A.
  
 
|-
 
|-

Latest revision as of 18:26, 7 December 2018

Title of script: Basic Matrix Operations

Author: Puneeth, Thirumalesh H S, Arun KP

Keywords: Python, IPython, matrices, determinant, reshape, arange, eigen values, eigen vectors, transpose of matrix


Visual Cue
Narration
Show Slide title Welcome to the spoken tutorial on Basic Matrix Operations.
Show Slide

Objectives


In this tutorial, you will learn to,
  • Create matrices from lists
  • Perform basic matrix operations like
    • addition
    • subtraction and
    • multiplication
  • Perform operations to find out
    • determinant of a matrix
    • inverse of a matrix
    • Eigen values and Eigen vectors of a matrix
Show Slide

System Specifications

To record this tutorial, I am using
  • Ubuntu Linux 16.04 operating system
  • Python 3.4.3
  • IPython 5.1.0
Show Slide

Pre-requisites


To practise this tutorial, you should have basic knowledge about
  • Lists
  • Arrays and accessing parts of arrays and
  • Theoretical knowledge of matrix operations

If not, see the relevant Python tutorials on this website.

Slide:
  • In Python, we create a matrix using numpy matrix class.
  • Matrix operations can be done using numpy operators and functions.
Type,

ipython3

Let us start ipython.


Open the terminal.

Type ipython3


Press Enter

Type ipython3 and press Enter.


From here onwards, remember to press the Enter key after typing every command on the terminal.

Type,


from numpy import matrix

Let us create a matrix m1.


Type from numpy import matrix

Type,m1 = matrix([1,2,3,4]) Then type,

m1 is equal to matrix inside brackets inside square brackets 1 comma 2 comma 3 comma 4

Type,m1 Now type m1
Point to the output This creates a matrix with one row and four columns.
Type,

m1.shape


Highlight the output

This can be verified by typing m1.shape


This gives the output as (1, 4)

Type,

l1 = [[1,2,3,4],[5,6,7,8]]

m2 = matrix(l1)

print(m2)

A list can also be converted to a matrix as follows,


Type as shown.

Highlight the output You can see the matrix m2 with values from list l1.
Slide:asmatrix
  • To convert an array to a matrix, use the asmatrix method in numpy module.
  • We can use arange and reshape methods to generate an array.
Highlight according to narration


Type,

from numpy import asmatrix,arange

m2_array = asmatrix(arange(1,9).reshape(2,4))

m2_array

Type as shown.


arange is a method available in numpy.


Here it returns an array of evenly spaced values between 1 and 9.


reshape is used to change the shape of the array to 2 rows and 4 columns.


asmatrix is a method available in numpy and it interprets the input as a matrix.

Pause the video.


Try this exercise and then resume the video.

Show Slide

Assignment 1

Create a two dimensional matrix m3 of shape 2 by 4 with the elements 5, 6, 7, 8, 9, 10, 11, 12.


Hint: Use arange() and reshape() methods and asmatrix() function.

Switch to the terminal Switch back to the terminal for the solution.
Type,

m3 = asmatrix(arange(5,13).reshape(2,4))


Type, m3

Type,

m3 is equal to asmatrix inside brackets arange inside brackets 5 comma 13 dot reshape inside brackets 2 comma 4


Type m3

You can see the required output.

Type,

m3 + m2

Next let us see some matrix operations.


Type, m3 plus m2


It performs element by element addition, that is matrix addition.


Note that both the matrices should be of the same shape.

Type,

m3 - m2

Similarly, type m3 minus m2


It performs matrix subtraction, that is element by element subtraction.


Note that both the matrices should be of the same shape.

Type,

6.5 * m2

Now we can multiply a scalar i.e a number by a matrix as shown.
Type,


m2.shape

Next we will check the size of m2 by typing,

m2.shape.


We get a tuple (2, 4).


Matrix m2 is of the shape, two by four.

Type,

m4 = asmatrix(arange(1,9).reshape(4,2))

Let us create another matrix, of the order 4 by 2.


Type,

m4 is equal to asmatrix inside brackets arange inside brackets 1 comma 9 dot reshape inside brackets 4 comma 2

Type

m4.shape

Now to check the shape, type m4.shape


We get (4,2) as the shape of m4.

Type,

m2 * m4

Highlight the output

The multiplication operator asterisk is used for matrix multiplication.


Type m2 asterisk m4


Now we get output as multiplication of m2 and m4.

Type,

print (m4)


Let us now see, how to find out the transpose of a matrix.


To see the content of m4, type print inside brackets m4

Type,

print(m4.T)


Point to the output

Now type,

print inside brackets m4 dot capital T


As you saw, m4 dot capital T will give the transpose of a matrix.

Show Slide:Determinant of a matrix We can get the determinant of a square matrix by using the function det() in numpy.linalg module.
Pause the video.


Try this exercise and resume the video.

Show Slide: Exercise Find out the determinant of this 3 by 3 matrix.
Switch to the terminal for solution. Switch to the terminal for the solution.
Type,

from numpy.linalg import det

m5 = matrix([[2,-3,1],[2,0,-1],[1,4,5]])

det(m5)

Type as shown.


The determinant of m5 can be found by issuing the command

det inside brackets m5


We get determinant of m5 as output.

Show Slide

Inverse of a matrix

We can get the inverse of a square matrix by using inv() function in numpy.linalg module.
Type,

from numpy.linalg import inv

im5 = inv(m5)


Type,

im5

Let us find the inverse of the matrix m5.


Type as shown.


Then to see the the inverse, type im5

Type,

from numpy import eye,allclose

allclose(im5 * m5, asmatrix(eye(3)))


Highlight eye


Highlight asmatrix(eye(3)))


Highlight allclose

Type from numpy import eye,allclose


Then type,

allclose inside brackets im5 asterisk m5 comma asmatrix inside brackets eye inside brackets 3


This returns True.


We know that multiplication of a matrix with its inverse gives the identity matrix.


Identity matrix is created using eye() function. It is present in the numpy module.


Here asmatrix inside brackets eye inside brackets 3 gives identity matrix of size 3.


allclose is a function that returns True if two arrays are element-wise equal.

Type,

eye?

To know more about these, we will check the documentation.


Type the function name followed by a question mark in IPython console.


Type eye question mark


To quit the documentation, press q.


It is a good practice to read documentation of new functions that you come across.

Show Slide

Eigen vectors and Eigen values


Let us now move onto Eigen vectors and Eigen values.


Given a square matrix A

  • eig inside brackets A inside square brackets 0 gives its eigenvalues
  • eig inside brackets A inside square brackets 1 gives its eigenvector
  • eigvals inside brackets A gives its eigenvalues

eig and eigvals functions are present in numpy.linalg module.

Type,

from numpy import diag

from numpy.linalg import eig

m6=asmatrix(diag((1, 2, 3)))

Let us find out the eigenvalues and eigenvectors of the matrix m6.


Type as shown.

Type,

eig(m6)

Now to see the value, type,eig inside brackets m6
Highlight diag((1, 2, 3))) diag inside brackets again inside brackets 1 comma 2 comma 3

creates a diagonal matrix with 1,2,3 as diagonal elements and 0 elsewhere .

Highlight

(array([1., 2., 3.]), matrix([[1., 0., 0.],

[0., 1., 0.],

[0., 0., 1.]]))

diag() function is present in numpy module.


Note that eig inside brackets m6 returned a tuple of one array and one matrix.

Put box to array The first element in the tuple is an array of three eigen values.
Put box to matrix The second element in the tuple is a matrix of three eigen vectors.
Type,

eig_value = eig(m6)[0]

eig_value

To get eigen values type,eig underscore value is equal to eig inside brackets m6 inside square brackets 0


Then type eig underscore value


As you can see eig underscore value contains eigenvalues.

Type,

eig_vector = eig(m6)[1]

To get eigen vectors type,eig underscore vector is equal to eig inside brackets m6 inside square brackets 1
Type,

eig_vector

Then type eig underscore vector


eig underscore vector contains eigen vector.

Type,

from numpy.linalg import eigvals

eig_value1 = eigvals(m6)

The eigen values can also be computed using eigvals() function.


Type as shown.

Then type eig_value1


Show both the outputs.

Then type eig underscore value1

You can see that, eig underscore value and eig underscore value1 are same.

Show Slide

Summary


This brings us to the end of this tutorial. Let us summarize.


In this tutorial, we have learnt to,

  • Create matrices using arrays
  • Add, subtract and multiply matrices
  • Take scalar multiple of a matrix
  • Use the function det() to find the determinant of a matrix
  • Find out the inverse of a matrix using the function inv()
  • Find out the eigen vectors and eigen values of a matrix, using the functions eig() and eigvals()
Show Slide

Self assessment questions


Here are some self assessment questions for you to solve
  1. A and B are two matrix objects of appropriate sizes. Which one of the below is correct for matrix multiplication?
  2. eig inside brackets A inside square brackets 1 and eigvals inside brackets A are the same. True or False?
Show Slide 13

Solution of self assessment questions


And the answers,
  1. Matrix multiplication between A and B is done by, A asterisk B
  2. False. eig inside brackets A inside square brackets 0 and eigvals inside brackets A are same, that is both will give the eigen values of matrix A.
Show Slide Forum Please post your timed queries in this forum.
Show Slide Fossee Forum Please post your general queries on Python in this forum.
Show slide TBC FOSSEE team coordinates the TBC project.
Show Slide

Acknowledgment

http://spoken-tutorial.org

Spoken Tutorial Project is funded by NMEICT, MHRD, Govt. of India.

For more details, visit this website.

Previous slide This is Priya from IIT Bombay signing off.

Thanks for watching.

Contributors and Content Editors

Nancyvarkey, Priyacst