Vous êtes sur la page 1sur 5

2003.Laplace.

nb

La transformation de Laplace
C. Dufrne, B. Nuhrich, M. Vigouroux
Rsum : on tudie la transformation de Laplace d'un point de vue algorithmique. On propose un programme sous Mathematica o l'on dfinit la formule de transformation grce un dictionnaire et des rgles de calcul. On l'accompagne de quelques exemples. Mots cls : transforme de Laplace, calcul symbolique, rgles de transformation. Abstract : we investigate the Laplace transform from an algorithmic point of view. We give a Mathematica program based on a dictionnary and computing rules, together with a few examples. Keywords : Laplace transform, symbolic computing, transformation rules.

Introduction
Bien que le logiciel Mathematica calcule lui-mme les transformes de Laplace par la commande LaplaceTransform , on peut quand mme, titre d'exercice pdagogique, mettre au point un programme permettant de les calculer. Nous fixons comme hypothses de dpart la disponibilit du langage de programmation et des fonctions mathmatiques usuelles. La programmation se rduit alors d'une part tablir un dictionnaire de transformes usuelles et d'autre part cataloguer des rgles de calcul, tout en prtant attention leur ordre d'utilisation.

Etude prliminaire
Pour rsoudre les quations diffrentielles linaires coefficients constants, il est plus simple d'utiliser la transformation de Laplace. En effet, celle-ci permet de manipuler des fractions rationnelles au lieu des formes drives. La formule gnrale de la transformation de Laplace est en fait une intgrale. F HpL = e-p t f HtL dt
0

De ce fait, cette transformation devient vite difficile calculer pour des fonctions compliques. Nous souhaitons donc programmer la transformation par le biais d'un algorithme vitant ce calcul. Notre programme devrait tre capable de transformer la plupart des fonctions gnralement utilises dans des quations diffrentielles. Nous pouvons utiliser la syntaxe suivante : Laplace[expr,t,p] o Laplace dsigne l'oprateur de transformation, expr la fonction transformer, t la variable de la fonction de dpart (habituellement une fonction physique du temps) et p celle de la transforme de Laplace. Ainsi en prcisant les variables utilises, on peut choisir n'importe quelle lettre pour les reprsenter. Par exemple, le systme amricain utilise s comme variable de Laplace. Pour calculer les transformes la main, nous analysons l'expression en la dcomposant en combinaison linaire de fonctions dont la transforme est connue, dmarche qui repose sur la linarit de la transformation de Laplace. Avec Mathematica on est amen utiliser des filtres.
Laplace@u_ + v_, t_, p_D := Laplace@u, t, pD + Laplace@v, t, pD

Quand la fonction est usuelle, on applique directement la formule connue, ce qui donne par exemple : Laplace@Exp@a_ * t_D, t_, p_D := 1 H-a + pL

Dans la suite de notre analyse, on fait galement apparatre les drives des fonctions qui ont une transforme particulire, notre programme devra donc contenir des formules pour ces drives. Il faut aussi prvoir l'ordre des rgles de calcul pour que le programme ne se boucle pas indfiniment. Cela pourrait en effet se produire cause de la rcursivit des dfinitions. Quand nous calculons des transformes, nous savons faire la diffrence entre une constante et une fonction. Mais Mathematica ne peut faire cette distinction si nous ne spcifions pas une faon de dtecter ces constantes. C'est pourquoi nous utiliserons le prdicat FreeQ[a,t].

2003.Laplace.nb notre analyse, on fait galement apparatre les drives des fonctions qui ont une transforme 2 Dans la suite de particulire, notre programme devra donc contenir des formules pour ces drives. Il faut aussi prvoir l'ordre des rgles de calcul pour que le programme ne se boucle pas indfiniment. Cela pourrait en effet se produire cause de la rcursivit des dfinitions. Quand nous calculons des transformes, nous savons faire la diffrence entre une constante et une fonction. Mais Mathematica ne peut faire cette distinction si nous ne spcifions pas une faon de dtecter ces constantes. C'est pourquoi nous utiliserons le prdicat FreeQ[a,t]. En dernier recours, Mathematica peut utiliser la dfinition de la transformation de Laplace sous forme d'intgrale. Car mme si cette dfinition peut paratre lourde, elle seule permet de rsoudre les cas qui ne sont pas pris en compte par les relations dfinies auparavant. Nous pouvons maintenant entamer la conception proprement dite du programme en expliquant point par point les commandes utilises.

