Matlab
>> c=[215.384615 238.461538 253.846154 276.923077 300 315.384615 330.769231 346.153846 361.538462 369.230769 384.615385 392.307692 403.846154 407.692308 423.076923 430.769231 438.461538 446.153846 453.846154 461.538462 469.230769 476.923077 484.615385 492.307692 496.153846 500 503.846154 507.692308 511.538462 511.538462 511.538462 511.538462 511.538462 511.538462 511.538462 511.538462 511.538462];
>> s=[0.2 0.34883721 0.46511628 0.69767442 0.93023256 1.1627907 1.39534884 1.62790698 1.86046512 2.09302326 2.3255814 2.55813953 2.79069767 3.02325581 3.48837209 3.72093023 4.18604651 4.41860465 4.88372093 5.34883721 5.81395349 6.51162791 7.44186047 8.37209302 9.06976744 9.53488372 10.4651163 11.627907 11.744186 12.5581395 13.255814 13.9534884 14.6511628 14.8837209 15.5813953 16.2790698 16.9767442];
>> [x,y] = meshgrid(160:10:400,0.1:0.01:0.5);
>> n=length(c);
>> z=0;
>> go = [1,1]'; % initialisation du vecteur du gradient avec une matrice vide
>> for l=1:n z=z+(c(l)-x.*(s(l).^y)).^2; end
>> for l=1:n g1=2*x.*(s(l).^(2*y))-2*(c(l)*(s(l).^y));%dérivée par rapport à x g2=-2*x.*log(s(l)).*(s(l).^y).*(c(l)-x.*(s(l).^y));%dérivée par rapport à y g=[g1,g2]; end
>> figure(1)
>> surf(x,y,z)
>> shading interp
>> title('Courbe f(x,y) =Somme(c(l)-x.*(s(l).^y)).^2 en trois dimensions')
>> figure(2)
>> contour(x,y,z,50)
>> title('Courbes isovaleur de la fonction f(x,y)=Somme(c(l)-x.*(s(l).^y)).^2')
>> hold on
>> clear x;
>> % Choix du point de départ de la méthode
>> [x(1),x(2)]=ginput(1); % x(1) = x0 et x(2) = y0
>> plot(x(1),x(2),'+r')
>> x=x'; % transformation en vecteur
>> i = 1;
>> while sqrt(go(1)^2 + go(2)^2) > 0.0001 % Norme du gradient > 0.0001
% Evaluation de la fonction et de son gradient par le biais de fonctions dédiées if i == 1 % si premier passage g=g'; % On met la valeur du gradient sous forme d'un vecteur p = 1; d = 0*g; else p = g'*g/(go'*go); % Critère de descente de