repl.it
@fduffaud/

Fonction-Exponentielle-Introduction

Python

No description

fork
loading
Files
  • main.py
  • graph.png
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# basée sur la méthode d'Euler
# On utilise l'approximation, pour h petit f(a+h) \approx hf'(a)+f(a)
# Mais puisque ici f'=f et f(0)=f'(0)=1 on obtient :
# f(a+h) \approx hf(a)+f(a)
# f(a+h) \approx (1+h) f(a)

from matplotlib import pyplot as plt
from math import exp
from numpy import linspace



# [a ; b ] intervalle de départ
debut=0 
fin=2 

# Pour tracer la courbe de x--> exp(x)
X = linspace(debut, fin, 100) # une liste de 100 valeurs entre debut et fin
Yexp=[exp(x) for x in X]

x = [0]  #liste des abscisses on part de a=0
y = [1]  #liste des ordonnées avec f'(0)=f(0)=1
plt.clf()
for n in range(1, 10):  # On fait varier le nombre d'interpolations
    for k in range(n):
        h = (fin-debut) / n  # c'est le pas
        a = x[k] + h
        x.append(a)
        b = (1 + h) * y[k]  # f(a+h) approx (1+h) f(a)
        y.append(b)

    # Affichage des points dans le repère
    fig = plt.figure(figsize=(10, 8))
    plt.clf()
    plt.title(f"Méthode d'Euler. Pour n= {n}, un pas de h={round(h,2)},  sur l'intervalle  [{debut} ; {fin}] ")
    plt.plot(x, y, marker='o', linestyle='-', label="approximation d'Euler")
    plt.plot(X, Yexp,color="red", linewidth=3,label="x --> exp(x)")
    plt.legend()
    fig.savefig('graph.png')
    plt.show()
    print('Pour n= ', n)
    input()
    x = [0]  # on reinitialise la liste des abscisses
    y = [1]  # on reinitialise la liste des ordonnées

# Comparaison finale


Fetching token
?