28
Facult´ e des Sciences Universit´ e de Paris Sud Introduction ` a Mathematica -1 -0.5 0.5 1 -1 -0.5 0.5 1 -0.1 -0.05 0.05 0.1 -1 -0.5 0.5 1 Licence de Sciences Physiques Jean-Luc Raimbault Daniel Boulanger 19 octobre 2005

Introduction `a Mathematica - LPP · Les notes qui suivent ont pour but de vous aider a maˆıtriser quelques unes des fonctionnalit´es de Mathematica. Cette courte initiation poursuit

  • Upload
    vuduong

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Faculte des Sciences

Universite de Paris Sud

Introduction a Mathematica

-1 -0.5 0.5 1

-1

-0.5

0.5

1

-0.1 -0.05 0.05 0.1

-1

-0.5

0.5

1

Licence de Sciences Physiques

Jean-Luc Raimbault

Daniel Boulanger

19 octobre 2005

Les notes qui suivent ont pour but de vous aider a maıtriser quelques unesdes fonctionnalites de Mathematica. Cette courte initiation poursuit un doubleobjectif. Tout d’abord celui d’une approche differente des concepts mathematiquesintroduits en cours, complementaires des seances traditionnelles d’exercices entravaux diriges, mais egalement, celui de la decouverte (ou de l’approfondisse-ment) d’un outil qui vous permet de produire des documents a visee pedagogiqueou scientifique.

Le premier chapitre vous met directement dans le bain, en vous permettantdans un contexte scientifique simple et vraisemblablement connu, de tester defacon empirique certaines des possibilites de Mathematica (calcul symbolique,calcul numerique et representation graphique) .

Le deuxieme chapitre est plus formel et donne quelques elements de la syn-taxe de Mathematica. Il n’est evidemment pas possible d’etre exhaustif, maisle lecteur patient qui testera tous les exemples donnes en prenant le temps d’yreflechir, devrait comprendre l’essentiel de la structure et du fonctionnement deMathematica.

Les 2 derniers chapitres contiennent des exercices et des problemes. Les exer-cices sont des applications assez directes qui vous permettront d’evaluer votrecomprehension et votre maıtrise du logiciel. Les problemes sont plus ambitieux,et permettent pour l’essentiel une mise en situation concrete des 2 principalesparties du cours : l’analyse de Fourier et les equations differentielles.

Suivez ces notes dans l’ordre et a votre rythme ; en 3 seances de 4 heures, ilest vraisemblable que la plupart d’entre vous ne pourront effectuer l’integralitedu travail demande (sauf peut etre ceux qui connaissent deja un peu Mathema-tica). Il est plus profitable d’en faire moins mais d’une facon maıtrisee, plutotque davantage d’une facon hasardeuse. Nous vous conseillerons au cours desseances sur le choix des exercices et des problemes. La salle etant en acces libre,libre a vous d’en faire davantage.

Aucun compte rendu ne sera demande, mais une courte evaluation treselementaire aura lieu en fin de semestre. Un corrige-type vous sera rendu ac-cessible a l’issue des seances encadrees. La bibliographie sur Mathematica estimportante. Si vous en ressentez le besoin, le plus simple est d’aller dans n’im-porte quelle bibliotheque et de feuilleter les ouvrages pour trouver celui dontle niveau et la demarche vous conviennent au moment de la consultation pouren tirer profit. Un bon ouvrage basique et clair est celui de l’inventeur de Ma-thematica, Stephen Wolfram, Mathematica, A system for doing mathematics bycomputer, Addisson Wesley.

Chapitre 1

Un exemple pour decouvrir

Mathematica

Commencons cette decouverte par un exemple simple qui vous est surementfamilier : la figure de diffraction d’une fente de largeur a dans la direction noteeOx, centree sur l’origine, et infiniment longue dans la direction notee Oy.

-2 -1 1 2

0.2

0.4

0.6

0.8

1

-4 -2 2 4

0.2

0.4

0.6

0.8

1

Fig. 1.1 – Fonction de transparence d’une fente et Intensite diffractee

Vous devez savoir que l’amplitude diffractee par la fente (dans l’approxi-mation de Fraunhofer) est proportionnelle a la transformee de Fourier de lafonction de transparence (soit ici 1 si −a/2 < x < a/2, et 0 ailleurs) :

A(q) ∝∫ +a/2

−a/2e−i2πqx dx.

Demandez a Mathematica de calculer cette expression par l’ordre :

A[q ] :=Integrate[Exp[-I 2 Pi q x], x, -a/2, a/2 ](le sens du := et du q sera donne plus tard), puis taper Shift+Entree pour

executer cette commande. Mathematica a calcule formellement cette integrale,mais le resultat n’est pas tres explicite. Cela a meilleure allure apres l’ordre :

ExpToTrig[%]

qui donne un exemple de factorisations d’expressions mathematiques que

3

4 CHAPITRE 1. UN EXEMPLE POUR DECOUVRIR MATHEMATICA

Mathematica sait effectuer.

Que signifie le % ? Tapez pour voir

?%

Vous pouvez trouver peu commode d’avoir a memoriser des mots cles (commeIntegrate) et une syntaxe pour calculer des expressions simples. Il y a plusfacile. Selectionnez le menu File, puis Palettes, puis BasicInput, et utilisez lapalette pour redemander le calcul de l’integrale. Evidemment, vous devez etrecurieux et tester les autres palettes qui vous ouvriront d’autres horizons.

Sans surprise, nous avons donc trouve un sinus cardinal. Quelle est l’allurede cette fonction ? Tres simple ; donnons une valeur numerique a la variable aet representons cette fonction :

