[PDF] [PDF] Résolution numérique déquations différentielles





Previous PDF Next PDF



Résolution numérique déquations différentielles

6 mars 2018 Cela semble indiquer que la méthode d'Euler est une méthode d'ordre 1. ... 3 Et avec Python ? Il faut utiliser la fonction odeint de Python de la ...



Informatique en CPGE (2018-2019) Résolution numérique d Informatique en CPGE (2018-2019) Résolution numérique d

26 mars 2019. S. B.. Présentation en Latex avec Beamer. Page 2. Méthode d'Euler. Exemples. Complément. Les équations différentielles permettent de modéliser 



Résolution numérique déquations différentielles Résolution numérique déquations différentielles

Ou bien définie par morceaux avec de telles fonctions. 2.2 Schéma d'intégration d'Euler explicite. Un schéma d'intégration est une méthode qui calcule 



Méthode dEuler 1er ordre

d'une équation différentielle du 1er ordre de la forme: y (t) = f (t



Informatique en PCSI et MPSI Champollion 2013-2014 Méthodes d

19 févr. 2014 Implémentation de la méthode d'Euler en Python. A. Hassan@Champollion ... Équation différentielle autonome(stationnaire) : f ne dépend pas de t ...



Résolution numérique dune équation différentielle

Elle fournit un résultat visuellement un peu meilleur que la méthode d'Euler classique mais s'éloigne elle aussi de la solution exacte : page 2. Page 3. x4 



Intégration numérique déquations différentielles Intégration numérique déquations différentielles

Intégration numérique d'équations différentielles – p. 6. Page 7. Stabilité. De l'autre côté la méthode d'Euler donne pour l'équation pour la dynamique de.



Physique-chimie

L'étude de la charge d'un condensateur permet de mettre en place une résolution d'équation différentielle fondée sur la méthode d'Euler et de comparer les 



Méthode dEuler vectorielle

Écrire en Python la méthode d'Euler pour t ∈ [05]



Analyse numérique avec Python

22 mai 2014 parlent effectivement d'intégrer une équation différentielle plutôt que ... Programme Python pour la méthode d'Euler à deux fonctions inconnues :.



Résolution numérique déquations différentielles

6 ???. 2018 ?. C'est une équation différentielle d'ordre 1 mais elle n'est pas linéaire. ... Cela semble indiquer que la méthode d'Euler est une méthode ...



Informatique en PCSI et MPSI Champollion 2013-2014 Méthodes d

19 ????. 2014 ?. Résolution des équation différentielles ordinaires (EDO) ... Implémentation de la méthode d'Euler en. Python. Runge Kutta d'ordre 4.



Résolution numérique déquations différentielles

Ou bien définie par morceaux avec de telles fonctions. 2.2 Schéma d'intégration d'Euler explicite. Un schéma d'intégration est une méthode qui calcule 



Analyse numérique avec Python

22 ??? 2014 ?. des équations différentielles) en ne cherchant surtout pas à comprendre les mathématiques ... Programme Python pour la méthode d'Euler :.



Informatique en CPGE (2018-2019) Résolution numérique d

26 mars 2019. S. B.. Présentation en Latex avec Beamer. Page 2. Méthode d'Euler. Exemples. Complément. Les équations différentielles permettent de modéliser 



Résolution numérique dune équation différentielle

