diff --git a/Optimisation/TP/TP3-diff-finies/main_diff_finies_cosinus.m b/Optimisation/TP/TP3-diff-finies/main_diff_finies_cosinus.m
index 294112c47ad15fb150a2d2888ebfeabfdef91ac2..0f7ac088fdd7e738ce3ef5d8e34a5cf4247b1268 100755
--- a/Optimisation/TP/TP3-diff-finies/main_diff_finies_cosinus.m
+++ b/Optimisation/TP/TP3-diff-finies/main_diff_finies_cosinus.m
@@ -2,8 +2,9 @@
 % Date   : décembre 2017
 %
 % Test de l'algorithme de différences finies avant sur la fonction cosinus
-% fun1(x) = cos(x)
-% fun2(x) = cos(x) + alpha*rand(1)
+% fun1(x) = -cos(x)
+% fun2(x) = -cos(x) + alpha*rand(1)
+% fun3x)( = [cos(x(1)*x(2)) ; x(1)^2 ; x(1)*x(2)];
 % Avec 2 points différents
 %
 
@@ -38,11 +39,13 @@ disp('Test de l''algorithme de différences finies  sur la fonction cosinus');
 fun1 = @(x) -cos(x);
 fun2 = @(x) -cos(x) + 1.e-8*rand(1);
 true_jac = @(x)  sin(x);
+fun3 = @(x) [cos(x(1)*x(2)) ; x(1)^2 ; x(1)*x(2)];
+Jac_fun3 = @(x) [-sin(x(1)*x(2))*x(2) -sin(x(1)*x(2))*x(1) ; 2*x(1) 0 ; x(2) x(1)];
 
 % Variables pour le choix de la methode de difference finie
 list_diff_finies = {'avants','centrees','complexes'};
 %%%%% MODIFIER LE NUMERO APRES AVOIR CODE LA FONCTION ASSOCIEE %%%%%%%%%%%
-methode_finite_diff = list_diff_finies{1};
+methode_finite_diff = list_diff_finies{3};
 
 % Calcul de l'erreur sur la fonction dans le cas bruité et non bruité
 omega_true_fun = eps((1));
@@ -72,8 +75,11 @@ x0 = pi/3;
 x1 = 1.e6*pi/3;
 
 % Ordres pour faire les tests (16 + celui de h*)
-ordrestrue = ([1:floor(-log10(h_star_true_fun)), -log10(h_star_true_fun), ceil(-log10(h_star_true_fun)):16]);
-ordresper = ([1:floor(-log10(h_star_per_fun)), -log10(h_star_per_fun), ceil(-log10(h_star_per_fun)):16]);
+ordrestrue = linspace(1,16,10000);
+ordresper = ordrestrue;
+% 
+% ordrestrue = ([1:floor(-log10(h_star_true_fun)), -log10(h_star_true_fun), ceil(-log10(h_star_true_fun)):16]);
+% ordresper = ([1:floor(-log10(h_star_per_fun)), -log10(h_star_per_fun), ceil(-log10(h_star_per_fun)):16]);
 % Initialisation des vecteurs d'erreur
 
 err_x0 = zeros(1,length(ordrestrue)); 
@@ -115,7 +121,21 @@ affichage_erreur(ordrestrue, err_x1, h_star_true_fun, 'x1',   methode_finite_dif
 affichage_erreur(ordresper, err_x0p, h_star_per_fun, 'x0p', methode_finite_diff, LW);
     
 
-
+% Comparaison des matrice jacobiennes cas fun3
+x0 = [1 ; 2];
+disp("------------------------------------------------------------------")
+disp("Test de la matrice jacobienne sur un cas de R^n à valeurs dans R^m")
+disp("------------------------------------------------------------------")
+disp("diff_finies(fun3,x0,omega) - Jac_fun3(x0) = ")
+switch methode_finite_diff
+	case 'avants'
+        omega = sqrt(eps);
+    case 'centrees'
+        omega = eps^(1/3.);
+    otherwise
+        omega = eps;
+end
+diff_finies(fun3,x0,omega) - Jac_fun3(x0)
 
 
 
@@ -170,7 +190,7 @@ function Jac = forwardfiniteDiff(fun,x,h)
 % Jac : Matrice jacobienne approximé par les différences finies
 %        real(m,n)
 % ------------------------------------
-Jac = 0;
+Jac = zeros(length(fun(x)),length(x));
 end
 
 function Jac = centredfiniteDiff(fun, x, h)
@@ -186,7 +206,7 @@ function Jac = centredfiniteDiff(fun, x, h)
 % Jac : Matrice jacobienne approximé par les différences finies
 %        real(m,n)
 % ------------------------------------
-Jac = 0;
+Jac = zeros(length(fun(x)),length(x));
 end
 
 function Jac = derivee_complexe(fun, x,h)
@@ -203,7 +223,7 @@ function Jac = derivee_complexe(fun, x,h)
 % Jac : Matrice jacobienne approximé par les différences finies
 %        real(m,n)
 % ------------------------------------
-Jac = 0;
+Jac = zeros(length(fun(x)),length(x));
 end