import numpy as np # This imports a package called "numpy" that will make working with matrices # simpler # create two two-dimensional matrices of only one column each. x = np.matrix( '1.;2.;3.' ) print( 'x = ' ) print( x ) y = np.matrix( '-1.;0.;-2.' ) print( 'y = ' ) print( y ) alpha = 2.5 print( 'alpha = ' ) print( alpha ) import laff yold = np.matrix( '0;0;0' ) laff.copy( y, yold ) print( 'yold = ' ) print( y ) y = yold print( 'y before axpy:') print( y ) y = alpha * x + y print( 'y after axpy: ' ) print( y ) print( 'compare new y to alpha * x + yold:' ) print( y - ( alpha * x + yold ) ) laff.copy( yold, y ) print( 'y before axpy:') print( y ) for i in range( 3 ): y[ i, 0 ] = alpha * x[ i, 0 ] + y[ i, 0 ] print( 'y after axpy: ' ) print( y ) print( 'compare new y to alpha * x + yold:' ) print( y - ( alpha * x + yold ) ) def axpy( alpha, x, y ): m, n = np.shape( x ) for i in range( m ): y[ i, 0 ] = alpha * x[ i, 0 ] + y[ i, 0 ] laff.copy( yold, y ) print( 'y before axpy:') print( y ) axpy( alpha, x, y ) print( 'y after axpy: ' ) print( y ) print( 'compare new y to alpha * x + yold:' ) print( y - ( alpha * x + yold ) ) import laff laff.copy( yold, y ) print( 'y before axpy:') print( y ) laff.axpy( alpha, x, y ) print( 'y after axpy: ' ) print( y ) print( 'compare new y to alpha * x + yold:' ) print( y - ( alpha * x + yold ) ) def axpy( alpha, x, y ): ### You fill in the rest!