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]])