problème dans mon code méthode des descentes
Bonjour, :)
J'ai une fonction main4 qui appelle la fonction descente1 dans le but de coder la méthode des descentes. Problème: le résultat est NaN...
J'ai l'impression que le code ne rentre pas dans la fonction descente1...
Pourriez-vous m'indiquez pourquoi svp?
Ci-dessous le code de main4:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| clear all % efface tout en mémoire
close all %ferme fenêtres graphiques
clc %efface console
format long
tstart = tic; %start du temps
x0=[2.2;2.2];
eps=1e-6;
[X,nb,XX]=descente1(x0,eps)
plot(XX(1,:),XX(2,:), 'o-')
telapsed = toc(tstart) %stop du temps |
et celui de descente1:
Code:
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
| function [X,nb,XX]=descente1(X0,eps)
%méthode de Newton
X=X0;
XT=X0;
XX=[X];
nb=0;
err=1;
maxiter = 200
%choix du pas
alpha=0.1
while (err>eps && nb<maxiter)
%direction de descente -gradient
d=-df(X);
%calcul de x(k+1)
X=X+alpha*d;
%calcul de l'erreur
err=norm(X-XT);
%iteration
XT=X;
%compte nb iteration
nb=nb+1;
%complète la matrice
XX=[XX,X];
end |
Merci d'avance! :ccool: