summaryrefslogtreecommitdiff
path: root/matrices/script.rst
diff options
context:
space:
mode:
Diffstat (limited to 'matrices/script.rst')
-rw-r--r--matrices/script.rst193
1 files changed, 113 insertions, 80 deletions
diff --git a/matrices/script.rst b/matrices/script.rst
index 30a2856..a337605 100644
--- a/matrices/script.rst
+++ b/matrices/script.rst
@@ -31,36 +31,44 @@
Language Reviewer : Bhanukiran
Checklist OK? : <11-11-2010, Anand, OK> [2010-10-05]
-.. #[punch: please mark the exercises, using the syntax we decided upon.]
========
Matrices
========
-{{{ show the welcome slide }}}
-Welcome to the spoken tutorial on Matrices.
+{{{ Show the first slide containing title, name of the production
+team along with the logo of MHRD }}}
-{{{ switch to next slide, outline slide }}}
+Hello friends and welcome to the tutorial on 'Matrices'.
-In this tutorial we will learn about matrices, creating matrices using
-direct data, converting a list and matrix operations. Finding
-inverse of a matrix, determinant of a matrix, eigen values and eigen
-vectors of a matrix, norm and singular value decomposition of
-matrices.
+{{{ switch to slide with objectives }}}
-{{{ creating a matrix }}}
+At the end of this tutorial, you will be able to,
+
+ 1. 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.
+
+{{{ Switch to the pre-requisite slide }}}
+
+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".
All matrix operations are done using arrays. Thus all the operations
on arrays are valid on matrices also. A matrix may be created as,
::
+ ipython -pylab
m1 = array([1,2,3,4])
-
-.. #[Puneeth: don't use ``matrix``. Use ``array``. The whole script will
-.. have to be fixed.]
-
-Using the method ``shape`` we can find out the shape or size of the
+Using the method ``shape``, we can find out the shape or size of the
matrix,
::
@@ -75,12 +83,12 @@ A list can be converted to a matrix as follows,
l1 = [[1,2,3,4],[5,6,7,8]]
m2 = array(l1)
-{{{ switch to next slide, exercise 1}}}
+Pause the video here, try out the following exercise and resume the video.
-Pause here and create a two dimensional matrix m3 of order 2 by 4 with
-elements 5, 6, 7, 8, 9, 10, 11, 12.
+{{{ switch to slide, exercise 1}}}
-{{{ switch to next slide, solution }}}
+Create a two dimensional matrix m3 of order 2 by 4 with
+elements 5, 6, 7, 8, 9, 10, 11, 12.
m3 can be created as,
::
@@ -89,22 +97,21 @@ m3 can be created as,
{{{ switch to next slide, matrix operations }}}
-We can do matrix addition and subtraction as,
+We can do matrix addition and subtraction easily.
::
m3 + m2
-does element by element addition, thus matrix addition.
+m3+m2 does element by element addition, that is matrix addition.
Similarly,
::
m3 - m2
-it does matrix subtraction, that is element by element
-subtraction. Now let us try,
-
-{{{ Switch to next slide, Matrix multiplication }}}
+Similarly,m3-m2 does matrix subtraction, that is element by element
+subtraction.
+Now let us try,matrix multiplication
::
m3 * m2
@@ -120,8 +127,6 @@ And matrix multiplication in matrices are done using the function ``dot()``
but due to size mismatch the multiplication could not be done and it
returned an error,
-{{{ switch to next slide, Matrix multiplication (cont'd) }}}
-
Now let us see an example for matrix multiplication. 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. Thus let us
@@ -130,7 +135,7 @@ first create two matrices which are compatible for multiplication.
m1.shape
-matrix m1 is of the shape one by four, let us create another one of
+matrix m1 is of the shape one by four, let us create another one, of
the order four by two,
::
@@ -141,15 +146,14 @@ thus the function ``dot()`` can be used for matrix multiplication.
{{{ switch to next slide, recall from arrays }}}
-As we already saw in arrays, the functions ``identity()`` which
-creates an identity matrix of the order n by n, ``zeros()`` which
-creates a matrix of the order m by n with all zeros, ``zeros_like()``
-which creates a matrix with zeros with the shape of the matrix passed,
-``ones()`` which creates a matrix of order m by n with all ones,
-``ones_like()`` which creates a matrix with ones with the shape of the
-matrix passed. These functions can also be used with matrices.
-
-{{{ switch to next slide, more matrix operations }}}
+As we already learnt in arrays, the function ``identity()`` which
+creates an identity matrix of the order n by n, the function ``zeros()``
+which creates a matrix of the order m by n with all zeros, the function
+``zeros_like()`` which creates a matrix with zeros with the shape of
+the matrix passed, the function ``ones()`` which creates a matrix of
+order m by n with all ones, the function ``ones_like()`` which creates a
+matrix with ones with the shape of the matrix passed; all these
+functions can also be used with matrices.
To find out the transpose of a matrix we can do,
::
@@ -161,8 +165,6 @@ Matrix name dot capital T will give the transpose of a matrix
{{{ switch to next slide, Frobenius norm of inverse of matrix }}}
-.. #[punch: arange has not been introduced.]
-
Now let us try to find out the Frobenius norm of inverse of a 4 by 4
matrix, the matrix being,
::
@@ -170,23 +172,17 @@ matrix, the matrix being,
m5 = arange(1,17).reshape(4,4)
print m5
-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. The
+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. The
Frobenius norm of a matrix is defined as square root of sum of squares
-of elements in the matrix. Pause here and try to solve the problem
-yourself, the inverse of a matrix can be found using the function
-``inv(A)``.
+of elements in the matrix. The inverse of a matrix can be found using the
+function ``inv(A)``.
And here is the solution, first let us find the inverse of matrix m5.
::
im5 = inv(m5)
-.. #[punch: we don't need to show this way of calculating the norm, do
-.. we? even if we do, we should show it in the "array style".
-.. something like:
-.. sqrt(sum(each * each))]
-
And the Frobenius norm of the matrix ``im5`` can be found out as,
::
@@ -196,11 +192,10 @@ And the Frobenius norm of the matrix ``im5`` can be found out as,
print sqrt(sum)
{{{ switch to next slide, infinity norm }}}
-.. #[punch: similarly for this section.]
-Now try to find out the infinity norm of the matrix im5. The infinity
-norm of a matrix is defined as the maximum value of sum of the
-absolute of elements in each row. Pause here and try to solve the
+Now let us move on to find out the infinity norm of the matrix im5.
+The infinity norm of a matrix is defined as the maximum value of sum of
+the absolute of elements in each row. Pause here and try to solve the
problem yourself.
@@ -229,42 +224,39 @@ And to find out the Infinity norm of the matrix im5, we do,
norm(im5,ord=inf)
-This is easier when compared to the code we wrote. Do ``norm``
-question mark to read up more about ord and the possible type of norms
+This is easier when compared to the code we wrote. Read the documentation
+of ``norm`` to read up more about ord and the possible type of norms
the norm function produces.
-{{{ switch to next slide, determinant }}}
-
Now let us find out the determinant of a the matrix m5.
-The determinant of a square matrix can be obtained using the function
+The determinant of a square matrix can be obtained by using the function
``det()`` and the determinant of m5 can be found out as,
::
det(m5)
+Hence we get the determinant.
+
{{{ switch to next slide, eigen vectors and eigen values }}}
The eigen values and eigen vector of a square matrix can be computed
using the function ``eig()`` and ``eigvals()``.
Let us find out the eigen values and eigen vectors of the matrix
-m5. We can do it as,
+m5. We find them as,
::
eig(m5)
-
-.. #[punch: has the tuple word been introduced?]
-
Note that it returned a tuple of two matrices. The first element in
the tuple are the eigen values and the second element in the tuple are
-the eigen vectors. Thus the eigen values are,
+the eigen vectors. Thus the eigen values are given by,
::
eig(m5)[0]
-and the eigen vectors are,
+and the eigen vectors are given by,
::
eig(m5)[1]
@@ -279,15 +271,15 @@ The eigen values can also be computed using the function ``eigvals()`` as,
Now let us learn how to do the singular value decomposition or S V D
of a matrix.
-Suppose M is an m×n matrix whose entries come from the field K, which
+Suppose M is an m×n matrix, whose entries come from the field K, which
is either the field of real numbers or the field of complex
numbers. Then there exists a factorization of the form
M = U\Sigma V star
where U is an (m by m) unitary matrix over K, the matrix \Sigma is an
-(m by n) diagonal matrix with nonnegative real numbers on the
-diagonal, and V*, an (n by n) unitary matrix over K, denotes the
+(m by n) diagonal matrix with 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. Such a factorization is called the
singular-value decomposition of M.
@@ -299,21 +291,62 @@ The SVD of matrix m5 can be found as
Notice that it returned a tuple of 3 elements. The first one U the
next one Sigma and the third one V star.
-{{{ switch to next slide, recap slide }}}
+{{{ switch to summary slide }}}
-So this brings us to the end of this tutorial. In this tutorial, we
-learned about matrices, creating matrices, matrix operations, inverse
-of matrices, determinant, norm, eigen values and vectors and singular
-value decomposition of matrices.
+This brings us to the end of the end of this tutorial.In this tutorial,
+we have learnt to,
-{{{ switch to next slide, thank you }}}
+ 1. Create matrices using arrays.
+ #. Add,subtract and multiply the elements of matrix.
+ #. Find out the inverse of a matrix,using the function ``inv()``.
+ #. Use the function ``det()`` to find the determinant of a matrix.
+ #. Calculate the norm of a matrix using the for loop and also using
+ the function ``norm()``.
+ #. Find out the eigen vectors and eigen values of a matrix, using
+ functions ``eig()`` and ``eigvals()``.
+ #. Calculate singular value decomposition(SVD) of a matrix using the
+ function ``svd()``.
+{{{Show self assessment questions slide}}}
+
+Here are some self assessment questions for you to solve
+
+1. A and B are two array objects. Element wise multiplication in
+ matrices are done by,
+
+ - A * B
+ - ``multiply(A, B)``
+ - ``dot(A, B)``
+ - ``element_multiply(A,B)``
+
+2. ``eig(A)[1]`` and ``eigvals(A)`` are the same.
+
+ - True
+ - False
+
+3. ``norm(A,ord='fro')`` is the same as ``norm(A)`` ?
+
+ - True
+ - False
+
+{{{solution of self assessment questions on slide}}}
+
+And the answers,
+
+1. Element wise multiplication between two matrices, A and B is done as,
+ A * B
+
+2. False.
+ ``eig(A)[0]`` and ``eigvals(A)`` are same, that is both will give the
+ eigen values of matrrix A.
+
+3. ``norm(A,ord='fro')`` and ``norm(A)`` are same, since the order='fro'
+ stands for frobenius norm. Hence true.
+
+
+{{{ switch to Thank you slide }}}
+
+Hope you have enjoyed this tutorial and found it useful.
Thank you!
-..
- Local Variables:
- mode: rst
- indent-tabs-mode: nil
- sentence-end-double-space: nil
- fill-column: 70
- End:
+