Conception du programme
Transformes des fonctions usuelles
Pour les formules connues, on constitue le dictionnaire. Les originaux sont supposs implicitement dfinis sur !+ .
Laplace@a_, t_, p_D ; FreeQ@a, tD := a p

A premire vue Mathematica ne reconnat pas a comme une constante, il faut donc le spcifier en intercalant la commande FreeQ[a,t] qui signifie que l'expression a ne contient pas t. Dans la suite on continuera expliciter une constante a de la sorte.
Laplace@t_ ^ n_. ; IntegerQ@nD, t_, p_D := n ! Hp ^ Hn + 1LL

Le point aprs n_ signifie que n peut prendre la valeur 1 pour que Mathematica identifie t t^1 et puisse appliquer la formule au rang 1. IntegerQ[n] signifie que n dsigne un entier car cette formule n'est valable que pour n e ". Une formule existe pour une valeur relle de n, mais elle sortirait du cadre de notre objectif de rsolution d'quations rencontres lors de la modlisation de phnomnes physiques. D'autres rgles sont mentionnes en annexe.

Rgles de calcul
La transformation de Laplace possde des proprits qu'il nous faut dtailler. La linarit consiste dfinir la transforme de Laplace d'une somme de deux fonctions comme tant la somme des transformes et la transforme d'une fonction multiplie par une constante comme tant la transforme de la fonction, multiplie par cette constante. Ce qui donne les deux lignes suivantes :
Laplace@u_ + v_, t_, p_D := Laplace@u, t, pD + Laplace@v, t, pD Laplace@a_ * u_, t_, p_D ; FreeQ@a, tD := a * Laplace@u, t, pD

La formule de drivation peut servir pour le calcul formel et pour des fonctions dont on n'a pas dfini la transforme. Elle consiste, multiplier par la variable de Laplace la transforme de cette fonction et ajouter la limite en zro (par valeur suprieure) de la fonction. La commande HoldPattern empche l'valuation de la drive. Nous avons ajout cet oprateur car sans celui-ci, nous avons constat que Mathematica calculait la drive de la fonction puis utilisait une formule du dictionnaire, au lieu d'appliquer la formule de drivation.
Laplace@HoldPattern@Derivative@1D@f_D@t_DD, t_, p_D := p * Laplace@f@tD, t, pD + Limit@f@tD, t 0, Direction 1D;

Pour des drives n-imes, il suffit de multiplier par p la puissance n.


Laplace@HoldPattern@Derivative@nD@f_D@tDD, t_, p_D := p ^ n * Laplace@f@tD, t, pD - Sum@p ^ Hk - 1L * Limit@D@f@tD, 8t, n - k<D, t 0, Direction 1D

Nous transposons dans le langage de Mathematica les thormes connus comme ceux de l'amortissement, du retard ou de similitude.

2003.Laplace.nb
Laplace@Exp@a_ * t_D * u_, t_, p_D ; FreeQ@a, tD := Laplace@u, t, Hp - aLD H* amortissement *L Laplace@u_@t_ + a_D, t_, p_D ; FreeQ@a, tD := Exp@a * pD * Laplace@u@tD, t, pD H* retard *L Laplace@u_@a_ * t_D, t_, p_D ; FreeQ@a, tD := 1 a * Laplace@u@tD, t, p aD H* similitude *L

