Transformée de Laplace

Utilisation de Xcas

Modérateur : xcasadmin

xavier
Messages : 24
Inscription : lun. mai 11, 2009 12:46 pm

Transformée de Laplace

Message par xavier » jeu. sept. 17, 2009 8:26 am

bonjour,

Je suis en train d'essayer Xcas pour la transformée de Laplace. Xcas me donne bien l'original de 1/p mais pas de exp(-p)/p qui est l'échelon unité retardé de 1. Xcas m'écrit seulement

Code : Tout sélectionner

ilaplace((exp(-p))/p,p,t)
sans faire le calcul.

Comment avoir le résultat, si c'est possible.

cordialement,

Xavier

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

Re: Transformée de Laplace

Message par parisse » jeu. sept. 17, 2009 11:00 am

Ca n'est pas encore implemente:-( En fait, les commandes laplace/ilaplace sont incompletes, je n'ai implemente que les cas qui sont necessaires a la resolution des equations/systemes differentielles lineaires a coeff constant avec second membre de type exp/sin/cos*polynome.

xavier
Messages : 24
Inscription : lun. mai 11, 2009 12:46 pm

Re: Transformée de Laplace

Message par xavier » jeu. sept. 17, 2009 11:13 am

OK. Merci de ta réponse.

Et tu penses l'implémenter ou pas ? car ce serait une excellente idée pour le programme de BTS groupe A, tout comme la transformée en Z :wink:

A bientôt et encore félicitations pour tout le travail que tu fais sur Xcas :D

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

Re: Transformée de Laplace

Message par parisse » jeu. sept. 17, 2009 11:54 am

Tout depend de ce qu'il faut implementer. Actuellement, j'ai les fractions rationnelles. Il faudrait donc exp(a*x)*fraction rationnelle (ca devrait etre assez facile), mais quoi d'autre?
Pour la transformee en Z, il faut que je me renseigne, je n'y connais rien, as-tu un point de depart a me suggerer?

xavier
Messages : 24
Inscription : lun. mai 11, 2009 12:46 pm

Re: Transformée de Laplace

Message par xavier » jeu. sept. 17, 2009 12:36 pm

parisse a écrit :Actuellement, j'ai les fractions rationnelles. Il faudrait donc exp(a*x)*fraction rationnelle (ca devrait etre assez facile), mais quoi d'autre?
Oui, c'est ça, ceci pour la transformée inverse. C'est à peu près tout ce dont on a besoin en BTS. Faut juste bien définir la fonction échelon unité ou d'Heaviside.
parisse a écrit : Pour la transformee en Z, il faut que je me renseigne, je n'y connais rien, as-tu un point de depart a me suggerer?
Tu as un cours de BTS dessus ici qui te décrit ce que c'est. Pour la transformée en Z inverse, on n'utilise que des fonctions rationnelles en z.

Je te joins l'extrait du formulaire qu'on utilise en BTS

Merci pour ta réponse rapide :wink:
Pièces jointes
laplace_transZ.pdf.zip
(193.31 Kio) Téléchargé 680 fois

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

Re: Transformée de Laplace

Message par parisse » ven. sept. 18, 2009 11:21 am

Ok, merci pour les docs. Je vais rajouter une fonction Heaviside et une fonction Dirac, et essayer d'implementer ce qui manque. A priori la transformation en z doit deja pouvoir se faire en demandant le calcul de la somme sur les cas interessants en BTS. Pour l'inverse si j'ai bien compris il s'agit a nouveau d'une decomposition en elements simples.

xavier
Messages : 24
Inscription : lun. mai 11, 2009 12:46 pm

Re: Transformée de Laplace

Message par xavier » sam. sept. 19, 2009 11:52 am

Bonjour Bernard,
parisse a écrit : Je vais rajouter une fonction Heaviside et une fonction Dirac, et essayer d'implementer ce qui manque.
c'est une excellente idée. :D
parisse a écrit :
A priori la transformation en z doit deja pouvoir se faire en demandant le calcul de la somme sur les cas interessants en BTS.
J'ai pas essayé de faire directement ce calcul de la somme avec xcas. Il est vrai qu'en BTS, on utilise directement la table.
parisse a écrit :
Pour l'inverse si j'ai bien compris il s'agit a nouveau d'une decomposition en elements simples.
Oui, c'est ça, plus précisément de Zx(z)/z toujours pour la même raison : la table du formulaire.

