The NumPy library is very helpful for solving linear systems in python. For instructions on how to install NumPy look here.
Matrixes in Python
In Python, matrices are not it's own thing, but rather a list of list/nested lists. Let's look at an example:
Our matrix of choice will be To represent this matrix in python, we will consider the matrix as two independent lists, and , put together in one list. Written in code, it looks like this:
mat1 = [[1, 2, 3], [4, 5, 6]] # To make the matrices easier to read while coding, we can place the different lists vertical to eachother, rather than horizontally. mat2 = [[1, 2, 3], [4, 5, 6]] # Printing both of these matrices will result in the same output: [[1, 2, 3], [4, 5, 6]] # To alter the output to a more readable format, for-loops are very helpful: [[1, 2, 3], [4, 5, 6]]
Creating a matrix
a = np.array([[1,2],[3,4]])
In Python rows and columns start at 0. For example index the data at first row second column :
Indexing matrix
b = a[0,1]
Linear algebra using NumPy
NumPy has several useful functions for linear algebra built-in. For full list look check the NumPy documentation.
Solve()
np.linalg.solve(a,b) #where a and b is matrixs #returns a array with solutions to the system
Eigenvalues and eigenvectors
np.linalg.eig(a) # where a is a square matrix #returns two arrays [v,w] #v containing the eigenvalues of a #w containing the eigenvectors of a
Determinant
np.linalg.det(a) # where a is a square matrix #returns the determinant of the matrix a
Finding the inverse
np.linalg.inv(a) # where a is the matrix to be inverted #Returns the inverse matrix of a
Example
Solving set of equations
import numpy as np # Solving following system of linear equation # 5a + 2b = 35 # 1a + 4b = 49 a = np.array([[5, 2],[1,4]]) # Lefthand-side of the equation b = np.array([35, 94]) #Righthand-side print(np.linalg.solve(a,b)) #Printing the solution