%% syntaxe : a b epsilon {f} dich_solve
%% en supposant * le produit f (a) * f (b) < 0
%% * epsilon pas trop petit (>= 10^(-6) ?)
%% renvoie x E [a; b] tel que le produit f (x + epsilon) * f (x - epsilon) < 0
/dich_solve {
5 dict begin
/f exch def
/epsilon exch def
/b exch def
/a exch def
/x 0 def
{
/x a b add 2 div store
a b sub abs epsilon le
{x exit}
if
x f exec b f exec mul 0 le
{/a x store}
{/b x store}
ifelse
} loop
end
} def
|