We can use numpy.matrix to create matrices, rather than numpy.array. With numpy.array, the * operation is element-wise multiplication. However, with numpy.matrix, the * operation is real matrix multiplication. With numpy.array, we can always do real matrix multiplication with numpy.dot function.
The function numpy.trace finds the trace of a matrix, which is the sum of the diagonal.
# ex40.py
from __future__ import division, print_function
import numpy as np
A = np.matrix([[1,5,1],[2,-1,6],[1,0,3]])
print('A = \n',A)
B = np.matrix([[2,3,0],[3,-1,7],[4,8,9]])
print('B = \n',B)
print('5*A-10*B+3*A*B =\n',5*A-10*B+3*A*B)
print('trace(A*B)=',np.trace(A*B))
print('trace(B*A)=',np.trace(B*A))
# A =
# [[ 1 5 1]
# [ 2 -1 6]
# [ 1 0 3]]
# B =
# [[ 2 3 0]
# [ 3 -1 7]
# [ 4 8 9]]
# 5*A-10*B+3*A*B =
# [[ 48 13 137]
# [ 55 170 101]
# [ 7 1 6]]
# trace(A*B)= 103
# trace(B*A)= 103
No comments:
Post a Comment