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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!