Page 1 sur 1

Dérivée n-ième

Publié : lun. févr. 08, 2010 4:52 pm
par jchallier
Bonsoir,

Comment obtenir avec Xcas la dérivée n-ième d'une fonction comme t -> sin(3*t) ou t-> exp(-2*t) ?

Merci pour vos réponses.

Re: Dérivée n-ième

Publié : lun. févr. 08, 2010 5:07 pm
par Guillaume
Bonjour,

une version récursive :

Code : Tout sélectionner

dn(f,n):={
si n==0 alors retourne(f)
sinon retourne(simplifier(fonction_derivee(dn(f,n-1))))
fsi
}:;
Qu'on peut utiliser ainsi :

Code : Tout sélectionner

dn(t->sin(3*t),8)
et qui renvoie

Code : Tout sélectionner

 (` x`)->6561*sin(3*` x`)

Une version avec une boucle :

Code : Tout sélectionner

Dn(f,n):={
local dnf,k;
dnf:=f;
si n==0 alors retourne(f)
sinon
  pour k de 1 jusque n faire
     dnf:=simplifier(fonction_derivee(dnf))
  fpour
fsi;
retourne(dnf)
}:;

Re: Dérivée n-ième

Publié : lun. févr. 08, 2010 5:27 pm
par jchallier
Merci pour ces réponses, mais est-il possible d'obtenir la formule générale de la dérivée d'ordre n ?

Re: Dérivée n-ième

Publié : lun. févr. 08, 2010 5:34 pm
par Guillaume
Je ne crois pas (Bernard ?). Bon, sinon en calcul formel, il y a une réponse directe :

Code : Tout sélectionner

deriver(sin(3*x),x$8)
C'est que je suis en plein algo et j'ai tendance à oublier les outils de calculs déjà implantés dans la machine.

Re: Dérivée n-ième

Publié : lun. févr. 08, 2010 5:38 pm
par Guillaume
J'y pense : en enlevant les "simplifier" dans les procédures précédentes, on peut avoir une idée des formules générales.

Par exemple, pour la dérivée 8e de sin(3x) :

Code : Tout sélectionner

 (` x`)->(-(-(-(-(sin(3*` x`)))*3*3)*3*3)*3*3)*3*3

Re: Dérivée n-ième

Publié : lun. févr. 08, 2010 7:30 pm
par parisse
Je ne pense pas qu'il soit possible de calculer la dérivée n-ième d'une expression formellement si n est un paramètre, sauf pour quelques cas particulier (dont exponentielle/sin/cos composé avec une fonction linéaire, ou une fonction polynomiale), sinon on n'apprendrait pas à faire des développements limités. On peut comme le suggère Guillaume, conjecturer avec diff(expression,x$n) lorsque n a une valeur.