Bonjour,
Voici une equa diff (un modele de Verlhust):
desolve([y' = r*y*(1-y/K),y(0)=4000] ,y)
Cela marche tres bien si r et K sont vides ou entiers.
Si on remplace r par une valeur float cela ne marche plus:
desolve([y' = 0.3*y*(1-y/K),y(0)=4000] ,y)
(Bad Argument Type).
Il en est (presque) de meme pour des rationnels :
desolve([y' = 3/10*y*(1-y/K),y(0)=4000] ,y)
Pas d'erreur ici, mais une formule (la solution?) apparait en bleu,
la "vraie" liste de solutions etant vide.
A.
desolve
Modérateur : xcasadmin
Re: desolve
le cas flottant ne m'etonne pas, pour le cas rationnel, on a un message qui indique qu'il a essaye sans succes de resoudre une equation polynomiale. En attendant que je puisse y remedier, je pense que le mieux est de resoudre avec r symbolique puis remplacer r par sa valeur.
Re: desolve
Merci pour la reponse. Oui en effet on s'en sort "symboliquement". Mais il y en a qui essayent autrement...
Puis, le cas d'un flottant ne me choque pas non plus; difficile de dire si c'est un "bug" ou un "feature" -- mais pour des eleves c'est plutot une surprise.
Essayons de comprendre du point de vue de l'utilisateur.
D'un cote c'est assez logique si un flottant declenche un autre algorithme (calcul numerique); c'est bien le cas p.ex. pour le determinant d'une matrice.
D'autre cote, desolve fait toujours un calcul formel (me trompe-je?) ; on s'attendrait donc qu'un flottant passe par la procedure comme n'importe quelle constante.
Qu'en pensez vous?
Puis, le cas d'un flottant ne me choque pas non plus; difficile de dire si c'est un "bug" ou un "feature" -- mais pour des eleves c'est plutot une surprise.
Essayons de comprendre du point de vue de l'utilisateur.
D'un cote c'est assez logique si un flottant declenche un autre algorithme (calcul numerique); c'est bien le cas p.ex. pour le determinant d'une matrice.
D'autre cote, desolve fait toujours un calcul formel (me trompe-je?) ; on s'attendrait donc qu'un flottant passe par la procedure comme n'importe quelle constante.
Qu'en pensez vous?