diff --git a/ISC_421_Controle_4_Saroukhanian_Iliya.py b/ISC_421_Controle_4_Saroukhanian_Iliya.py
index 10917343bed6abe857e85f49b762f2408fcd9143..ded5ac46edecc324d271fb75ae25126fcfd0097a 100644
--- a/ISC_421_Controle_4_Saroukhanian_Iliya.py
+++ b/ISC_421_Controle_4_Saroukhanian_Iliya.py
@@ -2,6 +2,7 @@ import numpy as np
 import math
 from matplotlib import pyplot as plt
 from scipy.interpolate import lagrange
+from numpy.polynomial.polynomial import Polynomial
 
 
 #############################################################################
@@ -152,7 +153,7 @@ print(f"valeur de la fonction en a et b:  {SD.f(SD.a), SD.f(SD.b)}")
 #### Exercices #####
 ###########################################################################
 
-def ex2():
+def ex2_taylor_poly():
     t = np.linspace(SD.a, SD.b, Nmbre_pts)
     y0 = compute_taylor_series(
         t, SD.Taylor_points[0], SD.Taylor_derivatives_values[SD.Taylor_points[0]])
@@ -203,7 +204,47 @@ def ex2():
     plt.show()
 
 
-ex2()
+def ex3_interpolation_poly():
+    nb_points = np.linspace(3, 19, 6, dtype=np.uint64)
+    fig, axes = plt.subplots(2, 3, figsize=(20, 12))
+
+    for i, ax in enumerate(axes.flat):
+        chebyshev_points = np.cos(
+            (2 * np.arange(nb_points[i]) + 1) / (2 * nb_points[i]) * np.pi)
+
+        chebyshev_points_mapped = 0.5 * \
+            (SD.b - SD.a) * (chebyshev_points + 1) + SD.a
+
+        interpolate_pts = np.linspace(SD.a, SD.b, nb_points[i])
+
+        l_poly_uniform = lagrange(interpolate_pts, SD.f(interpolate_pts))
+        l_poly_chebyshev_pts = lagrange(
+            chebyshev_points_mapped, SD.f(chebyshev_points_mapped))
+
+        t = np.linspace(SD.a, SD.b, Nmbre_pts)
+
+        ax.plot(t, SD.f(t), color='black', label='f')
+        ax.plot(t, l_poly_uniform(t), color='red',
+                label='$L_{f}$, intervalle équidistants')
+        ax.plot(t, l_poly_chebyshev_pts(t), color='blue',
+                label='$L_{f}$, points de Chebyshev')
+        ax.plot(interpolate_pts, SD.f(interpolate_pts), 'o', color='red',
+                label='Points équidistants')
+        ax.plot(chebyshev_points_mapped[::-1],
+                SD.f(chebyshev_points_mapped[::-1]), 'o', color='blue',
+                label='Points de Chebyshev')
+        ax.set_title(f'n = {nb_points[i]}')
+        ax.set_ylim([-1.2, 1.2])
+
+        ax.legend()
+
+    fig.suptitle(f'Polynôme d\'interpolation de Lagrange de $f$ avec 2 subdivisions différentes d\'intervalle: Équidistantes (rouge) / Points de Chebyshev (bleu)')
+
+    fig.tight_layout()
+    plt.show()
+
+
+ex3_interpolation_poly()
 
 # Graphique des polynômes de Taylor
 # fig, axes = plt.subplots(1, 3)
diff --git a/figs/interpolate_lagrange_uniform.png b/figs/interpolate_lagrange_uniform.png
new file mode 100644
index 0000000000000000000000000000000000000000..a56e963044fb19c1c9e68c074b47437e5ca933b7
Binary files /dev/null and b/figs/interpolate_lagrange_uniform.png differ
diff --git a/figs/lagrange_interpolate.png b/figs/lagrange_interpolate.png
new file mode 100644
index 0000000000000000000000000000000000000000..736355ef8e45a60defbec054861478beaa7fc832
Binary files /dev/null and b/figs/lagrange_interpolate.png differ