Informatique en CPGE (2015-2016) Corrigé TP 10 : résolution
Objectif : programmer la méthode d'Euler pour résoudre l'équation différentielle y/ On reprend le programme de l'exercice 1. ... from numpy import array.
T.P.
21 févr. 2021 3 Modifications de la méthode d'Euler . ... Les exercices ici proposés sont classés en fonction de leur niveau de dif- ... max de python.
Résolution numérique dune équation différentielle
Exercice 1. On commence par importer les import numpy as np import matplotlib.pyplot as plt ... Enfin la méthode d'Euler implicite est définie par :.
Mathématiques et méthodes numériques (exercices)
Enoncés des séances d'exercices pour les cours LICAR1104 Ecrire un programme python qui calcule u(4) par les méthodes d'Euler explicite d'Euler.
python.pdf
Le langage de programmation utilisé est Python 3.6. Ces exercices Exercice 3.2 : Opérations sur les tableaux . ... Exercice 10.1 : Méthodes d'Euler .
Analyse numérique avec Python
22 mai 2014 Python) quelques algorithmes classiques d'analyse numérique. ... d'Euler qui est la principale méthode de résolution numérique d'équations ...
Informatique TP5 : Initiation aux outils de calcul scientifique CPP 1A
Exercice 1 (NumPy et les fonctions) Que donne le code suivant? Dans la suite on se propose d'étudier la méthode d'Euler qui consiste à approcher la ...
Équations différentielles : Euler vs. Heun vs. RK4 vs. odeint 1
array de numpy pour que les additions se passent comme des additions et non des concaténations de listes). EXERCICE 4 Adapter
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. Runge Kutta d'ordre 4 ... Exercice: L'équation de. Van Der Pol (1924).
M62_CM9 : Révisions Table of Contents
1 avr. 2019 ensuite la tracer avec Python et la comparer à la solution exacte. ... Même exercice avec la méthode d'Euler explicite.
PX1224 - Week9: For Loops If Statements and Euler's Method
misc py euler py output py: Python files 1 1 2 Open the JupyterLab (JL) application on your PC Select/create an appropriate folder where you want JupyterLab to contain your Numerical Analysis code and select/create an appropriate folder for this worksheet (maybe call that folder 'Exercise_1 1'
Explanation to the rst thirty problems from Project Euler
This is a good exercice to master ranges in Python (the last element of the range not being included is an easy concept to forget at rst) First of all we have to copy/paste the number into a Python script and edit it so that it’s considered a prime In my solution I quoted it and made it readible
Searches related to exercice python euler PDF
Python Practice Book Release 2014-08-10 As already mentioned methods are also functions They can be assigned to other variables can be called separately >>> f=x upper >>>print f() HELLO Problem 13: Write a function istrcmp to compare two strings ignoring the case >>> istrcmp('python''Python') True >>> istrcmp('LaTeX''Latex') True
What is Euler's method in Python?
We will make use of Euler's method. It is the most basic method for solving differential equations. For Loops - The basics of for loops in Python (This page talks about lists because, as previously mentioned, arrays are a feature of NumPy rather than Python itself.) If statements - The basics of if statements in Python.
What is the formula for Euler function?
The Euler function is given by the following beautiful formula. Theorem 7.13. ?(m) = m Y pjm (1 1 p )5 Proof: Obviously if pis prime ?(p) = p 1. Moreover there are pn 1numbers between 1 and pndividable by pnamely the numbers 1p;2p;3p;4p;:::;pn 1p.
What are the rules of Project Euler?
According to the rules of Project Euler, it is only allowed to share the solutions to the first 100 exercises in a informative manner online. While I am trying to solve the exercises in ascending order (which mostly resembles ascending difficulty), I will solve some exercises from a later stage without having done some preceding ones.
How to solve a differential equation with explicit Euler formula?
Starting from a given initial value of S 0 = S ( t 0), we can use this formula to integrate the states up to S ( t f); these S ( t) values are then an approximation for the solution of the differential equation. The Explicit Euler formula is the simplest and most intuitive method for solving initial value problems.
Corrigéinformatique commune
Résolution numérique d"une
équation différentielleExercice 1.On commence par importer les différents modules et fonctions dont nous auront besoin :importnumpy as np
importmatplotlib.pyplot as pltfromscipy.integrateimportodeintLa fonctionodeintnous permet d"obtenir une résolution numérique de référence pour l"équation différentielle qui nous
intéresse :deff(x, t): returnnp.sin(t)*np.sin(x) t = np.linspace(0, 50, 256) x = odeint(f, 1, t) plt.plot(t, x) plt.title( solution de x "=sin(t)sin(x)") plt.show()010203040501.01.21.41.61.82.02.22.42.62.8solution de x'=sin(t)sin(x) La méthode d"Eulerse définit ainsi :defeuler(f, x0, t): n =len(t) x = [x0] forkinrange (0, n1): h = t[k+1]t[k] p1 = f(x[k], t[k]) x.append(x[k] + h*p1)returnxmais le résultat est assez décevant, la solution fournie par la méthode s"éloigne irrémédiablement de la vraie solution :
http://info-llg.fr/page 1 x1 = euler(f, 1, t) plt.plot(t, x,"", label="Solutionexacte ") plt.plot(t, x1, label= M thode d "Euler") plt.title( M thode d "Euler") plt.legend(loc="upperleft ") plt.show()010203040501.01.52.02.53.03.5Méthode d'EulerSolution exacte
Méthode d'EulerEn revanche, les méthodes deHeunet RK4s"avèrent bien plus précises :defheun(f, x0, t):
n =len(t) x = [x0] forkinrange (0, n1): h = t[k+1]t[k] p1 = f(x[k], t[k]) p2 = f(x[k] + h*p1, t[k+1]) x.append(x[k] + h*(p1 + p2) / 2) returnxdefrk4(f, x0, t): n =len(t) x = [x0] forkinrange (0, n1): h = t[k+1]t[k] p1 = f(x[k], t[k]) p2 = f(x[k] + h*p1 / 2, t[k] + h / 2) p3 = f(x[k] + h*p2 / 2, t[k] + h / 2) p4 = f(x[k] + h*p3, t[k+1]) x.append(x[k] + h*(p1+2*p2+2*p3+p4) / 6) returnxet fournissent des résultats peu discernables de la solution exacte. Enfin, la méthode d"Eulerimplicite est définie par :fromscipy.optimizeimportnewton defeulerbis(f, x0, t): n =len(t) x = [x0] forkinrange (0, n1): h = t[k+1]t[k] s = newton(lambdau: ux[k]f(u, t[k+1])*h, x[k]) x.append(s)returnxElle fournit un résultat visuellement un peu meilleur que la méthode d"Eulerclassique, mais s"éloigne elle aussi de la
solution exacte : page 2 x4 = eulerbis(f, 1, t) plt.plot(t, x,"", label="Solutionexacte ") plt.plot(t, x4, label= M thode d "Euler") plt.title( M thode d "Eulerimplicite ") plt.legend(loc="best") plt.show()010203040500.51.01.52.02.53.0Méthode d'Euler impliciteSolution exacte
Méthode d'EulerExercice 2.On définit l"erreur de la méthode ainsi :deferreur(methode, n): t = np.linspace(0, 2, n) deff(x, t):returnx x = methode(f, 1, t) m = 0 forkinrange (n): m =max(m,abs(x[k]np.exp(t[k])))returnmLa recherche du rang minimal pour une précision donnée peut être réalisée par une méthode dichotomique, à condition
de posséder une valeurn0qui réalise cette précision (valeur qu"on peut obtenir en tâtonnant). On définit donc la fonction :defrang(methode, epsilon, n0):
iferreur(methode, n0) > epsilon: returnNone a, b = 2, n0 whileba > 1: c = (a + b) // 2 iferreur(methode, c) > epsilon: a = c else: b = c returnbCette fonction fournit les résultats suivants : >>>rang(euler, 1e1, 200) 147>>>rang(euler, 1e2, 2000) 1477
>>>rang(euler, 1e3, 20000)
14777>>>rang(heun, 1e2, 100)
32>>>rang(heun, 1e4, 1000) 315
>>>rang(heun, 1e6, 10000)
3140>>>rang(rk4, 1e4, 100)
13 >>>rang(rk4, 1e8, 200) 120>>>rang(rk4, 1e12, 1500)
1187http://info-llg.fr/page 3
Exercice 3.On obtient la solution numérique de ce système à l"aide du script :defF(X, t): [x, y] = X return[np.cos(t)*xnp.sin(t)*y, np.sin(t)*x + np.cos(t)*y] t = np.linspace(0, 4, 256)X = odeint(F, [1, 0], t)
x, y = X[:, 0], X[:, 1] plt.plot(t, x, label="x") plt.plot(t, y, label="y") plt.legend(loc="best") plt.title("Solutionexacte ") plt.grid() plt.show()0.00.51.01.52.02.53.03.54.01.0 0.50.00.51.01.52.02.53.0Solution exacte
x y La méthode d"Eulervectorielle peut se définir ainsi :defeuler_vect(F, X0, t): n =len(t)X = [X0]
forkinrange (0, n1): h = t[k+1]t[k] p1 = F(X[k], t[k])X.append([X[k][0] + h*p1[0], X[k][1] + h*p1[1]])
returnXet le graphe obtenu est très proche du graphe exact :X1 = euler_vect(F, [1, 0], t)
x1 = [z[0]forzinX1] y1 = [z[1]forzinX1] plt.plot(t, x1, label="x") plt.plot(t, y1, label="y") plt.legend(loc="best") plt.title( M thode d "Eulervectorielle ") plt.grid() plt.show()page 40.00.51.01.52.02.53.03.54.01.0
0.50.00.51.01.52.02.53.0Méthode d'Euler vectorielle
xyOn peut noter une légère différence entre les deux scripts pour définirxety; cette différence est due au fait que dans le
premier script, X est un tableaunumpyqui permet une indexation plus aisée des tableaux bi-dimensionnels.
Exercice 4.
É quationde V ander P ol
Commençons par définir la fonction qui caractérise l"équation différentielle :deff(X, t):
x, dx = X return[dx, mu*(1x*x)*dxx]On obtient ensuite les deux graphes demandés à l"aide du script : t = np.linspace(0, 30, 512) mu = 1 forvin[.001, .01, .1, 1]:X = odeint(f, [0, v], t)
plt.figure(1) plt.plot(t, X[:, 0]) plt.figure(2) plt.plot(X[:, 0], X[:, 1]) plt.figure(1) plt.title("Équationde Van der Pol ") plt.grid() plt.figure(2) plt.title("Diagrammedes phases ") plt.grid() plt.show()http://info-llg.fr/page 50510152025303
2 10123Équation de Van der Pol3
2 1 012332 1
0123Diagramme des phasesOn observent que les solutions convergent vers un régime périodique indépendant (à un déphasage près) des conditions
initiales.Nous allons maintenant constater qu"en jouant sur le paramètre, il est possible d"obtenir des solutions sensiblement non
sinusoïdales :plt.figure(3, figsize=(12,6)) t = np.linspace(0, 50, 512) formuin[1, 5, 10]:X = odeint(f, [2, 0], t)
plt.plot(t, X[:, 0], label="mu= {} ".format(mu)) plt.title("Dépendancedu param ètremu ") plt.legend(loc="lowerleft ") plt.show()010203040503 2 10123Dépendance du paramètre mu
mu = 1 mu = 5mu = 10On peut observer que le phénomène de relaxation est d"autant plus marqué queaugmente.
Par ailleurs, il apparaît que la période dépend du paramètre. Pour calculer celle-ci, on calcule la moyenne des écarts
entre deux maximums consécutifs à l"aide de la fonction : page 6 defperiode(t, x): s = [] forkinrange (1,len(t)1): ifx[k1] < x[k]andx[k+1] < x[k]: s.append(t[k]) p = 0 forkinrange (1,len(s)): p += s[k]s[k1]returnp / (len(s)1)En faisant varierentre 0 et 4 on obtient le graphe des périodes suivant :plt.figure(4)
mus = np.linspace(0, 4, 200) per = [] formuinmus: x = odeint(f, [2, 0], t) per.append(periode(t, x[:, 0])) plt.plot(mus, per) plt.title("Valeurde la p ériodeen fonction de mu ") plt.grid()plt.show()0.00.51.01.52.02.53.03.54.06.06.57.07.58.08.59.09.510.010.5Valeur de la période en fonction de muEnfin, l"excitation de cet oscillateur par un terme harmonique permet d"observer que l"amplitude de l"onde est indépen-
dante de la force extérieure appliquée, avec néanmoins un comportement chaotique.mu = 8.53A = 1.2
omega = .1 defg(X, t): x, dx = X return[dx, mu*(1x*x)*dxx + A*np.sin(2*np.pi*omega*t)] plt.figure(5, figsize=(12,4)) t = np.linspace(0, 200, 500)X = odeint(g, [2, 0], t)
plt.plot(t, X[:, 0]) plt.title("Oscillationsforc ées") plt.grid() plt.show()http://info-llg.fr/page 70501001502003
2 10123Oscillations forcées
page 8quotesdbs_dbs27.pdfusesText_33[PDF] méthode dichotomie python
[PDF] le message andrée chedid résumé détaillé
[PDF] résolution équation différentielle matlab ode45
[PDF] le message andrée chedid genre
[PDF] algorithme méthode d'euler implicite matlab
[PDF] méthode de tir équation différentielle
[PDF] le message andrée chedid quiz
[PDF] le message andrée chedid extrait
[PDF] méthode euler implicite matlab
[PDF] le message andrée chedid texte intégral
[PDF] fonction ode45 matlab
[PDF] memoire de fin detude en telecommunication
[PDF] grille évaluation projet
[PDF] comment bien faire l amour ? son mari pdf