Bonjour, je souhaite créer un algo sur xcas qui me retourne les solutions d'une equation du 2nd degré selon la valeur de delta (D) . Pour D< 0 j'ai rentré cette ligne de code :
si D < 0 alors
z1 : = (-b-i*sqrt(-D))/(2*a)
z2 : = (-b+i*sqrt(-D))/(2*a)
Afficher ("z1= "); afficher z1
Afficher ("z2= "); afficher z2
Lorsque je rentre la fct impossible d'obtenir de résultat cela me retourne : unable to check test error : bad argument value
Alors que pour une equation à solution réel cela fonctionne avec les lignes de code que j' ai tapé pour D> 0 et D=0
Mon erreur est donc ds la partie décrite
Je ne vois pas ou est mon erreur
Merci par avance pour l'aide
bonne journée
Problème d'écriture complexe dans algo pour 2nd degré
-
- Messages : 3
- Inscription : jeu. nov. 01, 2012 8:04 am
Re: Problème d'écriture complexe dans algo pour 2nd degré
1/ tu peux ajouter afficher(D) juste avant le si D<0 pour voir la valeur de D
2/ tu peux utiliser debug(ta_fonction(a,b,c)) et suivre l'évolution des variables
3/ tu peux donner ton code en entier !
RQ: Afficher ("z1= "); afficher z1 ; plus court: afficher("z1="+z1)
2/ tu peux utiliser debug(ta_fonction(a,b,c)) et suivre l'évolution des variables
3/ tu peux donner ton code en entier !
RQ: Afficher ("z1= "); afficher z1 ; plus court: afficher("z1="+z1)
-
- Messages : 3
- Inscription : jeu. nov. 01, 2012 8:04 am
Re: Problème d'écriture complexe dans algo pour 2nd degré
afficher( "a ="); saisir (a);afficher (a);
afficher( "b ="); saisir (b);afficher (b);
afficher( "c ="); saisir (c);afficher (c);
D:= b^2-4*a*c;
si D > 0 alors
x1:=(-b-sqrt(D))/(2*a);
x2:=(-b+sqrt(D))/(2*a);
afficher("x1 ="); afficher(x1);
afficher("x2 ="); afficher(x2);
Sinon
Si D==0 alors
x:=-b/(2*a);
afficher("x1=x2= ");
afficher (x);
Sinon
Si D <0 alors
z1:=(-b-i*sqrt(-D))/(2*a);
z2:=(-b+i*sqrt(-D))/(2*a);
afficher("z1 ="); afficher(z1);
afficher("z2 ="); afficher(z2);
Fsi
Fsi
Fsi
Voilà le code en entier! Donc tant que mon equation admet des solutions réelles ça fonctionne
Et qd je suis dans le domaine des complexes donc à partir D < 0 l'algo ne tourne plus
Merci par avance
afficher( "b ="); saisir (b);afficher (b);
afficher( "c ="); saisir (c);afficher (c);
D:= b^2-4*a*c;
si D > 0 alors
x1:=(-b-sqrt(D))/(2*a);
x2:=(-b+sqrt(D))/(2*a);
afficher("x1 ="); afficher(x1);
afficher("x2 ="); afficher(x2);
Sinon
Si D==0 alors
x:=-b/(2*a);
afficher("x1=x2= ");
afficher (x);
Sinon
Si D <0 alors
z1:=(-b-i*sqrt(-D))/(2*a);
z2:=(-b+i*sqrt(-D))/(2*a);
afficher("z1 ="); afficher(z1);
afficher("z2 ="); afficher(z2);
Fsi
Fsi
Fsi
Voilà le code en entier! Donc tant que mon equation admet des solutions réelles ça fonctionne
Et qd je suis dans le domaine des complexes donc à partir D < 0 l'algo ne tourne plus
Merci par avance
Re: Problème d'écriture complexe dans algo pour 2nd degré
avec des minuscules au début de toutes les lignes j'obtiens les bonnes réponses avec a=1,b=2,c=3 !?
Avec quelles valeurs de a,b,c as-tu le pb ?
RQ z1:=simplifier((-b-i*sqrt(-D))/(2*a)); permet d'avoir un résultat simplifié.
Avec quelles valeurs de a,b,c as-tu le pb ?
RQ z1:=simplifier((-b-i*sqrt(-D))/(2*a)); permet d'avoir un résultat simplifié.
Re: Problème d'écriture complexe dans algo pour 2nd degré
Oui, ça marche avec des minuscules et ces valeurs. Sinon, pour des TS, ce serait peut-etre une bonne idée de réécrire une fonction au lieu de afficher/saisir, ce qui donnerait
On peut alors exécuter le code pas à pas avec par exemple debug(second_degre(1,2,3)) ou surtout utiliser la fonction dans un autre programme (ce qui n'est pas possible avec des suites d'instructions utilisant des saisir au lieu de passer des arguments et afficher au lieu de renvoyer une valeur).
Code : Tout sélectionner
second_degre(a,b,c):={
local D,x1,x2,z1,z2;
D:= b^2-4*a*c;
si D > 0 alors
x1:=(-b-sqrt(D))/(2*a);
x2:=(-b+sqrt(D))/(2*a);
afficher("2 solutions réelles");
return x1,x2;
fsi;
si D==0 alors
afficher("1 solution double");
return -b/(2*a);
fsi;
si D <0 alors
z1:=(-b-i*sqrt(-D))/(2*a);
z2:=(-b+i*sqrt(-D))/(2*a);
afficher("2 solutions complexes conjuguées");
return z1,z2;
fsi;
}:;
-
- Messages : 3
- Inscription : jeu. nov. 01, 2012 8:04 am
Re: Problème d'écriture complexe dans algo pour 2nd degré
Bonjour à tous. Merci pour vos infos j'ai pu résoudre mon problème
À plus
À plus