In [2]:
import numpy as np
In [3]:
arr1 = np.random.rand(5,5)
arr2 = np.random.rand(5,5)
matrix multiplication¶
In [4]:
print(arr1.dot(arr2))
# or
print(np.dot(arr1, arr2))
# or
print(arr1 @ arr2)
QR factorization¶
In [5]:
arr = np.random.rand(5,5)
q, r = np.linalg.qr(arr)
print(q)
print(r)
singular value decomposition (SVD)¶
In [6]:
arr = np.random.rand(5,5)
u, s, v = np.linalg.svd(arr)
print(u)
print(s)
print(v)
compute eigen values¶
In [7]:
arr = np.random.rand(5,5)
print(np.linalg.eigvals(arr))
eigen value decomposition¶
In [8]:
arr = np.random.rand(5,5)
w, v = np.linalg.eig(arr)
print(w) # eigen values
print(v) # eigen vectors
compute the trace & determinant¶
In [9]:
# notice this is not a function in linalg!!!
print(np.trace(arr))
In [10]:
print(np.linalg.det(arr))
calculate the inverse/psedo-inverse of a matrix¶
In [11]:
arr = np.random.rand(5,5)
In [12]:
# compute the inverse of a matrix
print(np.linalg.inv(arr))
In [13]:
# compute the psudo-inverse of a matrix
print(np.linalg.pinv(arr))
solve a linear system¶
In [14]:
# solve a linear system in closed form
y = [1,2,3,4,5]
print(np.linalg.solve(arr, y))
In [15]:
# calculate the least-squares solution of a linear system
y = [1,2,3,4,5]
solution, residuals, rank, singular = np.linalg.lstsq(arr, y,rcond=-1)
print(solution)
print(residuals)
print(rank)
print(singular)