Il est toujours possible d'toffer ce catalogue en utilisant d'autres thormes ; mais il ne faut pas perdre de vue qu'un grand nombre de thormes ont t tablis dans l'optique de faciliter le calcul la main des transformes, ce qui ne facilite pas ncessairement la tche Mathematica. Dj, on peut contester la pertinence de l'emploi du thorme de similitude dans les rgles de calcul puisque ce rsultat a t intgr aux dfinitions des fonctions usuelles.

Dfinition par une intgrale


Voici enfin la formule de dfinition de la transformation de Laplace, rgle de calcul appliquer en dernier ressort en cas d'chec des autres rgles.
Laplace@f_, t_, p_D := Integrate@Exp@-p * tD * f, 8t, 0, Infinity<, GenerateConditions FalseD

Notons que l'on rajoute GenerateConditionsFalse afin de ne pas afficher les conditions d'existence d'une transforme de Laplace, ce qui nous permet alors d'utiliser directement le rsultat sous forme algbrique.

Preuve du programme
Pour tester le programme, on est oblig d'isoler chaque rgle pour justifier qu'elle est bien utilise et qu'elle fonctionne correctement. L'isolation des rgles se fait par l'utilisation de Clear[Laplace] suivi de la rgle en question. Par exemple, pour la linarit, cela donne :
Clear@LaplaceD Laplace@u_ + v_, t_, p_D := Laplace@u, t, pD + Laplace@v, t, pD Laplace@a_ * u_, t_, p_D ; FreeQ@a, tD := a * Laplace@u, t, pD Laplace@a * u@tD + b * v@tD, t, pD a Laplace@u@tD, t, pD + b Laplace@v@tD, t, pD

On ritre le procd pour chaque rgle, ce qui nous assure qu'elles sont toutes utilises et indispensables.

Applications
Nous montrerons quelques exemples de transformes de Laplace, qui nous serviront galement de tests, la suite du programme.

Discussion
Le programme Laplace tant rcursif, un des problmes a t de prendre des prcautions dans l'ordre des oprations raliser. Le programme va effectuer d'abord les oprations particulires et ensuite des oprations plus gnrales, ce qui est l'inverse du cheminement logique humain. Ainsi, pour une fonction transformer donne, Mathematica en cherchera d'abord la transforme dans le dictionnaire et, s'il ne trouve pas de fonctions appropries, utilisera une rgle de calcul plus gnrale qui modifiera la forme de la fonction. Comme les rgles de calcul rappellent toujours le programme Laplace, Mathematica va alors chercher identifier la fonction modifie celles du dictionnaire ou alors utiliser une formule diffrente. De ce fait, il ne peut pas y avoir de boucle ininterrompue dans l'appel de Laplace.

2003.Laplace.nb

Perspectives
Notons que nous avons pos comme problme la rsolution d'quations diffrentielles. Il est donc ncessaire d'tablir un programme de calcul des transformes inverses de Laplace. En effet, la rsolution d'une quation diffrentielle linaire s'effectue en trois tapes : d'abord l'quation est transforme dans le domaine de Laplace ce qui donne une quation polynomiale, il s'agit ensuite de rsoudre cette quation en obtenant une fraction rationnelle de la variable de Laplace. Enfin, il convient de dterminer la fonction de la variable relle qui a pour transforme de Laplace la fraction rationnelle en question. C'est ce dernier point qui permet de mettre en exergue la ncessit de raliser un programme de calcul de la transforme inverse. Il est clair que cette conception se ferait de manire analogue celle du programme que nous avons ralis car il suffit de dfinir un dictionnaire de fonctions usuelles, tablir des rgles de calcul et en dernier ressort recourir l'intgrale de Mellin-Fourier.

Conclusion
L'intrt d'un tel programme rside dans le calcul de transformes de Laplace compliques qui seraient difficiles effectuer la main. Le cheminenment logique du programme vite si possible Mathematica d'effectuer un lourd calcul d'intgrales.

