DMUG-Archiv 2005

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: is not numerical

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
|
|







Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html