Bonjour à tous !
J'ai écrit un algorithme permettant de résoudre des équations différentielles de premier et second ordre. Je l'ai écrit en utilisant algobox.
Cependant, lorsque je tente de l'exécuter ("tester algorithme"), le message ***Lancement de l'algorithme*** apparaît indéfiniment et l'algo ne s'exécute jamais. Le logiciel ne m'a remonté aucune erreur de syntaxe. Voici mon algorithme, si ça peut être utile (désolé, il est très long):
FONCTIONS_UTILISEES
VARIABLES
A EST_DU_TYPE NOMBRE
B EST_DU_TYPE NOMBRE
C EST_DU_TYPE NOMBRE
Yc EST_DU_TYPE NOMBRE
hx EST_DU_TYPE NOMBRE
ED EST_DU_TYPE NOMBRE
Yh EST_DU_TYPE NOMBRE
Yp EST_DU_TYPE NOMBRE
k EST_DU_TYPE NOMBRE
D EST_DU_TYPE NOMBRE
E EST_DU_TYPE NOMBRE
F EST_DU_TYPE NOMBRE
G EST_DU_TYPE NOMBRE
H EST_DU_TYPE NOMBRE
I EST_DU_TYPE NOMBRE
J EST_DU_TYPE NOMBRE
U1 EST_DU_TYPE NOMBRE
U2 EST_DU_TYPE NOMBRE
V1 EST_DU_TYPE NOMBRE
V2 EST_DU_TYPE NOMBRE
u EST_DU_TYPE NOMBRE
v EST_DU_TYPE NOMBRE
w EST_DU_TYPE NOMBRE
x EST_DU_TYPE NOMBRE
K1 EST_DU_TYPE NOMBRE
K2 EST_DU_TYPE NOMBRE
K3 EST_DU_TYPE NOMBRE
K4 EST_DU_TYPE NOMBRE
delta EST_DU_TYPE NOMBRE
P1 EST_DU_TYPE NOMBRE
P2 EST_DU_TYPE NOMBRE
P3 EST_DU_TYPE NOMBRE
P4 EST_DU_TYPE NOMBRE
r1 EST_DU_TYPE NOMBRE
r2 EST_DU_TYPE NOMBRE
r0 EST_DU_TYPE NOMBRE
m EST_DU_TYPE NOMBRE
t1 EST_DU_TYPE NOMBRE
t2 EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
AFFICHER* "Entrez les valeurs de A, B et C telles que Ay''+By'+Cy=h(x)"
LIRE A
LIRE B
LIRE C
LIRE m
ED PREND_LA_VALEUR Ay''+By'+Cy
P3 PREND_LA_VALEUR pow(x,t1)(K1cos(u*x)+K2sin(u*x))
P4 PREND_LA_VALEUR pow(x,t2)(K3cos(v*x)+K4sin(v*x))
SI (B=0) ALORS
DEBUT_SI
delta PREND_LA_VALEUR -4*A*C
P1 PREND_LA_VALEUR (D*pow(x,2)+E*x+F)
SI (delta>0) ALORS
DEBUT_SI
r1 PREND_LA_VALEUR (-B+sqrt(delta))/2A
r2 PREND_LA_VALEUR (-B-sqrt(delta))/2A
Yh PREND_LA_VALEUR w*exp(r1*x)+z*exp(r2*x)
t1 PREND_LA_VALEUR 0
t2 PREND_LA_VALEUR 0
SI (r1==m OU r2==m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G3*pow(x,3)+G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
SI (r1!=m ET r2!=m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
FIN_SI
SI (delta==0) ALORS
DEBUT_SI
r0 PREND_LA_VALEUR -B/2A
t1 PREND_LA_VALEUR 0
t2 PREND_LA_VALEUR 0
Yh PREND_LA_VALEUR (w+z)*exp(r0*x)
SI (r0==m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G4*pow(x,4)+G3*pow(x,3)+G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
FIN_SI
SI (delta<0) ALORS
DEBUT_SI
r1 PREND_LA_VALEUR (-B/2A)+(sqrt(delta)*i/(2A))
r2 PREND_LA_VALEUR (-B/2A)-(sqrt(delta)*i/(2A))
Yh PREND_LA_VALEUR exp((-B/2*A)*x)*(w*cos(sqrt(abs(pow(B,2)-4*A*C)))+z*sin(sqrt(abs(pow(B,2)-4*A*C))))
SI (-B/2A==0 ET ((-sqrt(delta)/(2A)==u OU (sqrt(delta)/(2A)==u)) ALORS
DEBUT_SI
t1 PREND_LA_VALEUR 1
FIN_SI
SINON
DEBUT_SINON
t1 PREND_LA_VALEUR 0
FIN_SINON
SI (-B/2A==0 ET ((-sqrt(delta)/(2A)==v OU (sqrt(delta)/(2A)==v)) ALORS
DEBUT_SI
t2 PREND_LA_VALEUR 1
FIN_SI
SINON
DEBUT_SINON
t2 PREND_LA_VALEUR 0
FIN_SINON
SI (r0==m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G4*pow(x,4)+G3*pow(x,3)+G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
FIN_SI
FIN_SI
SI (C=0) ALORS
DEBUT_SI
delta PREND_LA_VALEUR pow(B,2)-4*A*C
P1 PREND_LA_VALEUR (D3*pow(x,3)+D2*pow(x,2)+E*x+F)
SI (delta>0) ALORS
DEBUT_SI
r1 PREND_LA_VALEUR (-B+sqrt(delta))/2A
r2 PREND_LA_VALEUR (-B-sqrt(delta))/2A
t1 PREND_LA_VALEUR 0
t2 PREND_LA_VALEUR 0
SI (r1==m OU r2==m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G3*pow(x,3)+G2*pow(x,2)+H*x+I)*exp(m*x)
FIN_SI
SI (r1!=m ET r2!=m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
FIN_SI
SI (delta==0) ALORS
DEBUT_SI
r0 PREND_LA_VALEUR -B/2A
t1 PREND_LA_VALEUR 0
t2 PREND_LA_VALEUR 0
Yh PREND_LA_VALEUR (w+z)*exp(r0*x)
SI (r0==m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G4*pow(x,4)+G3*pow(x,3)+G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
FIN_SI
SI (delta<0) ALORS
DEBUT_SI
r1 PREND_LA_VALEUR (-B/2A)+(sqrt(delta)*i/(2A))
r2 PREND_LA_VALEUR (-B/2A)-(sqrt(delta)*i/(2A))
SI (-B/2A==0 ET ((-sqrt(delta)/(2A)==u OU (sqrt(delta)/(2A)==u)) ALORS
DEBUT_SI
t1 PREND_LA_VALEUR 1
FIN_SI
SINON
DEBUT_SINON
t1 PREND_LA_VALEUR 0
FIN_SINON
SI (-B/2A==0 ET ((-sqrt(delta)/(2A)==v OU (sqrt(delta)/(2A)==v)) ALORS
DEBUT_SI
t2 PREND_LA_VALEUR 1
FIN_SI
SINON
DEBUT_SINON
t2 PREND_LA_VALEUR 0
FIN_SINON
SI (r0==m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G4*pow(x,4)+G3*pow(x,3)+G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
SINON
DEBUT_SINON
P2 PREND_LA_VALEUR (G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SINON
FIN_SI
Yp PREND_LA_VALEUR P1+P2+P3+P4
Yc PREND_LA_VALEUR Yh+Yp
AFFICHER Yc
FIN_SI
SI (A!=0 ET B!=0 ET C!=0) ALORS
DEBUT_SI
delta PREND_LA_VALEUR pow(B,2)-4*A*C
P1 PREND_LA_VALEUR (D2*pow(x,2)+E*x+F)
SI (delta>0) ALORS
DEBUT_SI
r1 PREND_LA_VALEUR (-B+sqrt(delta))/2A
r2 PREND_LA_VALEUR (-B-sqrt(delta))/2A
t1 PREND_LA_VALEUR 0
t2 PREND_LA_VALEUR 0
SI (r1==m OU r2==m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G3*pow(x,3)+G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
SI (r1!=m ET r2!=m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
FIN_SI
SI (delta==0) ALORS
DEBUT_SI
r0 PREND_LA_VALEUR -B/2A
t1 PREND_LA_VALEUR 0
t2 PREND_LA_VALEUR 0
Yh PREND_LA_VALEUR (w+z)*exp(r0*x)
SI (r0==m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G4*pow(x,4)+G3*pow(x,3)+G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
FIN_SI
SI (delta<0) ALORS
DEBUT_SI
r1 PREND_LA_VALEUR (-B/2A)+(sqrt(delta)*i/(2A))
r2 PREND_LA_VALEUR (-B/2A)-(sqrt(delta)*i/(2A))
SI (-B/2A==0 ET ((-sqrt(delta)/(2A)==u OU (sqrt(delta)/(2A)==u)) ALORS
DEBUT_SI
t1 PREND_LA_VALEUR 1
FIN_SI
SINON
DEBUT_SINON
t1 PREND_LA_VALEUR 0
FIN_SINON
SI (-B/2A==0 ET ((-sqrt(delta)/(2A)==v OU (sqrt(delta)/(2A)==v)) ALORS
DEBUT_SI
t2 PREND_LA_VALEUR 1
FIN_SI
SINON
DEBUT_SINON
t2 PREND_LA_VALEUR 0
FIN_SINON
SI (r0==m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G4*pow(x,4)+G3*pow(x,3)+G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
SINON
DEBUT_SINON
P2 PREND_LA_VALEUR (G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SINON
FIN_SI
Yp PREND_LA_VALEUR P1+P2+P3+P4
Yc PREND_LA_VALEUR Yh+Yp
AFFICHER Yc
FIN_SI
SI (A=0 & B=0 & C=0) ALORS
DEBUT_SI
Yc PREND_LA_VALEUR 0
AFFICHER Yc
FIN_SI
SI (A=0 & B=0) ALORS
DEBUT_SI
Yh PREND_LA_VALEUR 0
P1 PREND_LA_VALEUR (D*pow(x,2)+E*x+F)
P2 PREND_LA_VALEUR (G2*pow(x,2)+H*x+I)*exp(mx)
t1 PREND_LA_VALEUR 0
t2 PREND_LA_VALEUR 0
Yp PREND_LA_VALEUR P1+P2+P3+P4
Yc PREND_LA_VALEUR Yh+Yp
AFFICHER Yc
FIN_SI
SI (A=0 & C=0) ALORS
DEBUT_SI
Yh PREND_LA_VALEUR k*exp(prim(B))
P1 PREND_LA_VALEUR (D*pow(x,2)+E*x+F)
P2 PREND_LA_VALEUR (G2*pow(x,2)+H*x+I)*exp(mx)
t1 PREND_LA_VALEUR 0
t2 PREND_LA_VALEUR 0
Yp PREND_LA_VALEUR P1+P2+P3+P4
Yc PREND_LA_VALEUR Yh+Yp
AFFICHER Yc
FIN_SI
SI (A=0) ALORS
DEBUT_SI
Yh PREND_LA_VALEUR k*exp(prim(C/B))
P1 PREND_LA_VALEUR (D*pow(x,2)+E*x+F)
P2 PREND_LA_VALEUR (G2*pow(x,2)+H*x+I)*exp(mx)
t1 PREND_LA_VALEUR 0
t2 PREND_LA_VALEUR 0
Yp PREND_LA_VALEUR P1+P2+P3+P4
Yc PREND_LA_VALEUR Yh+Yp
AFFICHER Yc
FIN_SI
SI (B=0 & C=0) ALORS
DEBUT_SI
delta PREND_LA_VALEUR 0
r0 PREND_LA_VALEUR -B/2A
t1 PREND_LA_VALEUR 0
t2 PREND_LA_VALEUR 0
P1 PREND_LA_VALEUR (D4*pow(x,4)+D3*pow(x,3)+D2*pow(x,2)+E*x+F)
Yh PREND_LA_VALEUR (w+z)*exp(r0*x)
SI (r0==m) ALORS
DEBUT_SI
P2 PREND_LA_VALEUR (G4*pow(x,4)+G3*pow(x,3)+G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SI
SINON
DEBUT_SINON
P2 PREND_LA_VALEUR (G2*pow(x,2)+H*x+I)*exp(mx)
FIN_SINON
Yp PREND_LA_VALEUR P1+P2+P3+P4
Yc PREND_LA_VALEUR Yh+Yp
AFFICHER Yc
FIN_SI
FIN_ALGORITHME