In the lab session of Tuesday 26 February 2008,
we used SciPy in Python. Below are examples of
what we tried.
# part I: solving linear system
>>> from numpy import matrix
>>> import scipy.linalg
>>> help(scipy.linalg)
>>> from scipy.linalg import solve
>>> A = matrix([[1,2],[3,4]])
>>> A
matrix([[1, 2],
[3, 4]])
>>> b = matrix([[2],[4]])
>>> b
matrix([[2],
[4]])
>>> solve(A,b)
array([[ 0.],
[ 1.]])
>>> x = _
>>> x
array([[ 0.],
[ 1.]])
>>> A*x
matrix([[ 2.],
[ 4.]])
>>> scipy.linalg.det(A)
-2.0
# Part II: verify det(A*B) = det(A)*det(B)
>>> B = matrix([[3,5],[9,10]])
>>> B
matrix([[ 3, 5],
[ 9, 10]])
>>> C = A*B
>>> C
matrix([[21, 25],
[45, 55]])
>>> from scipy.linalg import det
>>> det(C)
29.999999999999893
>>> det(A)*det(B)
29.999999999999993
# verify for random matrices
>>> from numpy import random
>>> a = random.random((3,3))
>>> b = random.random((3,3))
>>> A = matrix(a)
>>> B = matrix(b)
>>> A*B
>>> B*A
>>> det(A)*det(B)
>>> det(B)*det(A)
# Important: conversion to matrices is needed !!
# Part III : numerical integration
>>> from scipy.integrate import quad
>>> quad(lambda x: x**2,0,1)
# Part IV : eigenvalue/eigenvectors
>>> A
matrix([[1, 2],
[3, 4]])
>>> (v,x) = eig(A)
>>> v
array([-0.37228132+0.j, 5.37228132+0.j])
>>> x
array([[-0.82456484, -0.41597356],
[ 0.56576746, -0.90937671]])
>>> X = matrix(x)
>>> A*X[:,1]
matrix([[-2.23472698],
[-4.88542751]])
>>> v[1]*X[:,1]
matrix([[-2.23472698+0.j],
[-4.88542751+0.j]])
>>> A*X[:,0]
matrix([[ 0.30697009],
[-0.21062466]])
>>> v[0]*X[:,0]
matrix([[ 0.30697009-0.j],
[-0.21062466+0.j]])