Hallo,
das mit dem Pattern _?NumericQ ist zwar ein erprobter Weg, hat aber auch
seine Haken, wie
Plot[Table[fn[u*g], {g, 1, 2}], {u, 1, 2}]
zeigt.
Plot[Evaluate[Table[fn[u*g], {g, 1, 2}]], {u, 1, 2}]
hilft zwar weiter, aber wieder mit den selben Fehlermeldungen
........... :-(
Man kann zwar das Tabel-Konstrukt vorziehen:
pf = Table[Plot[fn[u*g], {u, 1, 2}, DisplayFunction -> Identity], {g, 1, 2}]
Show[pf, DisplayFunction -> $DisplayFunction]
Das Beispiel soll nur zeigen, dass das _?NumericQ Pattern ein gangbarer
Weg ist, der aber auch seine Haken haben kann, wenn dazwischen ein
Schritt liegt, wo das _?NumericQ Pattern nicht passt...
Gruß
Peter
Jens-Peer Kuska wrote:
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
|
|