Hallo,
ja manchmal sieht man vor lauter Bäumen den Wald nicht mehr: Ein _
zuviel macht große Probleme:
NIntegrate[PWorm[r] /. TestWormRule, {r, 0, lc /. TestWormRule}]
läuft.
Ein leeres Pattern hat im Argument der zu integrienden Funktion nichts
zu suchen!
Peter Klamser
Frank Küster schrieb:
Hallo,
ich habe ein Problem mit Integration in Mathematica; es behauptet, der
Funktionswert sei nicht überall "numerical", aber nur beim Integrieren,
während es den Graphen der Funktion anstandslos zeichnet. Außerdem
stimmt etwas mit dem Ergebnis einer anderen Integration nicht. Im
Anhang kommt ein entsprechendes Notebook, hier eine Erklärung dafür.
Ich suche eine normierte Form der Abstandsverteilung für die sogenannte
"wormlike chain",
p[r_] = \frac{4 \pi N r^2}
{lc^2 (1 - (r/lc)^2)^{9/2}}
*
\Exp[-\frac{3 lc}
{4 lp (1 - (r/lc)^2)}
]
Zu bestimmen ist also der Normierungsfaktor N, der Definitionsbereich
ist von 0 bis lc. Ich habe dazu die Funktion ohne N geschrieben; leider
kann Mathematica sie so nicht integrieren. Daher habe ich eine
Substitution durchgeführt: u == 1 - (r/lc)^2 und für r eingesetzt. Die
resultierende Funktion kann Mathematica allgemein (also ohne Angabe von
lc und lp) von 0 bis 1 integrieren (also von r=lc bis 0), wenn man über
Assumptions angibt, dass lc und lp größer Null sind; das Ergebnis ist
länglich, aber relativ simpel. Soweit so gut, das Ergebnis heisst
NormWorm.
Die erste Überraschung kommt, wenn ich zur Kontrolle
PWorm[r_]=p[r]/NormWorm für konkrete Zahlen (TestWormRule) mit
NIntegrate integriere:
NIntegrate::inum : Integrand ... is not numerical at {r} = {5.1}.
Aber:
In[44]:= PWorm[5.1]/.TestWormRule
Out[44]= 0.466282
Was geht hier vor?
Zum zweiten sieht man am Graphen der Funktion mit bloßem Auge, dass die
Fläche unter der Kurve größer als 1 sein muss (Der Funktionswert ist für
x von 7 bis 9 größer als 1). Also stimmt das mühevoll ermittelte
Integral nicht. Woran liegt das nun wieder?
Vielen Dank im Voraus,
Frank