Bonsoir,
je suis entrain faire un programme sur matlab pour trouver le minimum d'un fonction
voici le programme que j'ai fais il m'affiche comme erreur
[x,y,k] = dicho(1e-50,1000,2,1)
??? Reference to a cleared variable a0.
Error in ==> dicho at 7
a(1)=a0;
fichier func.m
1 2 3
| function [ f ] = func( x )
f = x-1-log(x);
end |
fichier dicho.m
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| function [ a,b,k ] = dicho(a0,b0,tolerance,epsilon)
clear all;
% initialisation
k=1;
a(1)=a0;
b(1)=b0;
%Calcule de milieu du domiane x(k)
while abs(b(k)-a(k))>tolerance
x(k) = 0.5*(a(k) + b(k));
c(k) = x(k) - (epsilon/2);
d(k) = x(k) + (epsilon/2);
if func(c(k)) <= func(d(k))
% on prends la partie droite
a(k+1) = a(k);
b(k+1) = b(k);
else
% on prends la partie gauche
a(k+1) = c(k);
b(k+1) = b(k);
end
k=k+1;
end
k
a(k)
b(k)
end |
Merci en avance
Cordialement,
Justin
Partager