Bonjour à tous je me permets une seconde fois de demander de l'aide en tant que débutant.
Je cherche à tracer un portrait de phase (x(t),v(t)) d'une équation différentielle.
A titre d'information, pour ceci, j'utilise la méthode d'Euler semi-implicite mais ce n'est pas de là que vient le problème.
Lorsque je teste mon programme et que j'utilise le plot un message d'erreur apparait "float object is not callable" et je ne comprend pas vraiment ce que cela veut dire.
Voici mon programme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
delta=input('valeur de delta : ')
beta=input('valeur de beta : ')
alpha=input('valeur de alpha : ')
gamma=input('valeur de gamma : ')
omega=input('valeur de omega : ')
v0=input('valeur vitesse initiale : ')
x0=input('valeur position initiale : ')
 
T=input('valeur duree de simulation : ')
h=input('valeur du pas de temps : ')
import numpy as np
import pylab as pl
n=(int)(T/h)+1
x=np.zeros(n)
v=np.zeros(n)
t=np.zeros(n)
x[0]=x0
v[0]=v0
t[0]=0
for i in range (1,n-1):
    v[i]=v[i-1] + h(-delta*v[i-1]-beta*x[i-1]-alpha*x[i-1]**3+gamma*np.cos(omega*t*(i-1)*h))
    x[i]=x[i-1] + h*v[i]
    t[i]=t[i] + h
pl.figure(1)    
pl.plot(t,x)
pl.figure(2)
pl.plot(x,v)
pl.show()
J'ai testé le programme pour alpha=0;beta=1;gamma=0;omega=0.2;delta=0;h=0.1 et T=65.
Merci pour votre aide.
Ne manquez pas de me faire remarquer si j'ai oublié de dire des choses ou si je me suis mal exprimé....