This notebook walks you through how to implement simple functions that set a square matrix to the identity matrix.
We will use some functions that are part of our laff library (of which this function will become a part) as well as some routines from the FLAME API (Application Programming Interface) that allows us to write code that closely resembles how we typeset algorithms using the FLAME notation. These functions are imported with the "import laff as laff" and "import flame" statements.
The specific laff functions we will use are
laff.zerov
which, when given a row or column vector (stored as a 1 x n or n x 1 matrix) will zero that vector. laff.onev
which, when given a row or column vector (stored as a 1 x n or n x 1 matrix) will set all components of that vector to one. We will use it with the scalar alpha11
. Follow along with the video, using the Spark webpage .
# insert code here
Let's quickly test the routine by creating a 5 x 5 matrix and then setting it to the identity.
from numpy import random
from numpy import matrix
A = matrix( random.rand( 5,5 ) )
print( 'A before =' )
print( A )
Set_to_identity_unb_var1( A )
print( 'A after =' )
print( A )
Bingo, it seems to work!
Now, one could alternatively set a matrix to zero by rows.
Use the Spark webpage to generate the function Set_to_identity_unb_var2( A ) that overwrites A with the identity one row at a time.
# insert code here
Test your routine with the following
from numpy import random
from numpy import matrix
A = matrix( random.rand( 5,5 ) )
print( 'A before =' )
print( A )
Set_to_identity_unb_var2( A )
print( 'A after =' )
print( A )
Copy and paste the code into PictureFLAME , a webpage where you can watch your routine in action. Just cut and paste into the box.
Disclaimer: we implemented a VERY simple interpreter. If you do something wrong, we cannot guarantee the results. But if you do it right, you are in for a treat.
If you want to reset the problem, just click in the box into which you pasted the code and hit "next" again.