Lieber Martin,
Eberhard von Kitzing hat mich darauf hingewiesen, dass man FindMinimum
auch mit nur numerisch gegebenen Gradienten benutzen kann. Beispiel:
sunny% math
Mathematica 3.0 for Solaris
Copyright 1988-97 Wolfram Research, Inc.
-- Motif graphics initialized --
In[1]:= f[x_?NumberQ] := (Print["f[", x, "]"]; x^2)
In[2]:= grad[x_?NumberQ] := (Print["grad[", x, "]"]; 2 x)
In[3]:= FindMinimum[f[x], {x, 2}, Gradient -> {grad[x]}]
f[2.]
grad[2.]
f[1.96864]
f[1.94926]
f[1.81358]
f[0.863858]
-15
f[2.66454 10 ]
f[0.]
f[-1.23607]
-15
grad[2.66454 10 ]
f[-0.618034]
grad[-0.618034]
f[-0.0000119994]
grad[-0.0000119994]
-15
f[2.66454 10 ]
f[0.]
grad[0.]
Out[3]= {0., {x -> 0.}}
Das heisst, es gibt neben dem Vorschlag von Udo und dem von mir noch
eine dritte Moeglichkeit, naemlich FindMinimum sowohl den Wert Deiner
Funktion als auch Deiner Jacobimatrix zu uebergeben. FindMinimum be-
nutzt dann die Gradienteninformation (der Aufruf geschieht nur mit
einem Startwert pro Parameter, siehe obiges Beispiel).
Viele Gruesse
Arnd
|