équation différentielle. Exercice 1. plt.plot(t x1



Méthode dEuler 1er ordre

Exemple d'équation différentielle non linéaire. Écrire en Python la méthode d'Euler sur [?22]



TP Informatique no 8/9 Équations différentielles

? Adapter la méthode d'Euler pour résoudre une équation du type Z/ = A ? Z. Il s'agit donc d'écrire en Python la fonction euler_ordre2(f y0



Intégration numérique déquations différentielles

Pour ? < 0 la méthode d'Euler est stable seulement pour ?t ?. 2.



Physique-chimie

L'étude de la charge d'un condensateur permet de mettre en place une résolution d'équation différentielle fondée sur la méthode d'Euler et de comparer les 



[PDF] méthode dEuler

26 mar 2019 · Méthode d'Euler Exemples Complément Informatique en CPGE (2018-2019) Résolution numérique d'équations différentielles: méthode d'Euler



[PDF] Résolution numérique déquations différentielles - cpge paradise

L'implémentation de la méthode d'Euler explicite est des plus simple Elle prend trois arguments : la fonction f la valeur y0 de la fonction y à l'instant t0 



[PDF] Résolution numérique déquations différentielles

6 mar 2018 · Elles consistent en général à approximer la solution y en un certain nombre de points répartis sur [t0tf ] 1 La méthode d'Euler 1 1 Le 



[PDF] Méthode dEuler - Étienne Thibierge

Mettre en œuvre la méthode d'Euler explicite afin de résoudre une équation différentielle d'ordre 1 Utiliser la fonction odeint de la bibliothèque scipy



[PDF] Intégration des équations différentielles : méthode dEuler

Intégration des équations différentielles : méthode d'Euler Le système différentiel est défini dans une fonction python de la forme systeme(Yt)



[PDF] Méthode Euler - RTC

Méthode d'Euler On considère une équation différentielle d'ordre 1 avec condition initiale (problème de Cauchy): y' = F(y t) } y(to) = Vo



[PDF] Résolution numérique dune équation différentielle

La fonction odeint nous permet d'obtenir une résolution numérique de référence pour l'équation différentielle qui nous intéresse : def f(x t):



[PDF] Résolution numérique des équations différentielles

Figure 2 – Méthode d'Euler explicite avec n = 4 puis avec n = 10 notablement atténuer la divergence de la solution numérique de la solution analytique



[PDF] Informatique en PCSI et MPSI Champollion 2013-2014 Méthodes d

19 fév 2014 · Champollion 2013-2014 Méthodes d'Analyse Numérique Implémentation et Application en Python Équations différentielles ordinaires



[PDF] Résolution par EULER déquations différentielles dordre 1

Méthode d'EULER - HEUN - RK4 - Résolution numérique d'une équation différentielle d'ordre 1 on fait simplifié écriture dans python : y(tn) ? yn

:
[PDF] Résolution numérique déquations différentielles Résolution numérique d"équations différentielles

6 mars 2018

Considérons l"équation différentielle suivante : ?y?(t) = 5y2(t)-y(t)×(1 +t3) y(0) = 1

C"est une équation différentielle d"ordre 1, mais elle n"est pas linéaire. Nous ne savons pas la

résoudre de manière exacte. Nous allons toutefois pouvoir la résoudre numériquement...

Remarquons déjà que cette équation peut s"écrire sous la formey?(t) =F(y(t),t)avecF:R2→

Rla fonction définie parF(a,b) = 5a2-a(1 +b3).

Plus généralement, étant donnéF:R2→R(ou définie sur une partie deR2), le théorème de

Cauchy-Lipschitz assure que sous des conditions raisonnables, il existe une unique application yde classeC1sur[t0,tf](tf comme "temps final») vérifiant le problème de Cauchy : ?y?(t) =F(y(t),t) y(t0) =y0

Remarque : les ED linéaires d"ordre 1 peuvent bien sûr s"écrire sous la formey?(t) =F(y(t),t).

Donnons quelques exemples :

•y?(t) = (1 +t2)y(t)s"écrity?(t) =F(y(t),t)avecF(a,b) = (1 +b2)a. •y?(t) =y(t)s"écrity?(t) =F(y(t),t)avecF(a,b) =a. L"objet desschémas numériquesest d"obtenir des approximations de ces solutions dont la

théorie donne l"existence mais ne dit pas comment les obtenir. Elles consistent en général à

approximer la solutionyen un certain nombre de points répartis sur[t0,tf].

1 La méthode d"Euler

1.1 Le principe de la méthode

L"idée principale est que "localement la courbe de la fonctionyressemble à sa tangente». Ainsi

sihest proche de0, on a y(t0+h)≂y(t0) +hy?(t0) =y(t0) +hF(y(t0),t0). 1 On peut donc approchery(t0+h)par la quantitéy(t0) +hF(y(t0),t0). On découpe ainsi l"intervalle de temps[t0,tf]ennsegments de même longueurh=tf-t0n (on dit quehest le pas). On dispose ainsi den+1tempstk=a+khpourk? {0,...,n}. On va alors approximer la solutionyà l"instanttkpar le nombreykdéfini par la relation de récurrence : y k+1=yk+hF(yk,tk). On initialise enfin avec la condition initialey0=y(t0). def euler(F, t0,tf,y0, n): """Données:

F(y,t) une fonction

t0,t1 deux réels avec t0 < t1 y0 un réel n un entier

Résultat: le tuple constitué de la liste des temps [t0,...,tn] et la liste des (n+1) réels [y_0, ...y_n]

qui constituent une approximation de la solution y sur [t0,tf] de l"ED y"=F(y,t) avec la condition initiale y(t0) = y0 h = (tf-t0)/n y = y0 t = t0

Y = [y0]

T = [t0]

for k in range(n): # n itérations donc n+1 points y = y + h*F(y,t) t = t + h

Y.append(y)

T.append(t)

return T,Y

La quantitéh=tf-t0n

est appelé le pas. Plus le pas est petit, meilleure sera l"approximation.

Remarque : un autre point de vue équivalent et en lien avec les méthodes numériques d"inté-

gration pourrait être : y(tk+1)-y(tk) =? tk+1 t ky?(u)du=? tk+1 t kF(y(u),u)du≈hF(y(tk),tk).

Cela revient à estimer l"intégraleI=?tk+1tkF(y(u),u)dupar la méthode des rectangles à gauche

sur[tk,tk+1].

1.2 Mise en oeuvre de la méthode d"Euler

Appliquons notre fonctioneuleravec le cas d"écoley?=yety(0) = 1. Nous la résolvons sur [0,1]. 2 def F(y,t): return y y0 = 1 n = 5

T5,Y5 = euler(F,0,1,y0,n)

Nous avons pris ici seulementn= 5.

In [74]: T5

Out[74]: [0, 0.2, 0.4, 0.6000000000000001, 0.8, 1.0]

In [75]: Y5

Out[75]: [1, 1.2, 1.44, 1.728, 2.0736, 2.48832]

La dernière valeur de Y5 auquel on peut accéder parY5[-1]est une approximation deexp(1) = e. Observons l"évolution de l"erreur commise à l"instant1lorsque l"on augmenten: for n in [10,100,1000]:

T,Y = euler(F, 0, 1, y0, n)

erreur = abs(Y[-1] -np.exp(1)) print(erreur) Les valeurs affichées sont0.124539368359,0.0134679990375,0.00135789622315. On observe que sinest multiplié par10, donc le pas divisé par10, l"erreur semble elle aussi divisée par10. Cela semble indiquer que la méthode d"Euler est une méthode d"ordre 1. On peut démontrer que c"est effectivement le cas. Remarque : dans notre cas d"école, on ayk+1=yk+hyk= (1 +h)ykd"oùyn=y0(1 +h)n= (1+h)n. Si l"on découpe[0,1]ennintervalles,h=1n et doncyn= (1+1n )nest une approximation de exp en1, c"est-à-dire du nombre e. On peut effectivement montrer que (1 + 1n )n-e=-e2n+o(1n ce qui corrobore que la méthode est d"ordre 1. Voici les courbes obtenus pour différentes valeurs den.

2 Pour la culture : d"autres méthodes numériques

D"autres méthodes numériques très classiques améliorent la méthode d"Euler mais reposent sur

le même principe : ayant un pas fixéh, on construit encore une suite : ?t k+1=tk+h y k+1=yk+hm où le nombrempeut être assimilé à unepente moyennesur l"intervalle[tk,tk+1]. 3

0.00.51.01.52.02.512345678Méthode d'Euler pour y'=y

n=5 n=10 n=100 Solution exacteFigure1 - Approximation de exp par la méthode d"Euler •pour la méthode du point milieu, on prend pourmla valeur estimé deu?→F(y(u),u) au milieu de[tk,tk+1], c"est-à-dire m=F(yk+h2

F(yk,tk),tk+h2

Remarques :

-cela revient à estimer l"intégraleIci-dessus par la méthode du point milieu sur [tk,tk+1]. -on peut montrer que c"est une méthode d"ordre deux.

•pour la méthode de Heun,mest la moyenne de la dérivée entket de la dérivée entk+1

estimée par Euler, c"est-à-dire : m=F(yk,tk) +F(yk+hF(yk,tk),tk+1)2

Remarques :

-cela revient à estimer l"intégraleIci-dessus par la méthode des trapèzes sur[tk,tk+1]. -on peut montrer que c"est une méthode d"ordre deux. •pour la méthode RK4 dite de "Runge-Kutta d"ordre 4»,mest la moyenne pondérée de quatre pentes. C"est la plus performante des quatre méthodes citées, elle est d"ordre quatre.

3 Et avec Python?

Il faut utiliser la fonctionodeintde Python de la librairiescipy.integrate. 4 from scipy.integrate import odeint import numpy as np import matplotlib.pyplot as plt Ne pas hésiter à regarder la notice de la fonction avechelp(odeint). Elle permet de résoudre des ED du typey?(t) =F(y(t),t)avecy(t0) =y0. Elle prend en argument la fonctionF, la condition initialey0et une liste de temps commençant àt0. Par exemple, pour résoudrey?=ysur[0,1]avecy(0) = 1. On pourra écrire le script suivant : def F(y,t): return y temps = np.linspace(0, 1, 10)

Y = odeint(F, 1, temps)

In [14]:Y

Out[14]:

array([[ 1. ], [ 1.11751906], [ 1.24884886], [ 1.39561243], [ 1.55962349], [ 1.742909 ], [ 1.94773405], [ 2.17663003], [ 2.43242551], [ 2.7182819 ]])

On peut tracer la solution obtenue :

plt.plot(temps,Y) plt.show()

On peut aussi résoudre des systèmes différentiels. Traitons l"exemple suivant, un modèle "proie-

prédateur» oùx(t)(resp.y(t)) représente la quantité de renards (resp. de lapins) à l"instantt.

On prend comme conditions initialesx0= 6ety0= 4et on fait une étude sur une durée de 10 ans. ?x?(t) =x(t)(3-2y(t)) y ?(t) =-y(t)(4-x(t))(E) On "vectorialise» notre ED : on poseX(t) = (x(t),y(t), alors X ?(t) = (x?(t),y?(t)) = (x(t)(3-2y(t)),-y(t)(4-x(t))). Le système linéaire(E)s"écrit donc sous la formeX?(t) =F(X(t),t)avecF:R2×R→R2 définie par :

F((x,y),t) = (x(3-2y),-y(4-x)).

5 def F(X,t): x,y = X[0],X[1] # ou bien x,y = X return (x*(3-2*y),y*(x-4)) temps = np.linspace(0,10, 1000) sol = odeint(F,[6,4], temps) La variablesolest un tableau numpy de 1000 lignes et deux colonnes

In [46]: type(sol)

Out[46]: numpy.ndarray

In [47]: sol.shape

Out[47]: (1000, 2)

La première colonne correspond aux valeurs dex(t)et et la deuxième aux valeurs dey(t). On récupère ces deux colonnes avec du slicing. lapins = sol[ :, 0] renards = sol[ :, 1]

Il n"y a plus qu"à tracer.

# Evolution des populations plt.plot(temps,lapins) plt.plot(temps,renards) plt.show() # Portrait de phase plt.plot(lapins, renards) plt.show()

4 Et pour les ED d"ordre supérieur?

Prenons l"exemple du pendule qui conduit à une équation différentielle d"ordre deux scalaire

(solution à valeurs dansR) : ??=-sinθ.

L"idée est que l"on peut transformer cette ED d"ordre deux, en un système différentiel d"ordre

1 ou une équation différentielle d"ordre 1 vectorielle (à valeurs dansR2). En effet, on pose

X(t) = (θ(t),θ?(t)). AlorsX?(t) = (θ?(t),θ??(t)) = (θ?(t),-sinθ(t)). Ainsi l"ED est équivalente

àX?(t) =F(X(t),t)avec

F((x,y),t) = (y,-sinx).

On résoud l"équation sur[0,6π]et on prend comme conditions initialesθ(0) = 0etθ?(0) = 0.5.

6

0246810024681012Figure2 - population de lapins et renards en fonction du temps0246810120.00.51.01.52.02.53.03.54.04.5

Figure3 - un portrait de phase

4.1 Résolution avec odeint

def F(Y,t): """Données: t un flottant, Y un tableau de deux flottants"

Résulat: un tableau de deux flottants

theta,thetap = Y 7 return np.array([thetap, - np.sin(theta)]) temps = np.linspace(0, 6*np.pi, 100) sol = odeint(F, [0, 0.5], temps) theta , thetap = sol[:, 0], sol[ :, 1] plt.plot(temps, theta) plt.show()051015200.6 0.4 0.2

0.00.20.40.6Figure4 - le pendule non amorti

4.2 Résolution avec la méthode d"Euler

Le codeeulerque l"on a écrit pour les ED scalaires peut être recopié mot pour mot pour une ED vectorielle à condition de comprendre que la ligne de codey = y + h*F(y,t)doit être une combinaison linéaire de vecteurs. Il faut pour cela que la variableysoit un tableau numpy (de typendarray). Siyest une liste par exemple[1,2], alorsy+yne vaut pas[2,4]comme on

pourrait l"espérer mais[1,2,1,2](l"opérateur+l"opérateur de concaténation pour les listes).

En revanche siy = np.array[1,2], les choses se passent comme on le souhaite :

In [29]: y =np.array([1,2])

In [30]: y+y

Out[30]: array([2, 4])

On reprend la résolution de l"ED du pendule avec Euler : y0 = np.array([0, 0.5]) sol = euler(F,0, 6*np.pi,y0,1000) 8 temps, Y = sol[0], sol[1] # attention Y est une liste de array

Y = np.array(Y)

theta, thetap = Y[:, 0], Y[ :, 1] plt.plot(temps, theta) plt.show() 9quotesdbs_dbs29.pdfusesText_35
[PDF] erreur de consistance différences finies

[PDF] résolution numérique des équations différentielles ordinaires exercices corrigés

[PDF] consommation marqueur social

[PDF] les differentes finalités d'une entreprise

[PDF] les finalités de l'entreprise management

[PDF] les finalités de l'entreprise cours

[PDF] les finalités de l'entreprise pdf

[PDF] les finalités de l'entreprise cours ofppt

[PDF] objectif entreprise 2016 complet

[PDF] classement des pays consommateur d'alcool en afrique 2017

[PDF] les pays qui consomment le plus d'alcool en afrique

[PDF] classement des pays consommateur d'alcool en afrique 2016

[PDF] top 10 des pays consommateur d'alcool en afrique

[PDF] le pays le plus grand consommateur de biere en afrique

[PDF] statistiques consommation alcool france 2016