Blibliographie
[1] R. Barrre, Calcul scientifique avec Mathematica, Polycopi ensmm, 2002 [2] R. Barrre, Mathematica, Polycopi ENSMM, 2002 [3] J. Hladick, La transforme de Laplace plusieurs variables, Masson, 1969 [4] H. Reinhard, Cours de mathmatiques du signal, Dunod, 1986 [5] M. R. Spiegel, Transforme de Laplace, McGraw-Hill, srie Schaum, 1980

Annexe
Programme complet
H* Dictionnaire de fonctions usuelles *L Laplace@a_, t_, p_D ; FreeQ@a, tD := a p Laplace@t_ ^ n_. ; IntegerQ@nD, t_, p_D := n ! Hp ^ Hn + 1LL Laplace@Exp@a_. * t_D, t_, p_D ; FreeQ@a, tD := 1 H-a + pL H* Rgles de calcul *L

Laplace@Sin@a_. * t_D, t_, p_D ; FreeQ@a, tD := a Hp ^ 2 + a ^ 2L Laplace@Cos@a_. * t_D, t_, p_D ; FreeQ@a, tD := p Hp ^ 2 + a ^ 2L Laplace@Sinh@a_. * t_D, t_, p_D ; FreeQ@a, tD := a Hp ^ 2 - a ^ 2L Laplace@Cosh@a_. * t_D, t_, p_D ; FreeQ@a, tD := p Hp ^ 2 - a ^ 2L H* Rgles de linarit *L Laplace@u_ + v_, t_, p_D := Laplace@u, t, pD + Laplace@v, t, pD Laplace@a_ * u_, t_, p_D ; FreeQ@a, tD := a * Laplace@u, t, pD

2003.Laplace.nb
H* Formules de drivation *L

Laplace@HoldPattern@Derivative@1D@f_D@t_DD, t_, p_D := p * Laplace@f@tD, t, pD + Limit@f@tD, t 0, Direction 1D ; Laplace@HoldPattern@Derivative@nD@f_D@tDD, t_, p_D := p ^ n * Laplace@f@tD, t, pD Sum@p ^ Hk - 1L * Limit@D@f@tD, 8t, n - k<D, t 0, Direction 1D, 8k, 1, n<D; H* Thormes de l' amortissement, du retard et de similitude *L H* Formule gnrale *L Laplace@Exp@a_ * t_D * u_, t_, p_D ; FreeQ@a, tD := Laplace@u, t, Hp - aLD Laplace@u_@t_ + a_D, t_, p_D ; FreeQ@a, tD := Exp@a * pD * Laplace@u@tD, t, pD Laplace@u_@t_ * a_D, t_, p_D ; FreeQ@a, tD := 1 a * Laplace@u@tD, t, p aD Laplace@f_, t_, p_D := Integrate@Exp@-p * tD * f, 8t, 0, Infinity<, GenerateConditions FalseD Laplace@5 * t ^ 7, t, pD H* test des dfinitions de fonctions usuelles *L 25200 p8 Laplace@2 * t, t, pD H* vrification de l' identification de t comme t^1 *L 2 p2 Laplace@Exp@H-2L * tD, t, pD H* un autre exemple de fonction usuelle *L 1 2+p Laplace@ a Sin@5 * tD + b Cos@2 * tD + Sinh@8 * tD + Cosh@3 * tD, t, sD H* exemple liant linarit et fonctions trigonomtriques;utilisation de la notation amricaine 8 s bs 5a 2 + + + -64 + s -9 + s2 4 + s2 25 + s2 Laplace@5 * t + 2 * t * Exp@H-2L * tD, t, pD H* linarit et thorme de l' amortissement *L Laplace@Sin@t + 2D, t, pD H* utilisation du thorme du retard *L 2 p 1 + p2 Laplace@2 * Cos@tD * t, t, pD H* utilisation de la formule gnrale et identification des constantes et des variables *L 2 H-1 + p2 L 2 H1 + p2 L 5 2 + 2 p2 H2 + pL

Exemples

Vous aimerez peut-être aussi