Brillouin Funktion lösen < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Entschuldigung erstmal, wenns zu einfach ist...
Ich habe eine M(T) Kurve eines Ferromagneten von RT bis zur Curie-Temperatur [mm] T_c [/mm] aufgenommen. Ich will nun mit Hilfe von Mathematica meine Daten mit einem Mean Field Modell, eben besagter Brillouin Funktion, vergleichen. Es geht um das Lösen folgender Gleichung, wobei [mm] M_0 [/mm] die Sättigungsmagnetisierung bei T=0K darstellt und J den Drehimpuls
[mm] M/M_0=B_J[(T_c/T)(M/M_0)], [/mm] wobei
[mm] B_J[x]=(2J+1/J)coth[(2J+1/2J)x]-(1/2J)coth[x/2J]
[/mm]
Im Wesentlichen will ich aus der Anpassung an meine Daten [mm] T_c [/mm] und [mm] M_0 [/mm] erhalten. Wie kann man das alles so zusammenfassen, dass man das Lösen der Gleichung für verschiedene [mm] M_0, [/mm] J, und [mm] T_c [/mm] und das Anpassen an die Daten parallelisiert, bzw. automatisiert?
Grüsse und danke im Voraus für reges Interesse,
DrHasenbein
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Hallo DrHasenbein,
> Entschuldigung erstmal, wenns zu einfach ist...
... "wenn's zu einfach ist" ...
soll wohl ein kleiner Witz sein - oder ?
> Ich habe eine M(T) Kurve eines Ferromagneten von RT bis
> zur Curie-Temperatur [mm]T_c[/mm] aufgenommen. Ich will nun mit
> Hilfe von Mathematica meine Daten mit einem Mean Field
> Modell, eben besagter Brillouin Funktion, vergleichen. Es
> geht um das Lösen folgender Gleichung, wobei [mm]M_0[/mm] die
> Sättigungsmagnetisierung bei T=0K darstellt und J den
> Drehimpuls
>
> [mm]M/M_0=B_J[(T_c/T)(M/M_0)],[/mm] wobei
> [mm]B_J[x]=(2J+1/J)coth[(2J+1/2J)x]-(1/2J)coth[x/2J][/mm]
Ich denke, dass du die Formel falsch wiedergegeben hast.
In Wikipedia steht:
Brillouin-Formel
> Im Wesentlichen will ich aus der Anpassung an meine Daten
> [mm]T_c[/mm] und [mm]M_0[/mm] erhalten. Wie kann man das alles so
> zusammenfassen, dass man das Lösen der Gleichung für
> verschiedene [mm]M_0,[/mm] J, und [mm]T_c[/mm] und das Anpassen an die Daten
> parallelisiert, bzw. automatisiert?
>
> Grüsse und danke im Voraus für reges Interesse,
> DrHasenbein
Wir haben also eine ziemlich komplexe Formel.
Was ist ferner gegeben und was ist gesucht, also:
Welche Größen sind als Konstanten vorgegeben ?
Ich nehme an, dass du eine Liste von Wertepaaren
[mm] (T_k,M_k) [/mm] mit k=1,2,...n hast, oder ?
Gesucht sind optimal passende Werte für [mm] T_C [/mm] und [mm] M_0 [/mm] .
Soll die Anpassung nach der Methode der kleinsten
Quadrate erfolgen, oder wie ?
LG Al-Chw.
|
|
|
|
|
Hi Al-Chwarizmi
Ja, die Vorfaktoren waren wohl falsch, sollte so sein
((2J+1)/2J)coth[((2J+1)/2)x]-(1/2J)coth[x/2]
Ich habe Wertepaare [mm] (M_i,T_i) [/mm] und möchte mit einem least squares Verfahren [mm] T_c [/mm] und [mm] M_0 [/mm] finden. J ist ein fester Parameter, der 1/2, 1, 3/2... etc. sein kann. Der sollte bei jedem fit fest sein.
Grüsse,
DrHasenbein
|
|
|
|
|
> Hi Al-Chwarizmi
>
> Ja, die Vorfaktoren waren wohl falsch, sollte so sein
> ((2J+1)/2J)coth[((2J+1)/2)x]-(1/2J)coth[x/2]
Schreiben wir doch die Formel noch ganz richtig:
$\ [mm] B_J[x]\ [/mm] =\ [mm] \frac{2\,J+1}{2\,J}*coth\left[\frac{2\,J+1}{2\,J}\,\,x\right]-\frac{1}{2\,J}*coth\left[\frac{1}{2\,J}\,\,x\right]$ [/mm]
> Ich habe Wertepaare [mm](M_i,T_i)[/mm] und möchte mit einem least
> squares Verfahren [mm]T_c[/mm] und [mm]M_0[/mm] finden. J ist ein fester
> Parameter, der 1/2, 1, 3/2... etc. sein kann. Der sollte
> bei jedem Fit fest sein.
>
> Grüsse,
> DrHasenbein
Danke für die Erklärungen.
Ich werde mir das Ganze jetzt nochmal anschauen und
setze dabei [mm] a:=\frac{1}{2\,J} [/mm] und $\ b:=1+a$ .
Damit wird die Untersuchung übersichtlicher.
Wir haben dann für [mm] B_J [/mm] die Gleichung:
$\ [mm] B_J[x]\ [/mm] =\ [mm] b*coth\left[b\,\,x\right]-a*coth\left[a\,\,x\right]$
[/mm]
LG Al-Chw.
|
|
|
|
|
Hallo,
was man da mit Mathematica (z.B. mittels NonLinearFit)
noch so anstellen kann, weiß ich leider nicht.
Hier meine weiteren Überlegungen:
wenn man noch eine Hilfsgröße Q einführt mit [mm] Q:=\frac{M}{T}
[/mm]
und damit auch die Datenwerte [mm] Q_i=\frac{M_i}{T_i} [/mm] berechnet und
[mm] Q_0:=\frac{M_0}{T_C} [/mm] setzt, kommt man auf die einfache Gleichung:
$\ M\ =\ [mm] M_0*B_J\left[\frac{Q}{Q_0}\right]$
[/mm]
Wenn man nun in der Q-M-Ebene die Datenpunkte $\ [mm] (Q_i\ [/mm] |\ [mm] M_i)$
[/mm]
sowie die Standard-Brillouin-Funktion [mm] B_J(Q) [/mm] einzeichnet,
kann man die Werte von [mm] Q_0 [/mm] und [mm] M_0 [/mm] bestimmen als die
Streckfaktoren in horizontaler und vertikaler Richtung,
die nötig sind, um die Kurve an die Datenpunkte anzupassen.
Aus den so durch graphische Anpassung bestimmten Werten
für [mm] Q_0 [/mm] und [mm] M_0 [/mm] lässt sich dann auch [mm] T_C=\frac{M_0}{Q_0} [/mm] berechnen.
LG Al-Chw.
|
|
|
|
|
Eine Lektüre der Hilfe zu der Funktion "NonlinearModelFit" könnte sich lohnen
|
|
|
|
|
Ja, diese Funktion ist natürlich super und ich kannte sie auch schon,
leider muss ich aber zunächst für jeden Punkt eine implizite Gleichung lösen und das vorläufige Ergebnis fitten u.s.w. Ich kann also nicht einfach sowas Simples wie z.B.
NonlinearModelFit[data, exp[a + b x], {a, b}, x]
anwenden. Das wäre ja zu einfach ;)...
|
|
|
|
|
Hallo noch mal,
Ich werd meine Frage auch noch mal woanders posten.
Grüsse,
DrHasenbein
|
|
|
|