dsolve

Bugs

Modérateur : xcasadmin

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

dsolve

Message par alb » mar. déc. 07, 2010 6:59 pm

0.9.1 sous linux
int(2t/(t^2+1),t,1,x) renvoie ln((2*x^2)/2+1)-ln(2) OK
La syntaxe ci-dessous est_elle permise ?
dsolve(y'=2x/(x^2+1),y) renvoie c_0+ln(-(x^2+1))
et du coup dsolve(y'=2x/(x^2+1) and y(1)=0,y) renvoie une liste vide (remarque:remplacer and par et donne BAV)
Pourtant dsolve(y'=x and y(0)=3,y) renvoie bien [(6+x^2)/2]

parisse
Messages : 5894
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: dsolve

Message par parisse » mar. déc. 07, 2010 9:04 pm

oui, c'est parce qu'il calcule la primitive de -((-2x)/(x^2+1)) et fait le changement de variable u'=-2x d'où le ln(-x^2+1) comme primitive (la valeur absolue est enlevée pour résoudre des équa diffs). Ensuite solve ne trouve pas de solution pour c_0 parce qu'on est en mode réel. Pour votre cas, on peut passer en mode complexe et faire simplify.
Je vais ajouter à titre expérimental un ratnormal pour la recherche de la solution générale par la méthode de variation de la constante, ça permet de résoudre votre équa diff sans passer en mode complexe, et si ça n'a pas d'effet de bords on le laissera.

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

Re: dsolve

Message par alb » mer. déc. 08, 2010 4:35 pm

Beaucoup plus gênant:
solve(ln(2x-6)=ln(x-5)) renvoie [1]

parisse
Messages : 5894
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: dsolve

Message par parisse » mer. déc. 08, 2010 6:54 pm

Pour l'instant, il n'y a pas de test que la solution renvoyée est dans le domaine de définition, il y a juste le test que la solution est réelle en mode réel et vérifie les hypothèses s'il y en a. Ca peut sans doute être ajouté, mais ça prendra un peu de temps...

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

Re: dsolve

Message par alb » mer. déc. 08, 2010 7:40 pm

OK,ça fera réféchir les élèves.
En vrac, 3 bizarreries:
supposons(solve(2x-6>0)[0]) renvoie BAV
supposons(x>3);solve(x^2<16) renvoie x,[((x>=3) && (x<4))]
solve([x^2<16,x>3]) renvoie [((x>3) && (x<=4))]

parisse
Messages : 5894
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: dsolve

Message par parisse » mer. déc. 08, 2010 9:03 pm

pour le bad arg, je pense que c'est parce que assume quote ses arguments (au cas où x aurait une valeur par exemple).
Pour les 2 autres, ça manque un peu de rigueur sur les inégalités strictes, mais je suis étonné qu'il sache faire le dernier!!!

Répondre