Bonjour,
j'ai besoin de votre aide car afin de contourner la limite de numpy car j'ai n boucles de calcul de matrice de type complexe (je transforme une matrice ABCD en Matrice S)
Ce que j'ai constaté avec mes essais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ABCD = numpy.matrix([[1,0],[0,1]]) for nz in range(0,len(Z)): ... ... Cos = cosh(coef) Sin = sinh(coef) ABCD = ABCD * numpy.matrix([[Cos,Sin*Zc],[Sin/Zc,Cos]]) ABCD
j'ai une liste de 125 valeurs
si je prends une valeur sur 2, ça marche (soit environ 65 boucles)
mais si je prends toutes les valeurs (soit 125 boucles) j'ai le message d'erreur suivant :
et j'ai besoin de toutes les valeurs, sachant que ma liste initiale pourrait atteindre 300 valeurs !ABCD = ABCD * numpy.matrix([[Cos,Sin*Zc],[Sin/Zc,Cos]]) # Création de la matrice ABCD d'un élément de la ligne ([A,B],[C,D])
File "C:\Python27\lib\site-packages\numpy\matrixlib\defmatrix.py", line 330, in __mul__
return N.dot(self, asmatrix(other))
MemoryError
Ma solution non mathematique serait de couper ma liste Z en plusieurs sous-listes afin d'atteindre le nombre de boucles suffisant pour satisfaire mon pc et ainsi faire une suite de boucle suivant mes sous-listes.
Mais peut-être que numpy n'est pas l'idéal pour le calcul de matrice.
Avez-vous quelques choses à me proposer ?
Autre question : ai-je été claire
Merci par avance pour votre aide
Patricia
Partager