Bonjour, je souhaite résoudre un système de deux équations différentielles avec la méthode d'Euler vectorielle mais j'ai une erreur concernant la taille des arrays (je crois...) . Pourriez-vous m'aider ? Merci !
Version imprimable
Bonjour, je souhaite résoudre un système de deux équations différentielles avec la méthode d'Euler vectorielle mais j'ai une erreur concernant la taille des arrays (je crois...) . Pourriez-vous m'aider ? Merci !
Bonjour,
Je ne suis pas spécialiste de ma méthode d'Euler, mais j'aurais tendance a simplifier :
vecteur initial :
relation de récurrence avec tableaux/vecteurs numpyCode:
1
2 Y0 = np.array([a, 0]) Y = [Y0]
F(Y[k]) renvoyant un tableau numpy à 2 composantesCode:Y[k+1] = Y[k] + p*F(Y[k])
sachant que :
ça ferait :Code:
1
2 >>> np.array([2,3]) + 10*np.array([2,3]) array([22, 33])
Vous obtenez une suite de n vecteurs à 2 composantes.Code:
1
2
3
4
5
6 Y = [Y0] for k in range(n-1): ... Y.append(Y[k] + p*F(Y[k])) # Y = Y + [Y[k] + p*F(Y[k])]
On peut aussi calculer séparément les composantes y[k] et z[k] de Y[k] :
https://cahier-de-prepa.fr/pc-encpb/download?id=1515
Cdlt,
Salut,
Sachant que Y0 = [a, 0] dans ta fonction reac_suc tu déclares Y = [Y0] soit Y = [[a, 0]] c'est-à-dire une liste contenant un seul élément.
Code:
1
2
3
4
5
6
7
8
9 >>> a = [[2, 5]] >>> a[0] [2, 5] >>> a[1] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range >>>
Merci pour vos réponses !