Hallo,
die Begründung war, das Mathematica das Argument
von FindMinimum[]
irrtümlich auswertet.
Im Prinzip ist das Auswerten eine gute Sache, weil
Mathematica
dann symbolische Eingaben vereinfachen kann. Z. B.
symbolische
Gradienten berechnen, statt numerischer
Gradienten.
Bei einem nur numerisch berechneten Argument ist
das diese
Vorverarbeitung nicht möglich und es sollte eine
Option geben
die das unterbindet -- gibt es aber nicht.
Folglich muß man
eine Funktion mit dem Pattern f[u_?NumericQ]
definieren
und wem das nicht gefällt, der soll die Warnung
abschalten wie
Peter Klamser vorgeschlagen hat
Gruß
Jens
----- Original Message -----
From: "Thomas Hahn" <hahn@XXXXXXX.de>
To: "klamser" <klamser@XXXXXXX.de>
Cc: "Nowak Robert" <robert.nowak@XXXXXXX.at>;
<demug@XXXXXXX.ch>
Sent: Tuesday, September 06, 2005 9:42 AM
Subject: Re: is not numerical
| Hallo,
|
| > >wie kann ich die fehlermeldungen die trotz
korrektem ergebnis auftreten loswerden, ohne die
obige unhübsche lösung zu strapazieren ? müsste
doch mit Hold / RelaesHold oder so gehen oder ?
| > >
| > >
| > >In[3]:=
| > >FindMinimum[NIntegrate[Sin[x + u], {x, 1,
2}], {u, 0}]
| > >
| > >Out[3]:=
| > >NIntegrate::inum : Integrand Sin[u+x] is not
numerical at {x} = {1.5`}. NIntegrate::inum :
Integrand Sin[u+x] is not numerical at {x} =
{1.5`}. NIntegrate::inum : Integrand Sin[u+x] is
not numerical at {x} = {1.5`}.
{-0.958851077208406, {u -> -3.0707963268148295}}
|
| die Diskussion hatten wir schonmal auf der
Liste.
| Ich kann mich gerade nicht mehr an die
Begründung erinnern,
| aber die vorschlagene Lösung war:
|
| f[u_?NumberQ] := NIntegrate[Sin[x + u], {x, 1,
2}]
|
| FindMinimum[f[u], {u, 0}]
|
|
| Grüße,
|
| Thomas
|
|