Voici quelques sujets de ce qui est demandé en BTS par exemple en 2006 et en 2008 Laplace et transformée en z.

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

Re: Transformée de Laplace

Message par parisse » mar. sept. 22, 2009 12:58 pm

Bon, je viens de mettre a jour les version linux, avec une 1ere version de transf. en z et inverse a tester, ainsi qu'une petite amelioration de ilaplace (egalement nomme invlaplace).
Les noms de commande sont: laplace/invlaplace/ztrans/invztrans/Heaviside/Dirac (pas encore commentes). Par ex.
ztrans(a^n,n,z)
invztrans(a/(z-a),z,n)
Il y a surement des bugs qui restent...

xavier
Messages : 24
Inscription : lun. mai 11, 2009 12:46 pm

Re: Transformée de Laplace

Message par xavier » mar. sept. 22, 2009 4:22 pm

Bonjour Bernard,

Je viens de faire qques essais pour la transformée de laplace et en z (ainsi que inverse) ça marche nickel sur ces qques exemples. Je vais continuer sur d'autres exemples, et je te tiens au courant. Pour la transformée de laplace inverse, la commande invlaplace ne fonctionne pas, mais ilaplace.

Je n'ai pas essayé le Dirac... il est vrai que je ne l'utilise pas (ou peu) en BTS.

Merci pour cette amélioration rapide :D

A bientôt

Xavier

xavier
Messages : 24
Inscription : lun. mai 11, 2009 12:46 pm

Re: Transformée de Laplace

Message par xavier » jeu. sept. 24, 2009 8:27 am

Bonjour,

Je viens de faire qques essais plus approfondis et je te livre qques bugs que j'ai obtenu.

1. Pour la transformée de laplace

Code : Tout sélectionner

laplace(abs(sin(t)),t,p)
me renvoie un warning

Code : Tout sélectionner

Warning, integration of abs or sign assumes constant sign by intervals (correct if the argument is real):
Check Vector [abs(sin(t))]
Discontinuities at zeroes of sin(t) were not checked
et me donne comme transformée

Code : Tout sélectionner

1/(p^2+1)
alors que ça devrait être

Code : Tout sélectionner

1/(p^2+1) coth(p pi)/2
Je n'ai pas réussi à avoir la transformée de

Code : Tout sélectionner

laplace((cos(a*t)-cos(b*t))/t,t,p)
en ayant au préalable mis

Code : Tout sélectionner

assume(a>0) et assume(b)>0
, il me le laisse sous forme d'intégrale

Code : Tout sélectionner

integration((cos(a*t)-cos(b*t))*1/t*exp(-p*t),t,0,+(infinity))
j'ai peut être fait une erreur de syntaxe.

2. Pour la transformée inverse

Code : Tout sélectionner

ilaplace(p^2/((p+1)*(p-3)),p,t)
cela me donne

Code : Tout sélectionner

(9*exp(3*t))/4+(exp(-t))/-4+ilaplace(1,p,t)
: le dernier morceau n'est pas remplacé par un Dirac, alors que si on décompose en éléments simples et que je demande la transformée inverse, xcas me sort bien le Dirac.

Une petite chose "surprenante" : pour l'original de

Code : Tout sélectionner

1/(p^2-5)
xcas me sort un sinus hyperbolique, qui est correct, mais quand je demande l'original de

Code : Tout sélectionner

p/(p^2-4)
il me le met sous forme exponentielle mais pas en cosinus hyperbolique. Ceci n'est pas grave :wink:

2. Pour la transformée en z, xcas n'a pas réussi à me donner la transformée en z de

Code : Tout sélectionner

ztrans(n/3-1/36-9*(-1)^ n/4+77/18*(-2)^ n,n,z)
il me la laisse sous forme de série

Code : Tout sélectionner

sum((n/3+1/-36-(9*(-1)^n)/4+(77*(-1)^n*2^n)/18)*z^(-n),n,0,+(infinity))
3. Pour la transformée inverse en z, j'ai un bug pour

Code : Tout sélectionner

invztrans((2*z^ 2)/((z+1)*(z+2))+(1/2)*z*(3*z+1)/((z-1)^ 2*(z+1)*(z+2)),z,n)
qui me donne

