Vous êtes sur la page 1sur 5

2003.Laplace.nb

1

La transformation de Laplace

C. Dufrêne, B. Nuhrich, M. Vigouroux

Résumé : on étudie la transformation de Laplace d'un point de vue algorithmique. On propose un programme sous Mathematica où l'on définit la formule de transformation grâce à un dictionnaire et des règles de calcul. On l'accompagne de quelques exemples. Mots clés : transformée de Laplace, calcul symbolique, règles 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-même les transformées de Laplace par la commande La placeTransform , on peut quand même, à titre d'exercice pédagogique, mettre au point un programme permettant de les calculer. Nous fixons comme hypothèses de départ la disponibilité du langage de programmation et des fonctions mathématiques usuelles. La programmation se réduit alors d'une part à établir un dictionnaire de transformées usuelles et d'autre part à cataloguer des règles de calcul, tout en prêtant attention à leur ordre d'utilisation.

ü Etude préliminaire

Pour résoudre les équations différentielles linéaires à 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 dérivées. La formule générale de la transformation de Laplace est en fait une intégrale.

de la transformation de Laplace est en fait une intégrale. ¶ F H p L =

F H p L = 0

e - p t f H t L dt

De ce fait, cette transformation devient vite difficile à calculer pour des fonctions compliquées. 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 généralement utilisées dans des équations différentielles. Nous pouvons utiliser la syntaxe suivante : L apl ace[e xpr,t,p] Laplace désigne l'opérateur de transformation, expr la fonction à transformer, t la variable de la fonction de départ (habituellement une fonction physique du temps) et p celle de la transformée de Laplace. Ainsi en précisant les variables utilisées, on peut choisir n'importe quelle lettre pour les représenter. Par exemple, le système américain utilise s comme variable de Laplace.

Pour calculer les transformées à la main, nous analysons l'expression en la décomposant en combinaison linéaire de fonctions dont la transformée est connue, démarche qui repose sur la linéarité de la transformation de Laplace. Avec Mathematica on est amené à utiliser des filtres.

Laplace @ u_ + v_ , t_ , p_ D : = Laplace @ u, t, p D + Laplace @ v, t , p D

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 apparaître les dérivées des fonctions qui ont une transformée particulière, notre programme devra donc contenir des formules pour ces dérivées. Il faut aussi prévoir l'ordre des règles de calcul pour que le programme ne se boucle pas indéfiniment. Cela pourrait en effet se produire à cause de la

2003.Laplace.nb

2

récursivité des définitions. Quand nous calculons des transformées, nous savons faire la différence entre une constante et une fonction. Mais Mathematica ne peut faire cette distinction si nous ne spécifions pas une façon de détecter ces constantes. C'est pourquoi nous utiliserons le prédicat F reeQ[a,t] .

En dernier recours, Mathematica peut utiliser la définition de la transformation de Laplace sous forme d'intégrale. Car même si cette définition peut paraître lourde, elle seule permet de résoudre les cas qui ne sont pas pris en compte par les relations définies auparavant. Nous pouvons maintenant entamer la conception proprement dite du programme en expliquant point par point les commandes utilisées.

ü Conception du programme

ü Transformées des fonctions usuelles

Pour les formules connues, on constitue le dictionnaire. Les originaux sont supposés implicitement définis sur ! + .

Laplace @ a_, t_ , p_ D ê ; FreeQ @ a, t D : = a ê p