a = 1. ; Plot[A[q], q, -5, 5 ]Pas mal, mais on ne voit pas tout ! On passe une option (dont le sens est

evident) :

Plot[A[q], q, -5, 5 ,PlotRange -> All]

Ce serait parfait avec un peu de couleurs, encore une option :

Plot[A[q], q, -5, 5 , PlotRange -> All, PlotStyle -> RGBColor[1,

0, 0]]

..etc ..

Comme on ne peut pas tout memoriser, il faut utiliser l’aide en ligne. Allezdans le menu Help, puis dans Help Browser, et entrez la commande Plot, etconsultez les exemples et les sections correspondantes du Mathematica Book.Faites quelques essais.

Mathematica sait faire beaucoup de choses en calcul formel.

Par exemple, vous avez pu constater sur le graphe de l’amplitude que sin(x)/xtend vers 1 lorsque x → 0, ce qui ne devrait pas vous surprendre. Mathematicasait calculer des limites :

Limit[Sin[x]/x, x -> 0]

avec le bon resultat. On peut meme apprecier la courbure de la fonction al’origine en demandant un developpement en serie :

Series[Sin[x]/x, x, 0, 3]tres commode lorsqu’on a oublie les developpements limites des fonctions

usuelles (mais ce n’est pas votre cas, bien sur).

Donnons un autre exemple de calcul formel. On a dit plus haut que l’ampli-tude etudiee etait en fait une tranformee de Fourier. Mathematica sait la calcu-ler directement. Cherchons dans l’aide en ligne a FourierTransform. Comptetenu de la syntaxe, vous constatez qu’il faut savoir definir une fonction. Onpeut remarquer que la fonction de transparence de la fente peut s’ecrire comme

5

une difference de 2 fonctions de Heaviside, que Mathematica appelle UnitStep.Definissez la fonction de transparence de la fente :

fente[x ] := UnitStep[x + a/2] - UnitStep[x - a/2]

Mieux vaut verifier si on ne s’est pas trompe, et visualiser la fonction

Plot[fente[t], t, -2, 2]ce qui a l’air correct. Apres avoir desaffecte a de sa valeur numerique, cal-

culons la transformee de Fourier

Clear[a] ; FourierTransform[fente[x], x, q]

Cela ressemble a notre resulat anterieur, mais avec des 2π en trop. Reconsul-tez l’aide en ligne. Vous avez compris : il y a plusieurs conventions de definitionsdes transformees de Fourier. Passons une option

FourierTransform[fente[x], x, q, FourierParameters -> 0, -2 Pi ]et retrouvons le sinus cardinal :

ExpToTrig[%]

Visiblement il faut aider un peu Mathematica. Essayons

Simplify[%]

Enfin !

Dans le probleme d’optique considere, les positions des maxima ou mi-nima d’intensite nous interessent evidemment au premier chef. La positiondes minima d’intensite sont donnes trivialement par les valeurs de q telles quesin(πaq) = 0, c’est-a-dire tous les q = n/a avec n entier. Il est interessant denoter que les fonctions Solve (ou NSolve) de Mathematica, faites pour resoudreanalytiquement (ou numeriquement) les equations ne trouvent qu’une seule so-lution :

Solve[Sin[Pi a q] == 0, q]

(le sens du double == sera explique plus loin) ; ainsi que l’indique le mes-sage, la difficulte pour Mathematica provient de l’impossibilite de definir unefonction inverse sur tout R. Cherchons des solutions numeriques dans le casplus interessant des maxima. Calculons la derivee de l’amplitude, soit

Clear[a] ; D[Sin[a Pi q]/(Pi q), q] ; Simplify[%]

Les positions des maxima sont donc les solutions de l’equation transcendantetan(πx) = πx (pour a = 1). Representons ces 2 fonctions sur un meme graphe

Plot[Tan[Pi q], Pi q, q, 0, 3]On peut maintenant determiner numeriquement les solutions de cette equation

a partir d’une valeur d’essai par une commande qui utilise l’algorithme de New-ton. Par exemple,

FindRoot[Tan[Pi x] == Pi x, x, 1.7]

6 CHAPITRE 1. UN EXEMPLE POUR DECOUVRIR MATHEMATICA

trouve la position du maximum compris dans l’intervalle [1.5, 2.5] a partirde la valeur d’essai 1.7.

Une derniere chose. Il est assez facile d’exporter du texte ou des graphiquesrealises avec Mathematica vers d’autres logiciels. Par exemple pour placer lafigure 1 dans ce texte tape en LaTex, on peut generer la figure sous Mathematicapar la commande

Show[GraphicsArray[

Plot[fente[x], x, -2, 2],Plot[Abs[A[q]]^ 2, q, -5, 5, PlotRange -> All,

PlotStyle -> RGBColor[1, 0, 0]]]]

qui permet une presentation des figures en tableau, puis on l’exporte (auformat eps) en selectionnant la figure et en activant Eps dans le menu Edit/SaveSelection As ... D’autres formats d’exportation sont possibles en particulier wmfvers les applications Windows.

Chapitre 2

Le strict necessaire en

Mathematica

2.1 Generalites

On entre la neme commande sous le prompt In[n] := ,Shift+Entree permet d’executer la commande,et Mathematica repond (eventuellement) sous le prompt Out[n]=% et %n donnent le dernier resultat et le resultat correspondant a Out[n].Un point-virgule ; place a la fin d’une ligne de commande supprime l’affichagea l’ecran (mais effectue la commande).Les commentaires, ignores par Mathematica, se placent entre (* et *)

Les arguments des expressions sont entre [ ].Les fonctions propres a Mathematica commencent toujours par une majuscule.Les multiplications sont representees par un espace (ou une *) et les exposantsa l’aide de ˆ .Pi, E, I, Infinity representent respectivement π, e,

