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)
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
Ce que j'ai constaté avec mes essais :
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 :
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
et j'ai besoin de toutes les valeurs, sachant que ma liste initiale pourrait atteindre 300 valeurs !

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