A première vue Mathematica ne reconnaît pas a comme une constante, il faut donc le spécifier en intercalant la commande Fre eQ[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@ n D , t_ , p_ D : = n ! ê H p ^ H n + 1 LL

Le point après n_ signifie que n peut prendre la valeur 1 pour que Mathematica identifie t à t^1 et puisse appliquer la formule au rang 1. In teger Q[n] signifie que n désigne un entier car cette formule n'est valable que pour n e " . Une formule existe pour une valeur réelle de n, mais elle sortirait du cadre de notre objectif de résolution d'équations rencontrées lors de la modélisation de phénomènes physiques. D'autres règles sont mentionnées en annexe.

ü Règles de calcul

La transformation de Laplace possède des propriétés qu'il nous faut détailler. La linéarité consiste à définir la transformée de Laplace d'une somme de deux fonctions comme étant la somme des transformées et la transformée d'une fonction multipliée par une constante comme étant la transformée de la fonction, multipliée par cette constante. Ce qui donne les deux lignes suivantes :

Laplace @ u_ + v_, t_ , p_ D : = Laplace @ u, t, p D + Laplace @ v, t, p D

Laplace @ a_ * u_ , t_, p_ D

ê ; FreeQ @ a, t D : = a * Laplace @ u ,

t, p D

La formule de dérivation peut servir pour le calcul formel et pour des fonctions dont on n'a pas défini la transformée. Elle consiste, à multiplier par la variable de Laplace la transformée de cette fonction et à ajouter la limite en zéro (par valeur supérieure) de la fonction. La commande Hol dPattern empêche l'évaluation de la dérivée. Nous avons ajouté cet opérateur car sans celui-ci, nous avons constaté que Mathematica calculait la dérivée de la fonction puis utilisait une formule du dictionnaire, au lieu d'appliquer la formule de dérivation.

Laplace @ HoldPattern @ Derivative @ 1 D@ f_D@ t_ DD , t_ , p_ D : = p * Laplace @ f @ tD , t, p D + Limit@ f @ t D , t Ø 0, Direction Ø 1 D ;

Pour des dérivées n-ièmes, il suffit de multiplier par p à la puissance n.

Laplace @ HoldPattern @ Derivative @ n D@ f_D@ t DD , t_ , p_ D : =

p ^ n * Laplace @ f @t D ,

t, p D - Sum @ p ^ H k - 1 L *

Limit @ D @ f @t D , 8 t , n - k <D , t Ø 0 , Direction Ø 1

Nous transposons dans le langage de Mathematica les théorèmes connus comme ceux de l'amortissement, du retard ou de similitude.

2003.Laplace.nb

3

Laplace @ Exp @ a_ * t_ D * u_ , t_ , p_ D ê ; FreeQ@ a, t D : =

Laplace @ u, t, H p - a L D

H * amortissement * L

Laplace @ u_@ t_ + a_ D , t_ , p_ D ê ; FreeQ @ a, t D : =

Exp@ a * p D

* Laplace @ u @ tD , t, p D

H *

retard

* L

Laplace @ u_@ a_ * t_ D , t_ , p_ D ê ; FreeQ@ a, t D : =

1 ê a * Laplace @ u @t D , t, p ê a D H *

similitude * L

Il est toujours possible d'étoffer ce catalogue en utilisant d'autres théorèmes ; mais il ne faut pas perdre de vue qu'un grand nombre de théorèmes ont été établis dans l'optique de faciliter le calcul à la main des transformées, ce qui ne facilite pas nécessairement la tâche à Mathematica. Déjà, on peut contester la pertinence de l'emploi du théorème de similitude dans les règles de calcul puisque ce résultat a été intégré aux définitions des fonctions usuelles.

ü Définition par une intégrale

Voici enfin la formule de définition de la transformation de Laplace, règle de calcul à appliquer en dernier ressort en cas d'échec des autres règles.

Laplace @ f_, t_ , p_ D : = Integrate@ Exp@ - p * t D * f , 8 t, 0, Infinity< , GenerateConditions Ø False D

Notons que l'on rajoute GenerateConditionsØFa lse afin de ne pas afficher les conditions d'existence d'une transformée de Laplace, ce qui nous permet alors d'utiliser directement le résultat sous forme algébrique.

ü Preuve du programme

Pour tester le programme, on est obligé d'isoler chaque règle pour justifier qu'elle est bien utilisée et qu'elle fonctionne correctement. L'isolation des règles se fait par l'utilisation de Cle ar[Laplace] suivi de la règle en question. Par exemple, pour la linéarité, cela donne :

Clear@ Laplace D

Laplace @ u_ + v_, t_ , p_ D : =

Laplace @ a_ * u_ , t_, p_ D

Laplace @ a * u @ t D + b * v @ t D , t, p D

Laplace @ u, t, p D + Laplace @ v, t, p D

ê ; FreeQ @ a, t D : = a * Laplace @ u , t, p D

a Laplace @ u @ t D , t, p D + b Laplace @ v @ t D , t , p D

On réitère le procédé pour chaque règle, ce qui nous assure qu'elles sont toutes utilisées et indispensables.

ü Applications

Nous montrerons quelques exemples de transformées de Laplace, qui nous serviront également de tests, à la suite du programme.

ü Discussion

Le programme Laplace étant récursif, un des problèmes a été de prendre des précautions dans l'ordre des opérations à réaliser. Le programme va effectuer d'abord les opérations particulières et ensuite des opérations plus générales, ce qui est l'inverse du cheminement logique humain. Ainsi, pour une fonction à transformer donnée, Mathematica en cherchera d'abord la transformée dans le dictionnaire et, s'il ne trouve pas de fonctions appropriées, utilisera une règle de calcul plus générale qui modifiera la forme de la fonction. Comme les règles de calcul rappellent toujours le programme Laplace, Mathematica va alors chercher à identifier la fonction modifiée à celles du dictionnaire ou alors à utiliser une formule différente. De ce fait, il ne peut pas y avoir de boucle ininterrompue dans l'appel de Laplace.

2003.Laplace.nb

4

ü Perspectives

Notons que nous avons posé comme problème la résolution d'équations différentielles. Il est donc nécessaire d'établir un programme de calcul des transformées inverses de Laplace. En effet, la résolution d'une équation différentielle linéaire s'effectue en trois étapes : d'abord l'équation est transformée dans le domaine de Laplace ce qui donne une équation polynomiale, il s'agit ensuite de résoudre cette équation en obtenant une fraction rationnelle de la variable de Laplace. Enfin, il convient de déterminer la fonction de la variable réelle qui a pour transformée de Laplace la fraction rationnelle en question. C'est ce dernier point qui permet de mettre en exergue la nécessité de réaliser un programme de calcul de la transformée inverse. Il est clair que cette conception se ferait de manière analogue à celle du programme que nous avons réalisé car il suffit de définir un dictionnaire de fonctions usuelles, établir des règles de calcul et en dernier ressort recourir à l'intégrale de Mellin-Fourier.

ü Conclusion

L'intérêt d'un tel programme réside dans le calcul de transformées de Laplace compliquées qui seraient difficiles à effectuer à la main. Le cheminenment logique du programme évite si possible à Mathematica d'effectuer un lourd calcul d'intégrales.

ü Blibliographie

[1] R. Barrère, Calcul scientifique avec Mathematica, Polycopié ensmm, 2002 [2] R. Barrère, Mathematica, Polycopié ENSMM, 2002 [3] J. Hladick, La transformée de Laplace à plusieurs variables, Masson, 1969 [4] H. Reinhard, Cours de mathématiques du signal, Dunod, 1986 [5] M. R. Spiegel, Transformée de Laplace, McGraw-Hill, série Schaum, 1980

ü Annexe

ü Programme complet

H * Dictionnaire de fonctions usuelles * L

Laplace @ a_, t_ , p_ D ê ; FreeQ @ a, t D : = a ê p

Laplace @ t_ ^ n

Laplace @ Exp @

a

a

 

ê ; IntegerQ@ n D , t_ , p_ D : = n ! ê H p

* t_ D , t_ , p_ D ê ;

FreeQ @ a, t D : =

^ H n 1 ê H - a

+ 1 LL + p L

* t_ D , t_ , p_ D ê ;

FreeQ @ a, t D : =

a

ê H p

^ 2

+

a

^ 2 L

Laplace @ Sin @ Laplace @ Cos @

a

* t_ D , t_ ,

p_ D ê ;

FreeQ @ a, t D

: =

p

ê H p ^ 2 + a ^ 2 L

Laplace @ Sinh @

a

* t_ D , t_ , p_ D ê ; FreeQ @ a, t D : =

a

ê H p

^ 2

-

a

^ 2 L

Laplace @ Cosh @

a

* t_ D , t_ , p_ D ê ; FreeQ @ a, t D : = p ê H p ^ 2 - a ^ 2 L

H * Règles de

calcul * L

 

H * Règles de linéarité * L

Laplace @ u_ + v_, t_ , p_ D : = Laplace @ u, t, p D + Laplace @ v, t, p D

Laplace @ a_ * u_ , t_, p_ D a * Laplace @ u, t , p D

ê ; FreeQ @ a, t D : =

2003.Laplace.nb

5

H * Formules de dérivation * L

Laplace @ HoldPattern @ Derivative @ 1 D@ f_D@ t_ DD , t_ , p_ D : = p * Laplace @ f @ tD , t, p D + Limit@ f @ t D , t Ø 0, Direction Ø 1 D ; Laplace @ HoldPattern @ Derivative @ n D@ f_D@ t DD , t_ , p_ D : = p ^ n * Laplace @ f @ t D , t , p D - Sum @ p ^ H k - 1 L * Limit @ D @ f @ t D , 8 t, n - k <D , t Ø 0, Direction Ø 1 D , 8 k , 1, n <D ;

H * Théorèmes de l ' amortissement, du retard et de similitude * L

Laplace @ Exp @ a_ * t_ D * u_ , t_ , p_ D ê ; FreeQ@ a, t D : = Laplace @ u , t, H p - a LD Laplace @ u_@ t_ + a_ D , t_ , p_ D ê ; FreeQ @ a, t D : = Exp @ a * p D * Laplace @ u @t D , t, p D Laplace @ u_@ t_ * a_ D , t_ , p_ D ê ; FreeQ@ a, t D : = 1 ê a * Laplace @ u @ t D , t , p ê a D

H * Formule générale * L

Laplace @ f_, t_ , p_ D : = Integrate@ Exp@ - p * t D * f , 8 t, 0, Infinity< , GenerateConditions Ø False D

ü Exemples

Laplace @ 5 * t ^ 7, t , p D H * test des définitions de fonctions usuelles * L

25200

25200     ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ      
   

ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ

 
   

p

8

Laplace @ 2 * t, t, p D H * vérification de l' identification de t comme t^ 1 * L

2

ÅÅÅÅÅÅÅ

p 2

Laplace @ Exp @H - 2 L * t D , t, p D H * un autre exemple de fonction usuelle * L

1

ÅÅÅÅÅÅÅÅÅÅÅÅ

2 + p

Laplace @ a Sin @ 5 * t D + b Cos @ 2 * t D + Sinh@ 8 * t D + Cosh @ 3 * t D , t, s D H * exemple liant linéarité et fonctions trigonométriques;utilisation de la notation

8

ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ - 64 + s 2

+

s

ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ - 9 + s 2

+

ÅÅÅÅÅÅÅÅÅÅÅÅÅÅ 4 b + s s 2

+

ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ 25 5 + a s 2

Laplace @ 5 * t + 2 * t * Exp @H - 2 L * t D , t, p D H * linéarité et théorème de l ' amortissement * L

5

+

2

ÅÅÅÅÅÅÅ

ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ

p

2

H 2 + p L 2

Laplace @ Sin @ t + 2 D , t, p D H * utilisation du théorème du retard * L

2 p

ÅÅÅÅÅÅÅÅÅÅÅÅÅÅ

1 + p 2

Laplace @ 2 * Cos@ t D * t , t, p D H * utilisation de la formule générale et identification des constantes et des variab

ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ 2 H - 1 + p 2 L H 1 + p 2 L 2