√−1 ≡ i,∞.

N[x,n] donne une valeur numerique approximative de x a n decimales.

x = a assigne la valeur a a la variable x. L’assignation est definitive tantqu’on n’utilise pas la commande Clear[x] ou x=.

Exemples (a comprendre)

2/4^ 2 puis N[2/4^ 2] puis 2./4^ 2N[Pi,40],Sqrt[-4],p = (4+ 3 I)/(2- I),(* Definition de r *) puis r = Sin[Pi/4], %+1.,Conjugate[p] puis p puis Clear[p],u = ArcSin[r]+p ; puis u

7

8 CHAPITRE 2. LE STRICT NECESSAIRE EN MATHEMATICA

2.2 Affectations, Equations et Fonctions

En plus de l’affectation definitive deja rencontre =, il existe une affectationdifferee designee par le symbole := Par exemple, considerons une affectationdefinitive pour la grandeur x : x = 3. Definissons 2 grandeurs qui dependent dex, une par affectation definitive : u = x+3, et une autre par affectation differeev := x+3. Si l’on demande u ou v, on trouve 6. Changeons la valeur de x parune nouvelle affectation definitive, par exemple x = 2. On trouve alors u = 6mais v = 5. Autrement dit, la valeur de u a ete calculee une fois pour toute,tandis que la valeur de v n’est evaluee (de facon differee) que lorsqu’on l’appelle,et prend donc en compte les eventuelles modifications de la variable.

La commande x == y teste si x et y sont egaux ; il ne faut donc pasconfondre cette egalite logique avec les signes d’affectations precedemment definis.L’egalite logique == est evidemment importante pour definir et resoudre desequations.

La commande f[x ] := x^ 2 definit la fonction x 7→ x2, c’est-a-dire quex represente une variable muette que l’on peut donc remplacer par n’importequoi. On pourrait se dire qu’il est egalement possible de definir une fonction parla simple affectation differee g[x] := x^ 2 ; l’argument x n’est cependant pasune variable muette, mais represente une valeur specifique de x. Il est certainscas ou l’on doit definir une fonction par l’ordre f[x ]= x^ 2, c’est-a-dire sansl’affectation differee. C’est le cas en particulier lorsque la definition de la fonctionresulte d’un calcul qui met en jeu la variable muette de la fonction (cf. exemplesa suivre).

La commande de base pour representer les fonctions est Plot[f[x],x,xmin,xmax] qui trace la fonction f en fonction de la variable x, pour les valeurs de xcomprises netre xmin et xmax. On peut representer plusieurs fonctions sur unmeme schema : Plot[f[x],g[x],x,xmin, xmax] (noter la presence desaccolades). On peut passer de nombreuses options (consulter l’aide en ligne) enajoutant une regle immediate exprimee a l’aide des symboles ->.

Exemples (a comprendre)

Clear[x] puis Solve[x x + 3 x == 0,x]

f[1]=1 ; f[n ] :=n f[n-1] puis f[10] == 10 !

x=2 ;r=x^ 2 ;s :=x^ 2 ;x=3 ;

Print["x= ",x "r= ","s= ",s]

f[x ] := x^ 2 ; g[x] := x^ 2 ; h[x ]= x^ 2 ; f[dudu] puis g[dudu] puis h[dudu]x=2 ; f[2] puis g[2] puis h[2]Plot[f[x],x,-2,2] puis Plot[g[x],x,-2,2] puis Plot[h[x],x,-2,2]Plot[f[t],t,-2,2] puis Plot[g[t],t,-2,2] puis Plot[h[t],t,-2,2]Clear[f,g,x] ;f[x ] := D[Exp[x^ 2],x] puis g[x ]= D[Exp[x^ 2],x]

Plot[f[x],x,-2,2] puis Plot[g[x],x,-2,2]Plot[Sin[x],x,0, 5, PlotLabel -> "Graphe de sin(x)"]

Plot3D[Sin[x] Sin[3 y],x,-2, 2,y,-2,2, PlotPoints -> 40]

2.3. LISTES ET MATRICES 9

2.3 Listes et Matrices

Une liste est une collection d’objets que Mathematica considere comme uneentite. Le contenu d’une liste est compris entre 2 accolades . Par exemple,v = 2,4,5,1 est une liste de 4 nombres que l’on peut manipuler a loisir ;essayez par exemple v^ 2 ou v/(v-2). On peut construire des listes de listes : w= a,b, c,d

On extrait un element d’une liste a l’aide du double crochet [[n]] quirepere la position du neme element de la liste consideree. Essayez v[[3]]. Dansle cas d’une liste de liste, essayez w[[ 1 ]] puis w[[ 1,2 ]]. Pour extraire plu-sieurs elements, il faut rajouter des accolades (puisque c’est une sous-liste) ; parexemple v[[ 1,2 ]] ; notez que dans ce dernier cas Mathematica retourneun resultat entre accolades : c’est a dire une liste.

On peut creer facilement des listes par l’ordre Range[n] qui cree la liste desn premiers entiers 1,2,...,n. La commande Table[expr,i,imin,imax]construit une liste de valeurs de expr lorsque i va de imin a imax. Exemple :Table[Cos[n Pi/3],n,0,6].

On est parfois gene par l’exces d’accolades generees par Mathematica dans ladefinition des listes. Une commande utile est l’ordre Flatten[list] qui ote tousles niveaux intermediaires d’accolades. Essayez Flatten[w] et Flatten[v].

