Hallo,
f muss als Funktion einschließlich der Parameter definiert werden, die
übergeben werden sollen (also f[a_] statt f):
ClearAll[f]
f[(a_)?NumericQ] := NIntegrate[Sin[a*x], {x, 0, 1}]
Plot[f[a], {a, 0, 2}]
Das Pattern _?NumericQ wäre nicht unbedingt notwendig, wenn komplizierte
verschachtelte Funktionen numerisch ausgewertet werden sollen, dann ist
es oft hilfreich.
Freundlicher Gruß
Peter Klamser
reinhard schlosser wrote:
Liebe Liste,
nach ausführen der beiden Befehle
f:=NIntegrate[Sin[a x],{x,0,1}]
Plot[f,{a,0,2}]
erhalte ich die Meldung
NIntegrate::inum: Integrand Sin[a x] is not numerical at {x} = {0.5}.
Anschließend erscheint der erwartete Graph.
Obiges Parameterintegral ist nur ein einfaches Beispiel. Das
tatsächlich Parameterintegral hängt von einer handvoll Parameter und
einer handvoll Variablen ab und ich möchte die Parameter der
Übersichtlichkeit halber nicht in die Funktionsklammer schreiben. Also
in obigem Beispiel will ich f[a_]:=NIntegrate[Sin[a x],{x,0,1}]
vermeiden. Soll ich die Meldung inum einfach ignorieren, handelt es
sich um eine essentielle Meldung, gibt es elegante Lösungen? Da eine
Funktionsauswertung des tatsächlichen Integranden ziemlich
zeitaufwendig ist, sollten Ihre Tipps die Berechnungszeit nicht
erhöhen. Schon mal vielen Dank im voraus.