Code : Tout sélectionner

(432*n+154*(-1)^n*2^n-81*(-1)^n-36)/36

alors que je devrais avoir

Code : Tout sélectionner

n/3-1/36-9/4*(-1)^n+77/18*(-2)^n
, expression que j'obtiens bien en décomposant en éléments simples et en prenant l'inverse de chacun des membres.

voili, voilà ce que j'ai pu relever.

A bientôt et merci pour ton remarquable boulot sur Xcas :D

Xavier

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

Re: Transformée de Laplace

Message par parisse » jeu. sept. 24, 2009 12:55 pm

bon, j'ai corrige le bug de invztrans (xcas_root.tgz est a jour), je regarderai pour laplace plus tard. Qu'est-ce que ca devrait donner pour les cos/sin divises par t? Des trucs avec des Ei?

xavier
Messages : 24
Inscription : lun. mai 11, 2009 12:46 pm

Re: Transformée de Laplace

Message par xavier » jeu. sept. 24, 2009 1:44 pm

parisse a écrit :bon, j'ai corrige le bug de invztrans (xcas_root.tgz est a jour),
OK, merci :wink:
parisse a écrit : je regarderai pour laplace plus tard. Qu'est-ce que ca devrait donner pour les cos/sin divises par t? Des trucs avec des Ei?
c'est quoi des Ei ?

Pour 2(1-cos(omega t))/t ça donne ln(1+(p/omega)^2) (attention on ne peut pas mettre directement un cos(t)/t car pas intégrable en 0), et pour du sin(t)/t la transformée est arctan(1/p).

Il ya aussi la transformée de laplace de sin(sqrt(t)) que xcas n'a pas voulu me donner. Bon, ce genre de signal, on ne l'utilise pas tous les jours :mrgreen:

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

Re: Transformée de Laplace

Message par parisse » jeu. sept. 24, 2009 2:55 pm

xavier a écrit : c'est quoi des Ei ?
|/quote]
Ei c'est une primitive de exp(t)/t. Mais je viens de réaliser qu'on pouvait calculer cette transformée de Laplace en dérivant par rapport à p puis en intégrant d'où les ln ou les arctan. C'est grace aux bornes 0 et inf qui font disparaitre les exponentielles. Je ne sais pas si je pourrai rajouter ce cas particulier dans les intégrales définies.
Il ya aussi la transformée de laplace de sin(sqrt(t)) que xcas n'a pas voulu me donner. Bon, ce genre de signal, on ne l'utilise pas tous les jours :mrgreen:
La ça doit pouvoir se faire par changement de variables u=sqrt(t) et passage du sin dans la gaussienne et pareil que le précédent.

xavier
Messages : 24
Inscription : lun. mai 11, 2009 12:46 pm

Re: Transformée de Laplace

Message par xavier » jeu. sept. 24, 2009 3:02 pm

parisse a écrit : Ei c'est une primitive de exp(t)/t
Ah oui, c'est vrai.
parisse a écrit : Mais je viens de réaliser qu'on pouvait calculer cette transformée de Laplace en dérivant par rapport à p puis en intégrant d'où les ln ou les arctan.
Oui, c'est comme ça qu'on les détermine à la main, car F'(p)=laplace(-tf(t))

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

Re: Transformée de Laplace

Message par parisse » ven. sept. 25, 2009 9:03 am

Je viens de retoucher a laplace (et du coup corrige quelques bugs dans l'integration et les limites...), ca va marcher pour laplace(.../t,t,p), par contre pas pour les abs et je laisse pour le moment tel quel en esperant que les utilisateurs liront le warning. En fait xcas est capable de determiner la primitive de abs(sin(t))*exp(-p*t) mais intervalle par intervalle, sans faire les recollements, qui donne lieu a une somme de series. Un jour j'espere ajouter ce type de tests (mais en general pour l'integration pas specifiquement pour laplace) et ca devrait alors marcher:
a:=int(abs(sin(t))*exp(-p*t),t);
limit(a,t=pi,-1);
limit(a,t=pi,1);
Je n'ai pas non plus ajoute les derivees de la distribution de Dirac, donc seules les parties entieres constantes seront prises en compte pour une invlaplace.
Voila, xcas_root est a jour, et les debian devraient l'etre dans l'apres-midi!

Répondre