Pour representer le contenu d’une liste, la commande de base est ListPlot[list]qui represente les elements de la liste en fonction de 1, 2, · · ·. Essayez ListPlot[v] ;on peut bien sur passer des options, par exemple ListPlot[v,PlotJoined ->

True]. On peut aussi representer les elements d’une liste en fonction d’uneautre. Par exemple, apres avoir donne des valeurs numeriques arbitraires auxelements de w, testez ListPlot[w,PlotStyle -> PointSize[0.02], RGBColor[1,

0, 0], PlotRange -> All].

Sous Mathematica les vecteurs sont representes par des listes et les matricespar des listes de listes. Voici un vecteur a 2 composantes u = v[[ 1,2 ]].La liste w deja definie est une matrice 2 × 2. La commande Array[a,m,n]construit un une matrice m×n dont les elements sont les a[i, j]. On peut faire desoperations. En particulier le produit de matrices (ou d’une matrice par un vec-teur) est notee par un point. Essayez w.u. On peut representer le resultat sousforme d’un tableau matriciel plus lisible MatrixForm[%]. Consultez quelquesunes des operations possibles sur les matrices dans le menu Built-in Functions/Lists and Matrices/ Matrix Operations du Help Browser du Mathematica.

Exemples (a comprendre)

m = Table[1/(i+j+1),i,3,j,3] puis MatrixForm[%] puis Det[m]Inverse[m] puis %.m puis Inverse[m].m == IdentityMatrix[3]

gaz = Table[Random[], Random[], 100] ;newgaz=gaz[[1,2]]deuxgaz = Join[gaz, newgaz] ; Length[deuxgaz]

gagaz = Union[gaz, newgaz] ; Length[gagaz]

10 CHAPITRE 2. LE STRICT NECESSAIRE EN MATHEMATICA

2.4 Regles et Substitutions

On a deja souligne que l’affectation par le signe egal etait definitive. On asouvent besoin de plus de souplesse, par exemple en demandant qu’une affecta-tion ait lieu seulement dans une expression particuliere. Cela peut etre realise enspecifiant une regle de transformation a l’aide du symbole ->, et en demandantson application dans une expression particuliere a l’aide du symbole /.

Les regles peuvent etre nommees. Par exemple rule1=x->2 donne le nomrule1 a la regle x->2, et x^ 2/. rule1 applique cette regle a x2 pour donner 4.Un resultat equivalent aurait pu etre obtenu sans avoir nomme la regle : x^ 2/.x->2. Noter que la valeur de x n’est pas fixee de facon definitive. Demandez x.

Dans le cas ou on a besoin de specifier plusieurs remplacements, on peutdefinir une liste de regles. Exemple : rule2=x->2,y->3 puis x^ 2 + y^ 2 /.

rule2 donne 13. On peut combiner affectation et remplacements : t = x^ 2

+ y^ 2 puis t/.x->2,y->3 donne le meme resultat. Qu’obtenez-vous si vousdemandez t ?

Exemples (a comprendre)

sincos2 = Sin[2 x ] -> 2 Sin[x] Cos[x] puis t = Sin[2 x] + Sin[z]

puis t/. sincos2

sincos1 = Sin[x ] -> 2 Sin[x/2] Cos[x/2] puis t puis t/. sincos1

goldnb = Solve[x^ 2-x-1==0,x] puis solutions = x /. goldnb

y > 2 /. y -> 4

?/ ; puis marche[x ] :=1 / ; x > 0 puis marche[x ] :=0 / ; x < 0 puisPlot[marche[x],x,-2,2]

2.5 Procedures iteratives et conditionnelles

Une procedure est une succession de commandes ; celles-ci sont separees pardes points-virgules : Print["f(x) = sin x"] ;Plot[Sin[x],x,-Pi,Pi]

Mathematica permet d’executer des operations successives d’une facon as-sez comparable au C. Il est possible en particulier de definir des proceduresiteratives a l’aide des commandes Do, While et For et des procedures condition-nelles comme If et Which. Il est possible d’inclure une succession de commandesdans les procedures iteratives ou conditionnelles.

Les exemples suivant permettent de comprendre ces commandes de faconassez intuitive. Consultez Built-in Functions/Programming/Flow Control dansl’aide en ligne pour des precisions sur la syntaxe.

Exemples (a comprendre)

Do[Print[i^ 2 ],i,4] puis x = 1 ; Do[y = x - 1 ; x = y, 3] ; yDo[Print[i^ 2 ],i,0,8,2]puis For[i = 1, i < 6, i++, Print[i]]

marche[x ] :=If[x > 0,1,0] puis Plot[marche[x],x,-2,2]

2.6. COMPLEMENTS SUR LE GRAPHISME 11

h[x ] :=Which[x < 0,x^ 2,x<5,-x^ 3,x>5,0] puis Plot[h[x],x,-2,8]

2.6 Complements sur le graphisme

Outre les commandes de base Plot et ListPlot que l’on a deja commentees,une autre possibilite interessante concerne les representations parametriques.Par exemple, le mouvement d’un oscillateur lineaire initialement en x(0) = 1,et sans vitesse initiale, s’ecrit dans l’espace des phases (position-vitesse), sousla forme x(t) = cos t, y(t) = − sin t. La representation parametrique correspon-dante est obtenue par la commande ParametricPlot[Cos[t],-Sin[t],t,0,2 Pi]. Dans le meme esprit, on peut utiliser la representation parametriquepour visualiser des fonction d’une variable complexe dans le plan partie reelle-partie imaginaire (diagramme d’Argand).

Tous les dessins sous Mathematica sont construits a partir de primitivesde type Graphics. Pour voir la sequence d’instructions correspondant a undessin aussi simple que p2=ListPlot[1,2], tapez cette commande suiviede InputForm[p2] dont le resultat est a peu pres comprehensible. L’instruc-tion Graphics[list] par elle-meme, execute les instructions correspondanta un dessin mais ne le montre pas. C’est la commande Show qui l’effectue.Exemple : p1= Graphics[Line[ -1,1,1,1 ],Line[ -1,1,1,-1],Line[ 1,1,1,-1 ]] puis Show[p1]. On peut egalement placer despoints, ou du texte sur une figure par les ordres Point et Text. Les gra-phiques peuvent etre groupes pour etre presentes en lignes ou en colonnes :p3=GraphicsArray[p1,p2] puis Show[p3].

D’une facon assez generale, les representations tridimensionnelles sont obte-nues par les memes mots-cles completes par le suffixe 3D : Plot3D, ListPlot3Det ParametricPlot3D.

Completez votre information en consultant les rubriques du Built-in Func-tions/Graphics and Sound de l’aide en ligne.

Exemples (a comprendre)

gr1 = Plot[Sin[1/x], x, -1, +1] puis Show[gr1, PlotRange -> -0.3,0.3, -1, 1, PlotLabel -> "Sin(1/x)"]

v[x , y ] := 1/(x^ 2 + y^ 2) puis ContourPlot[v[x, y], x, -5, 5, y,-5, 5]gr2 = Graphics[ PointSize[0.1],

GrayLevel[0.6], Point[0, 1],RGBColor[1, 0, 0], Point[1, 0],RGBColor[0, 1, 0], Line[ 0, 1, 1, 0 ],Text["2 Points", 0.3, 0.3] ] puis Show[gr2, PlotRange -> All]

Show[GraphicsArray[ gr1, gr2, gr2, gr1 ]]

12 CHAPITRE 2. LE STRICT NECESSAIRE EN MATHEMATICA

Chapitre 3

Exercices

3.1 Figures de diffractions et d’interferences

-3 -2 -1 1 2 3

0.2

0.4

0.6

0.8

1

-15 -10 -5 5 10 15

0.1

0.2

0.3

0.4

Fig. 3.1 – Figure d’interferences produite par 2 fentes

Cet exercice est un prolongement du premier chapitre.

1. Vous avez appris dans votre cours d’optique que l’intensite diffractee parune fente n’etait pas modifiee lorsqu’on deplacait cette fente dans le planqui la contient. Verifiez ce resultat en utilisant Mathematica.

2. Representez la figure d’interferences obtenue a partir de 2 fentes placeessymetriquement de part et d’autre d’un axe. Etudiez l’importance de lalargeur de la fente et la distance entre les fentes.

3.2 Integration d’une EDO a variables separables

Comme exemple d’equation differentielle a variables separables, nous consideronsl’exemple traite en TD, d’un mobile soumis a une force de frottement nonlineaire :

mv = mg − av − bv2, ⇔ dv

dt= g − αv − βv2

ou α et β sont 2 coefficients positifs, et on supposera que v(0) = 0.

13

14 CHAPITRE 3. EXERCICES

1. La solution de l’equation differentielle v(t) est donnee par l’equation im-plicite :

∫ v(t)

0

du

g − αu − βu2= t.

Resoudre cette equation analytiquement avec Mathematica en precisantque g, α et β sont des grandeurs strictement positives.

2. On fixe desormais les valeurs des constantes : g = 9.81, α = 0.1 et β =0.05. Determiner la vitesse limite atteinte par le projectile aux temps longs(c’est un des points fixes du systeme).

3. Representer sur un meme schema la solution v(t) et la vitesse limite.

3.3 Optimisation

Montrer en utilisant Mathematica que le parallelepipede de plus petit vo-lume pour une surface donnee est le cube.

a, b, c designant les 3 cotes du parallelepipede, on introduira les fonctionsde trois variables v = abc et s = 2(ab + ac + bc). La surface s etant constante,une premiere methode consiste a exprimer une des 3 variables en fonction des2 autres et de s, de substituer dans v puis de minimiser v par rapport aux 2variables restantes.

Dans un deuxieme temps, on resoudra a nouveau ce probleme en utilisantla methode des multiplicateurs de Lagrange vue en cours.

3.4 Racines nemes de l’unite

-1 -0.5 0.5 1Re z

-0.75

-0.5

-0.25

0.25

0.5

0.75

Im z

Fig. 3.2 – Racines de l’equation z6 = 1.

Resoudre l’equation z6 = 1 dans le plan complexe.

On effectuera une boucle pour extraire les racines, puis on construira unetable, et on representera les racines sur un diagramme d’Argand.

3.5. ESPACE DES PHASES DU PENDULE NON LINEAIRE 15

3.5 Espace des phases du pendule non lineaire

-7.5 -5 -2.5 2.5 5 7.5x

-2

-1

1

2

x’

Fig. 3.3 – Espace des Phases d’un pendule non lineaire

Il est bien connu que l’equation differentielle du pendule non lineaire (xrepresente un angle), qui s’ecrit

x′′(t) + sinx(t) = 0,

dans un systeme d’unites normalisees, peut etre integree une fois, et conduit al’integrale premiere (energie) suivante :

1

2x′2 − cos x = Cte.

On demande de reproduire le schema ci-dessus de 2 facons differentes :

1. En cherchant les solutions x′ de l’equation integrale, et en representantces solutions pour des valeurs bien choisies de la cte.

2. En utilisant la commande ContourPlot.

3. A quels mouvements correspondent les orbites ouvertes et les orbitesfermees ?

3.6 Phenomene de Gibbs

On a vu en cours et en Td que la fonction

f(x) =

−1 −1 < x < 0+1 0 < x < 1

admettait pour developpement en serie de Fourier

4

π

∞∑

n=1

sin(2n − 1)πx

2n − 1.

On considere la somme finie correspondante, et on s’attend naturellement aretrouver le creneau carre pour des valeurs de n suffisamment grandes :

f(x, N) =4

π

N∑

n=1

sin(2n − 1)πx

2n − 1.

16 CHAPITRE 3. EXERCICES

1. Definir une fonction dependant des variables x et N qui permettent derepresenter cette somme pour differentes valeurs de N .

2. Representer la somme pour N = 10.

3. Representer la somme sur un meme schema pour N = 10, N = 30 etN = 60 au voisinage de x = 0.5. Memes questions au voisinage de x = 1.Que constatez-vous ?

4. Utilisez Mathematica pour etablir le resultat :

∂f

∂x= 2

sin 2Nπx

sinπx

(on pourra utiliser la commande FullSimplify en precisant que N estentier).

5. Verifier que le premier maximum de f est en x = 1/2N .

6. La valeur de la fonction en ce maximum est donc donnee par :

f

(

1

2N, N

)

= 2

∫ 1/2N

0

sin 2Nπx

sinπxdx =

2

π

∫ π

0

sin z

2N sin(z/2N)dz.

Ainsi, meme lorsque N → ∞, la somme depasse systematiquement lavaleur attendue (1) puisque :

limN→∞

f

(

1

2N, N

)

=2

π

∫ π

0

sin z

zdz.

Utilisez Mathematica pour calculer ce nombre et comparer avec les representationsde f donnees precedemment.

-1 -0.5 0.5 1

-1

-0.5

0.5

1

-0.1 -0.05 0.05 0.1

-1

-0.5

0.5

1

Fig. 3.4 – Phenomene de Gibbs pour le creneau carre

3.7 Une feuille fractale

On peut creer une fractale ressemblant a une feuille d’arbre en iterant l’ap-plication suivante du plan :

xn+1 = aixn + biyn + ei,

yn+1 = cixn + diyn + fi

3.7. UNE FEUILLE FRACTALE 17

-0.5 x 0.50

0.5

y

1

1.5

Fig. 3.5 – Feuille fractale cree par une iteration dans le plan

a partir du point initial x0 = y0 = 0. Les 6 coefficients (ai, bi, · · · , fi) sont fixescomme suit. Pour chaque valeur de n, on tire au hasard un nombre r dansl’intervalle ]0, 1[. Le resultat fixe un des 4 jeux differents de valeurs (i = 1 a 4)que peuvent prendre ces coefficients :

i r ai bi ci di ei fi

1 0.00 < r < 0.01 0.00 0.00 0.00 0.16 0.00 0.00

2 0.01 < r < 0.08 0.20 −0.26 0.23 0.22 0.00 0.20

3 0.08 < r < 0.15 −0.15 0.28 0.26 0.24 0.00 0.20

4 0.15 < r < 1.00 0.85 0.04 −0.04 0.85 0.00 0.20

1. Ranger les coefficients (ai, bi, · · · , fi) dans des vecteurs a 4 composantes,et initialiser les vecteurs x et y.

2. Definir une fonction xx(i, n) dont le second membre est donne par xn+1 =aixn + biyn + ei. Meme chose pour yy(i, n).

3. Construire une table comprenant les iteres successifs (xx(i, n), yy(i, n))a l’aide d’un test Which portant sur le nombre aleatoire r (un nombrealeatoire compris entre 0 et 1 peut etre genere par la commande Random[]).

18 CHAPITRE 3. EXERCICES

4. Representer la table a l’aide de l’ordre ListPlot et tester le resultatobtenu en fonction du nombre maximal d’iterations.

Chapitre 4

Problemes

On vous propose dans les 2 problemes independants qui suivent d’utiliserMathematica pour

– traiter une application de l’analyse de Fourier au probleme du filtrage etdu redressement de signaux electriques

– analyser quelques modeles, de dynamique des populations qui reprend lapresentation succinte des modeles de Malthus, Verhulst et Lokta-Volterraqui vous a ete faite en cours.

Bien qu’il soit possible de repondre a certaines questions sans utiliser Ma-thematica, on s’efforcera, a titre d’exercice, d’utiliser au maximum le logiciel,ce qui ne doit pas vous empecher de vous interroger en effectuant un calcul ala main. Les quelques questions ou on ne demande pas d’utiliser Mathematicaseront distinguees par une ∗.

4.1 Filtrage et redressement des signaux electriques

Un filtre passe-haut attenue les frequences basses tandis qu’un filtre passe-bas attenue les frequences hautes. L’attenuation est d’autant plus forte que lafrequence est basse pour un filtre passe-bas, et haute pour un filtre passe-haut.La composante continue n’est pas attenuee dans un filtre passe-bas et ne passepas dans un filtre passe-haut. Les schemas sont reportes sur la figure 4.1.

Fig. 4.1 – Circuits electriques du filtre passe-haut (a gauche) et du filtre passe-bas (a droite).

19

20 CHAPITRE 4. PROBLEMES

G est le generateur de tension. Ve indique la tension fournie par le generateur,et Vs la tension de sortie aux bornes de la resistance R ou de la capacite C.

Pour une onde sinusoıdale en regime etabli (on ne s’interesse pas au regimetransitoire), de frequence ν = 1/T et de pulsation ω = 2πν, on etablit facilement(le verifier !)

Vs = Vejωτ

1 + jωτ, pour le filtre passe-haut,

Vs = Ve1

1 + jωτ, pour le filtre passe-bas,

ou τ = RC est la constante de temps des filtres.

Pour tester ces circuits, nous utiliserons successivement un generateur detension triangulaire et un generateur de tension carree (cf. figures 4.2). La ten-sion generee est positive ou nulle, son amplitude est 1 V, et sa periode T .

Fig. 4.2 – Deux exemples de tensions d’entrees .

4.1.1 Tensions de sortie pour un signal d’entree triangulaire

Dans un premier temps les circuits sont alimentes par le signal triangulaire.

Analyse exacte du signal d’entree

* Effectuer le developpement en serie de Fourier de la tension d’entree Ve.

* Quelle est la signification du coefficient correspondant a la frequencenulle ?

* La serie converge-t-elle rapidement ?

* Calculer les series derivee et integree.

* Quelles sont les relations entre les coefficients de Fourier de la tension desortie Vs et ceux de la tension d’entree Ve pour les 2 filtres ?

4.1. FILTRAGE ET REDRESSEMENT DES SIGNAUX ELECTRIQUES 21

Analyse numerique du signal d’entree

Charger le ”package“ FourierTransform par l’ordre <<Calculus‘FourierTransform‘.

1. Utiliser la fonction x 7→ 1 − 2|x| pour construire la fonction periodiquecorrespondant a Ve. (Round).

Representer la fonction x 7→ Ve(x) pour |x| ≤ 1.5.

2. Soit fN : x 7→ fN (x) la fonction obtenue a partir du developpementen serie de Fourier de Ve lorsqu’on limite le developpement aux 2N + 1premiers termes (n = −N, · · · , +N).

Definir fN (FourierTrigSeries).

3. Representer sur une meme figure les fonctions Ve et f5 pour |x| ≤ 1.5.

4. Calculer les coefficients de Ve correspondant aux 5 premieres harmoniques(positives et negatives) (FourierCoefficient).

5. Afficher les coefficients calcules et les comparer a ceux calcules a la main(Do, Print, Expand).

6. Reconstruire f5 a partir des coefficients de Ve et verifier sur un schemaque le resultat obtenu correspond avec f5 calculee a partir de fN .

Analyse du filtre passe-haut

1. Les parametres du circuit sont choisis tels que R = 300 Ω, C = 1µF etν = 50Hz. Montrer qu’on a alors τω ≪ 1. Pourquoi le filtre passe-hautest-il qualifie de differentiateur dans ces conditions ?

2. On appelle gN la fonction obtenue a partir du developpement en seriede Fourier de Vs lorsqu’on limite le developpement aux 2N + 1 premierstermes.

En utilisant la relation donnant Vs en fonction de Ve, exprimer les coeffi-cients de gN en fonction de ceux de fN (pour chaque harmonique, penseza la substitution ω → nω).

3. Afficher les coefficients de g5. Que devient la composante continue de Vs ?Quels sont les coefficients les plus attenues ?

4. Former une liste des coefficients de f5, une liste des coefficients de g5 etune derniere liste des rapports des coefficients de ces 2 fonctions (c’est lareponse spectrale).

5. Tracer les listes precedentes.

6. Representer la fonction g5 puis, sur un meme schema les fonctions f5 etg5.

7. Le resultat est-il proche de la derivee du signal de Ve, sinon pourquoi ? Vs

est-il dephase par rapport a Ve ?

8. Etudier l’effet d’une augmentation de la frequence et/ou du nombre descoefficients calcules.

22 CHAPITRE 4. PROBLEMES

Analyse du filtre passe-bas

Effectuer la meme analyse pour le filtre passe-bas. Les valeurs de C et νsont inchangees, mais on prendra R = 300 kΩ. Dans ces conditions, expliquezpourquoi le filtre passe-bas fonctionne comme un integrateur.

-1.5 -1 -0.5 0.5 1 1.5

-0.2

0.2

0.4

0.6

0.8

1

Fig. 4.3 – Tensions d’entree et de sortie en mode integrateur.

4.1.2 Tensions de sortie pour un signal d’entree carre

1. Reprendre l’analyse precedente dans le cas d’un signal d’entree carre.

2. Les fonctions de differentiateur ou d’integrateur sont-elles meilleures oumoins bonnes avec un signal d’entree carre ou triangulaire ?

4.2 Modeles de Dynamique des Populations

4.2.1 Modeles de populations isolees

Le modele logistique

Le modele le plus simple qui conduit a une population stabilisee est le modeleintroduit par Verhulst, egalement appele modele logistique. N(t) designant lenombre d’individus a l’instant t, ce modele s’ecrit :

N = rN

(

1 − N

K

)

,

ou r et K sont deux constantes positives.

* K s’appelle la capacite biotique. Que representent les deux grandeurs ret K et quelle est leur dimension ? Pour quelle valeur de K retrouve-t-onle modele de Malthus ?

1. Resoudre analytiquement cette equation differentielle avec la conditioninitiale N(0) = N0 (DSolve).

4.2. MODELES DE DYNAMIQUE DES POPULATIONS 23

2. Representer sur un meme schema les solutions pour r = K = 1, et pour4 conditions initiales differentes N0 = 0, 0.5, 1, 1.5 (Plot).

3. Resoudre numeriquement l’equation differentielle pour r = K = 1 et pourN0 = 0.5. Refaire le calcul pour les memes valeurs de r et K, mais pourN0 = 1.5.

Representer sur un meme schema, la difference entre les solutions analy-tiques et numeriques (NDSolve).

4. Etudier la precision du resultat obtenu par le calcul numerique en fonc-tion du nombre de decimales utilisees par Mathematica dans les calculs(WorkingPrecision).

La chenille de l’epicea

La chenille de l’epicea est un insecte qui peut ravager les sapins par defoliation.Heureusement les oiseaux mangent les chenilles, de sorte qu’une modelisationraisonnable doit prendre en compte a la fois les effets logistiques et des effetsde predation. Un des modeles phenomenologiques proposes par certains auteursest le suivant :

N = rN

(

1 − N

K

)

− BN2

A2 + N2,

ou A et B sont deux nouvelles constantes positives.

* Discuter le comportement du terme de predation pour N faible ou tresgrand.

* On introduit les grandeurs sans dimension : u = N/A, κ = K/A, ρ =rA/B et τ = Bt/A.

Montrer que l’on est conduit a l’equation sans dimension :

u = ρu(

1 − u

κ

)

− u2

1 + u2,

ou la derivee est maintenant par rapport a τ .

1. On veut trouver les solutions stationnaires non nulles du systeme par unemethode graphique.

Representer sur un meme schema les fonctions u 7→ ρ(1 − u/κ) et u 7→u/(1 + u2) pour κ = 10, ρ = 0.2. Comparer avec les cas ρ = 0.5 et ρ = 1,toujours pour κ = 10 (Plot,Show).

* En deduire que le systeme admet, selon les valeurs de ρ ou κ, une ou 3solutions stationnaires.

2. On note, lorsqu’elles existent, u1, u2, u3, les 3 solutions stationnaires classeespar ordre croissant.

Montrer, en variant les conditions initiales, que u1 et u3 sont des solutionsstables, tandis que u2 est instable. Commenter (NDSolve,Plot).

3. On fixe la valeur de κ a 10.

Montrer qu’une petite variation de ρ (tester le passage de 0.56 a 0.57) in-duit une tres forte variation de la population de chenilles (NDSolve,Plot).

Commenter.

24 CHAPITRE 4. PROBLEMES

1 2 3 4 5

1

2

3

4

5

5 10 15 20

1

2

3

4

5

Fig. 4.4 – Modele de Lokta-Volterra

4.2.2 Modeles de populations en interaction

Le modele de Lokta-Volterra

Le modele de Lokta-Volterra est le premier modele historique qui met enjeu 2 populations en competition ; les hypotheses sous-jacentes a ce modele ontete donnees en cours. On note N(t) et P (t) les effectifs respectifs des proies etdes predateurs. Le modele s’ecrit :

N = N (a − bP ) ,

P = P (cN − d) ,

ou a, b, c, d sont des coefficients positifs.

* Montrer que les changements de variables u = cN/d, v = bP/a, τ = at etγ = d/a, conduisent au systeme adimentionne :

du

dτ= u (1 − v) ,

dv

dτ= γv (u − 1) .

1. Determiner les 2 solutions stationnaires du systeme differentiel (Solve).

2. Calculer les solutions numeriques du systeme differentiel pour des condi-tions initiales proches des 2 solutions stationnaires et les representer enfonction du temps (NDSolve, Plot).

Faire une representation parametrique de ces solutions dans le plan (u, v)(espace des phases) (ParametricPlot).

Commentez.

3. Procedez a une linearisation de ce systeme au voisinage des 2 solutionsstationnaires (D, MatrixForm).

4. Calculer le determinant, la trace et les valeurs propres des matrices as-sociees aux systemes linearises et en deduire la nature des 2 points cri-tiques (Eigenvalues, Det, Tr).

4.2. MODELES DE DYNAMIQUE DES POPULATIONS 25

200 400 600 800100012001400Proies

8101214161820

Predateurs

Fig. 4.5 – Modele de Lokta-Volterra generalise

Un modele de Lokta-Volterra generalise

Certains auteurs ont propose une version plus realiste du modele de Lokta-Volterra qui s’ecrit

u = (a − bv)u,

v =(

c − dv

u

)

v,

ou u et v designent toujours les effectifs des proies et des predateurs, et oua, b, c, d sont des constantes auxquelles on donnera les valeurs respectives 1, 0.1, 0.1, 2.5.

* Discuter les hypotheses sous-jacentes a ce modele.

1. Determiner l’unique solution stationnaire de ce modele.

2. Discuter la nature du point critique, et prevoir la forme de la trajectoiredans l’espace des phases.

3. Confirmer numeriquement l’evolution temporelle prevue a la questionprecedente.

26 CHAPITRE 4. PROBLEMES

Table des matieres

1 Un exemple pour decouvrir Mathematica 3

2 Le strict necessaire en Mathematica 7

2.1 Generalites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 Affectations, Equations et Fonctions . . . . . . . . . . . . . . . . 8

2.3 Listes et Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4 Regles et Substitutions . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5 Procedures iteratives et conditionnelles . . . . . . . . . . . . . . . 10

2.6 Complements sur le graphisme . . . . . . . . . . . . . . . . . . . 11

3 Exercices 13

3.1 Figures de diffractions et d’interferences . . . . . . . . . . . . . . 13

3.2 Integration d’une EDO a variables separables . . . . . . . . . . . 13

3.3 Optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.4 Racines nemes de l’unite . . . . . . . . . . . . . . . . . . . . . . . 14

3.5 Espace des phases du pendule non lineaire . . . . . . . . . . . . . 15

3.6 Phenomene de Gibbs . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.7 Une feuille fractale . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4 Problemes 19

4.1 Filtrage et redressement des signaux electriques . . . . . . . . . . 19

4.1.1 Tensions de sortie pour un signal d’entree triangulaire . . 20

4.1.2 Tensions de sortie pour un signal d’entree carre . . . . . . 22

4.2 Modeles de Dynamique des Populations . . . . . . . . . . . . . . 22

4.2.1 Modeles de populations isolees . . . . . . . . . . . . . . . 22

27

28 TABLE DES MATIERES

4.2.2 Modeles de populations en interaction . . . . . . . . . . . 24