eig.py
# coding=utf-8
#Bibliothèque de calculs numériques(LAPACK)
import numpy as np
#Bibliothèque aléatoire
import random
#Matrice zéro 10x10
A = np.zeros((10,10))
#Initialisation
for i in range(10):
for j in range(10):
rand = random.randint(1,10)
A[i][j] = rand
A[j][i] = rand
print 'Matrice symétrique de calcul'
print A
l,v = np.linalg.eig(A)
print 'valeur propre'
print l
print 'Vecteur unique'
print v
C'est vraiment facile à faire.
Dans le cas de l'initialisation de la matrice de symétrie réelle, le nombre de boucles est maintenant redondant, j'ai donc voulu l'implémenter comme suit, mais j'ai abandonné car tous les termes diagonaux sont devenus nuls.
init
for i in range(10):
for j in range(i):
rand = random.randint(1,10)
if rand == 0:
ptint 1
A[i][j] = rand
A[j][i] = rand
J'ai pensé à enquêter sur la cause, mais je me fâche avec SyntaxError, alors recommençons
Numpy a LAPACK intégré, mais Matlab semble avoir LAPACK intégré dans la partie calcul des valeurs propres.
Recommended Posts