Matrices

Le module numpy n'est pas présent dans toutes les distributions de Python.

In [1]:
import numpy as np
In [2]:
A = np.array([[1, 2],[3, 5]])
print(A," = A")
[[1 2]
 [3 5]]  = A

Matrice unité ou identité :

In [3]:
I=np.eye(2)
print(I)
[[ 1.  0.]
 [ 0.  1.]]
In [4]:
print( 2*A + 3*I, " = 2A+3*I")
[[  5.   4.]
 [  6.  13.]]  = 2A+3*I

Remarque :

In [5]:
 print(2*A + 3)
[[ 5  7]
 [ 9 13]]
In [6]:
print(np.zeros((2,3)) , np.diag(np.array([1,2,3])),np.ones((1,4)), np.random.rand(5) )
[[ 0.  0.  0.]
 [ 0.  0.  0.]] [[1 0 0]
 [0 2 0]
 [0 0 3]] [[ 1.  1.  1.  1.]] [ 0.75964575  0.25981134  0.61308799  0.25851246  0.96780174]

Addition de matrices

In [7]:
B=np.array([[0,5],[2,-1]])
print(A," + ", B , " = " , A+B)
[[1 2]
 [3 5]]  +  [[ 0  5]
 [ 2 -1]]  =  [[1 7]
 [5 4]]

Produit de matrices

In [8]:
print(np.dot(A,B))
[[ 4  3]
 [10 10]]

Comparer avec :

In [9]:
print(A*B)
[[ 0 10]
 [ 6 -5]]

Produit scalaire de vecteurs :

In [10]:
V1=np.array([3,2])
V2=np.array([4,9])
np.vdot(V1,V2)
Out[10]:
30

Transposée

In [11]:
A.transpose()
Out[11]:
array([[1, 3],
       [2, 5]])

Inverse

In [12]:
from numpy import linalg
linalg.inv(A)
Out[12]:
array([[-5.,  2.],
       [ 3., -1.]])

Puissance de matrice

In [13]:
linalg.matrix_power(A,3)
Out[13]:
array([[ 43,  74],
       [111, 191]])

Valeurs propres et vecteurs propres

In [15]:
A = np.array([[2,1,3,-1],[3,-1,2,0],[1,3,4,-2],[4,-3,1,1]])
valeursPropres , vecteursPropres = linalg.eig(A)
print(valeursPropres)
print(vecteursPropres)
[  5.82842712e+00   1.71572875e-01   3.22904205e-14  -2.59045551e-16]
[[-0.54003331 -0.23856181 -0.21018944 -0.2015738 ]
 [-0.42818875 -0.52653139 -0.53655579  0.15429856]
 [-0.65187788  0.04940777  0.04700627  0.37950998]
 [-0.31634419 -0.81450097 -0.81591586  0.88968091]]
In [ ]: