Вы находитесь на странице: 1из 7

TP

301

SCHMA DEULER PROGRESSIF

Le compte rendu seffectue avant le mercredi 4 mars 2015 23h sur moodle.
Vos fonctions doivent tre testes, documentes et commentes.
Les questions

sont facultatives.

D RIVATION NUMRIQUE DORDRE


Soit une fonction de dans suppose de classe 1 . Si 0 est un rel donn, nous
pouvons crire
(0 + ) (0 )
(0 ) = lim
.
0

Une ide pour calculer numriquement la premire drive de au point 0 consiste donc
se donner une valeur positive assez petite (le pas) et calculer
(0 )

aprs avoir dfini la quantit

(0 ) (0 + ) (0 ).

Lorsque > 0 est donn, lobjet mathmatique est un oprateur ; toute fonction continue donne, il fait correspondre une autre fonction continue dfinie par
() = ( + ) (). Cet oprateur est appel oprateur de diffrence premire progressive. Cet oprateur est linaire.

301.1

QUATIONS DIFFRENTIELLES DU PREMIER ORDRE

Les codes python relatifs cette section seront sauvegards dans un fichier nomm partie1.py

Gnralits
Dans cette partie, nous notons

[
[
0 , +
(, )

.
(, )

une fonction donne de deux variables et . Dans les applications, est souvent une variable
physique alors que est une variable temporelle, que nous appellerons temps.
Nous voulons rsoudre le problme de Cauchy suivant : tant donne une valeur 0 (0
est dite valeur initiale), trouver une fonction de classe 1 , [0 , +[ () qui
satisfait
.
() = (, ())
(1)
(0 ) = 0 ,
d
.
o nous avons not () =
().
d
Exemple 1 On se donne (, ) = 33, 0 = 0 et 0 = (un nombre quelconque). Le problme
de Cauchy devient
.
() = 3() 3
(2)
(0) = ;
sa solution est donne par () = ( 13) 3 + + 13.
1

Schma dEuler progressif

Schmas dEuler
Pour tablir un schma dapproximation du problme (1), nous commenons par partitionner
laxe (), cest--dire nous choisissons des points 0 , 1 , 2 , tels que
0 < 1 < 2 < < < +1 <
En posant = +1 , nous pouvons approcher
.
( ) par

(+1 ) ( )
.

Si est une approximation de ( ), ces deux approches nous suggrent les schmas suivants, dit
schma dEuler progressif
(
)
+1
= , ,

= 0, 1, 2,

(3)

= 0 .
Le schma dEuler progressif est un schma explicite car il permet dexpliciter +1 en fonction
de :
(
)
+1 = + , .
Exercice 1 crire une fonction subdiv_reg dont le prototype est
1

subdiv_reg(a, b, n)
o a et b sont deux flottants tels que < , et n est un entier non nul. Cette fonction retourne la
liste constitue des + 1 lments 0 < 1 < < dune subdivision rgulire du segment
[, ].
Exercice 2
1. crire une fonction euler_progressif conduisant la rsolution approche du problme
de Cauchy
.
() = (, ())
(4)
(0 ) = 0 ,
Les arguments de cette fonction tant
une fonction f de deux variables,
une liste subdiv de flottants dont les lments sont tris par ordre strictement croissant
(cest la liste des ).
u_zero est un flottant reprsentant la valeur initiale au temps 0 , le premier lment
de la liste subdiv.
Cette fonction retourne la liste des approximations successives obtenues par la mthode
dEuler avec la subdivision subdiv (cest la liste des ).
2. On considre le problme de Cauchy sur lintervalle [0, 1].

.
() = (1 + 2) (), et (0) = 1.
Afficher sur un mme graphique les courbes de
(
)2
la solution analytique 14 2 + + 2
la solution approche avec la Mthode dEuler avec une subdivision avec un pas
constant de 0.2.
la solution approche avec la Mthode dEuler avec une subdivision avec un pas
constant de 0.1.

301.1. quations diffrentielles du premier ordre

tude dun circuit passe-bas


On considre le circuit reprsent sur la figure 301.1. On cherche la rponse du filtre
un signal dentre () crneau de priode = 1 ms (donc de frquence = 1 kHz) et variant
entre 0 et 1 V soit :
{
si [0, 2[
[0, [, () =
0 si [ 2, [
avec = 1 V.

FIGURE 301.1 Exemple de filtre en circuit ouvert .

Exercice 3
1. Affecter la variable globale1 T la valeur 1, T reprsentant la priode (toutes les dures
seront donc exprimes en ms).
2. Dfinir la fonction e qui, toute date t (flottant), fait correspondre la valeur (). Pour cela,
on utilise la dfinition rcursive suivante
0
si < 0

, () =
si 0 < 2
( ) si 2

Ne pas oublier de tester la fonction pour diffrentes dates !


3.

Dfinir la mme fonction, nomme e2, en utilisant loprateur % (modulo).

La loi des mailles dans le circuit 301.1 permet dtablir lquation diffrentielle rgissant
lvolution de la tension aux bornes du condensateur :
() = () + () avec

() =

d
d

d
d

+ () = () .

On identifie immdiatement une constante de temps = caractristique du circuit.


Lquation diffrentielle rsoudre est alors de la forme
d
d
1 Les

= (, , , ) avec

(, , , ) =

() ()

variables globales, cest mal. Mais en physique, cest souvent bien pratique pour les constantes...

(5)

Schma dEuler progressif


4. crire une fonction RC_euler qui prend comme arguments :
une fonction f image de ;
une fonction entree dune variable relle reprsentant () ;
un flottant tau reprsentant la constante de temps ;
une condition initiale s0 pour le signal de sortie ;
une date initiale t0 ;
une date finale t1 ;
un nombre de pas n ;
et renvoyant le couple (t,s) o t est une liste de n+1 dates et s est la liste (de mme
dimension que t) reprsentant les valeurs correspondantes issues de la rsolution numrique
de lquation (5) par la mthode dEuler.
5. Pour diffrentes valeurs de , reprsenter sur un mme grahique les signaux () et ()
pour [20 , 30 ]. On choisira ( = 0) = 0 et les valeurs suivantes :
1 = 0, 1

; 2 =

; 3 = 10

; 4 = 10

Bonus Observer les signaux dans lintervalle [0, 10 ]. Commenter.


6. En tudiant le comportement asymptotique du condensateur, justifier que le filtre tudi soit
un filtre passe-bas. Interprter alors les courbes prcdentes.

301.2

SYSTMES DIFFRENTIELS

Les codes python relatifs cette section seront sauvegards dans un fichier nomm partie2.py

Systmes diffrentiels du premier ordre


Soit une fonction vectorielle suppose continue
#
2
(, #
)

2
#
(, #
)

Si #
0 2 , on pose le problme de trouver une fonction valeurs vectorielles
#
#
() 2
telle que
.
#
() =
#
( ) =
0

#
(, #
())
#
.
0

Cette quation est un systme diffrentiel


de 2 quations 2 inconnues qui sont les composantes
.
.
.
#
#
(), () de (). La notation () reprsente le vecteur dont les composantes sont (), (). En
notant, 1 , 2 les composantes de la fonction , on obtient le problme de Cauchy
.
() = 1 (, (), ())
.
() = 2 (, (), ())
(0) = 0

et

(0) = 0 .

301.2. Systmes diffrentiels

Le schma dEuler progressif est gnralisable ce systme diffrentiel, il devient


#
#
+1 = #
+ ( , #
).

(6)

cest--dire
+1 = + 1 ( , , )
+1 = + 2 ( , , )
Exercice 4
1. crire une fonction euler2 de prototype euler2(f1, f2, subdiv, x_zero, y_zero)
qui implmente le schma dEuler prcdent avec la subdivision subdiv, et les conditions
initiales x_zero, y_zero.
Cette fonction retourne deux listes, correspondant aux approximations successives des fonctions et .
On sintresse au systme dquations de Lotka-Volterra. Celui-ci est classiquement utilis pour
dcrire lvolution dun couple proie-prdateur (ici est leffectif des proies, celui des prdateurs).
{
d
() = () ()()
d
d
() = () + ()()
d
avec = 1, = 0.1, = 1.5, = 0.75.
2. Rsoudre numriquement le systme de Lotka-Volterra sur lintervalle de temps [0, 100]
en utilisant une subdivision rgulire de 100000 pas. On prendra pour condition initiale 10
proies, et 5 prdateurs.
3. Tracer sur un mme graphique lvolution du nombre de proies et de prdateurs en fonction
du temps. Sauvegarder ce graphique.
4. Tracer lvolution conjointe du nombre de proie et de prdateurs, cest--dire le nombre de
prdateurs en fonction du nombre de proies. Sauvegarder ce graphique.
Commenter le rsultat obtenu.

Oscillateur harmonique amorti


On sintresse au mouvement dune masse attache un ressort horizontal. La masse, pose
sur un support, est astreinte se dplacer le long dun axe () horizontal.
On note la longueur du ressort et 0 sa longueur lquilibre. On choisit comme origine de
laxe ( = 0) la position de la masse quand le ressort est lquilibre.

Schma dEuler progressif


Les diffrentes actions2 auxquelles la masse est soumise sont :
son poids #
;
#

la force de rappel lastique rappel = ( 0 ) = ;


#

.
des forces de frottements de type fluide en f luide = #
= ;
# # #
# #
la raction du support = + o et correspondent respectivement aux composantes normale et tangentielle. Lorsque la masse glisse, la composante tangentielle (frottements solides) soppose la vitesse de la masse et a pour valeur absolue | | = || o
est un facteur numrique (coefficient de frottement dynamique). Lorsque la vitesse de la
masse est nulle, on supposera que la composante tangentielle est nulle. On a donc
0

= ||
+ ||

On donne :

.
si = 0
.
si > 0
.
si < 0

= 0, 5 kg ; = 500 Nm ; = 10 ms2

Le principe fondamental de la dynamique permet dcrire :


{ ..
.
= +
0 =
do la relation = ainsi que lquation du mouvement :

.
..
+ 20 + 20 = 0 avec

=
0

(pulsation propre)

(7)

(facteur damortissement)

1. Dfinir la fonction T qui prend comme argument le paramtre vitesse et qui renvoie la
valeur de la force de frottement solide (les paramtres , et seront pris comme des
variables globales).
2. crire lquation diffrentielle (7) sous la forme dun systme dquations diffrentielles
du premier ordre de la forme
{ .
{
= 1 (, , )
=
.
avec
.
= 2 (, , )
=
que valent les fonctions 1 et 2 ?
3. Dfinir les fonctions f_1 et f_2 darguments trois flottants t, X et Y.
4. crire une fonction oscillateur_euler qui prend comme arguments :
deux fonctions f et g ;
2 Ces actions sont toutes rductibles des glisseurs et par consquent totalement dtermines par leurs rsultantes
(forces) et un point dapplication.

301.2. Systmes diffrentiels


les conditions initiales X0, Y0 et t0 sous forme de flottants ;
un flottant reprsentant une date t1 finale ;
un entier n reprsentant un nombre de pas ;
et qui renvoie trois listes (temps : liste des dates ; X : liste des valeurs de position ; Y :
liste des valeurs de vitesse) contenant chacune n+1 flottants et telles que X etY soient les
solutions numriques approches par la mthode dEuler du systme diffrentiel dfini par
les fonctions f et g.
5. la date = 0, la masse est lche sans vitesse initiale depuis une position 0 = 20 cm.
Pour chacun des jeux de paramtres (variables globales) suivants :
= 2 SI, = 0 ;
= 0, = 0.4.
reprsenter la position de la masse en fonction du temps ainsi que le portrait de
[ phase (vi]
tesse en fonction de la position). On restreindra ltude lintervalle de temps 0, 1000 .

Вам также может понравиться