Grundlegende Mathematica Funktionen

2 Teile :

Benutzeroberfläche (Notebook) - Schnittstelle zu Benutzer
Kernel - plattformunabhängiger Prozess für math. Operationen

ausserdem:

Mathlink - Kommunikationsschnittstelle zwischen Benutzeroberfläche und Kernel
Packages - Erweiterungen der Kernel-Funktionen

Variablendefinition

myvar=5

Funktionen

f[x_]=x^2

f[3]

Etwas Vorsicht bei den Definitionen :

f[x]=x+3

f[3]

f[x]

Replacement Rules

<<PhysicalConstants`

kb T

kb T/.kb->BoltzmannConstant

Lists - Everything is a List!

Table[(x^2),{x,0,10}]

ListPlot[%]

Graphen

Plot[Cos[x],{x,0,10}]

Schwarzer Strahler:

Modendichte

Wellenzahlen müssen die Randbedingungen für stehende Wellen in einem Würfel mit Kantenlänge L erfüllen.

kx[n_,L_]:=n π/L
ky[n_,L_]:=n π/L
kz[n_,L_]:=n π/L
absk[nx_,ny_,nz_,L_]:=(Sqrt[((kx[nx,L])^2)+((ky[nx,L])^2)+((kz[nx,L])^2)])

mit ω = c k

ω[nx_,ny_,nz_,L_]:=c absk[nx,ny,nz,L]

ω[1,4,3,L]

Der Betrag des Wellenzahlvektors muss ebenfalls die Randbedingung  |k|=n π / L erfüllen  und Δω ist daher gegeben durch :

deltaω[L_]=c π/L

Moden in einer Kugel mit Radius ω : (1/8)((4/3π (ω^3))/((Δω)^3))

NumberOfModes[ω_]=(1/6)(( (L^3)(ω^3))/((c^3) (π^2)))

Differenzieren wir die Anzahl der Moden nach ω erhalten wir die spektrale Modendichte :

D[NumberOfModes[ω],ω]

Faktor 2, da wir bis dato die 2 moeglichen Polarisationen noch nicht berücksichtigt haben :

SpectralModeDensity[ω_]=2D[NumberOfModes[ω],ω]

Rayleigh - Jeans

Laut dem Gleichverteilungssatz enfällt auf jeden Freiheitsgrad kB T/2 an Energie. Das EM-Feld hat 2 Freiheitsgrade (E - Feld und B - Feld) und wir multiplizieren daher die Modendichte mit kb T

uRayleigh[ω_,T_]=kB T SpectralModeDensity[ω]/(L^3)

Jedoch: hier gibt es ein Problem wenn wir die Energiedichte des gesamten Spektrums berechnen

Integrate[kB T SpectralModeDensity[ω]/(L^3),{ω,0,∞}]

UV - Katastrophe!!

uRayleighJeans[ω_,T_]:=(( (ω^2))/((c^3)(π^2)))kb T

zuvor noch ein paar Konstanten definieren:

speedoflight=SpeedOfLight/Meter*Second
boltzmannconstant=BoltzmannConstant/Joule*Kelvin
planckconstant=PlanckConstant/Joule/Second

uRayleighJeans[(10^15),2.725]/.{kb->boltzmannconstant,c->speedoflight}

Plot[uRayleighJeans[x,2.725]/.{kb->boltzmannconstant,c->speedoflight},{x,0,(10^14)},FrameLabel->{"ω [rad/s]","u(ω) [(Jm^(-3))(rad/s)^(-1)]"},Frame->True,BaseStyle->{FontSize->12}]

Planck

Planck`s Hypothese : Ein Oszillator kann nicht angeregt werden, wenn nicht mindestens die Energie hν zur Verfügung steht (hν ist die minimale energie die ein Oszillator überhalb seines Grundzustandes besitzen kann - Bruchteile davon sind nicht moeglich.). In dem Hohlkörper können somit Wellen mit Frequenzen  grösser als ν nicht angeregt werden, da die thermische Energie der Atome in den Wänden  dafür nicht groß genug ist.

Energie nur als ganzzahlig Vielfaches von ℏ ω erhältlich:

En[n_,ω_]:= n ℏ ω

Die mittlere Energie eines harmonischen Oszillators mit den Energiestufen En= nℏ ω berechnet sich ueber den Boltzmannfaktor als die relative Wahrscheinlichkeit, dass der Oszillator die Energie (Subscript[E, n]) bei der Temperatur T besitzt.

BF[En_,T_]:= Exp[((-En)/(kb T))]

mittlere Energie einer Mode ω : <E> = (∑_n^∞)(Subscript[E, n])p((Subscript[E, n])),  p((Subscript[E, n])) = (e^(-(Subscript[E, n])/(kb T)))/((∑_n^∞)(e^(-En/(kb T))))

Emean[ω_,T_]=((Sum[En[n,ω]BF[En[n,ω],T],{n,0,∞}])/(Sum[BF[En[n,ω],T],{n,0,∞}]))

uPlanck[ω_,T_]=Emean[ω,T]SpectralModeDensity[ω]/(L^3)

Führt das nun zu einem endlichen Ausdruck für die Energiedichte?
Versuchen wir die Integration...

Integrate[ Emean[ω,T]SpectralModeDensity[ω/(2π)]/(L^3),{ω,0,∞}]

Integrate[ Emean[ω,T]SpectralModeDensity[ω]/(L^3),{ω,0,∞},Assumptions->{kb>0,T>0,ℏ>0}]

Die UV - Katastrophe tritt nicht ein!

Plot :

Manipulate[Plot[Evaluate[uPlanck[ω,T]/.{ℏ->planckconstant/(2π),kb->boltzmannconstant,c->speedoflight}],{ω,0,5 (10^12)},FrameLabel->{"ω [rad/s]","u(ω) [(Jm^(-3))(rad/s)^(-1)]"},Frame->True,BaseStyle->{FontSize->12},PlotRange->{0,(10^(-25))},PlotPoints->100],{T,1,10}]

Both Planck and Rayleigh:

Plot[Evaluate[{uPlanck[ω,2.725],uRayleighJeans[ω,2.725]}/.{ℏ->planckconstant/(2π),kb->boltzmannconstant,c->speedoflight}],{ω,0,5 (10^12)},PlotRange->{0,6 (10^(-26))},FrameLabel->{"ω [rad/s]","u(ω) [(Jm^(-3))(rad/s)^(-1)]"},Frame->True,BaseStyle->{FontSize->12}]

Stefan - Boltzmann Strahlungsgesetz :

c /4 Integrate[ Emean[ω,T]SpectralModeDensity[ω]/(L^3),{ω,0,∞},Assumptions->{kb>0,T>0,ℏ>0}]/.{ℏ->PlanckConstant/(2π),kb->BoltzmannConstant,c->SpeedOfLight}

c/4... connection from radiated energy to energy density

StefanConstant

Wiens Displacement Law - (Subscript[λ, max ])T = const.

D[uPlanck[ω,T],ω]

ω/.Solve[D[uPlanck[ω,T],ω]==0,ω]//N

Plot3D[Evaluate[uPlanck[ω,T]/.{ℏ->planckconstant/(2π),kb->boltzmannconstant,c->speedoflight}],{ω,0,10 (10^14)},{T,0,1000},PlotRange->All,MeshStyle->{None,Green},AxesLabel->{"ω [rad/s]","T [K]","u(ω) [J (m^(-3)) (rad/s)^(-1)]"},BaseStyle->{FontSize->12}]

DensityPlot[Evaluate[uPlanck[ω,T]/.{ℏ->planckconstant/(2π),kb->boltzmannconstant,c->speedoflight}],{ω,0,5 (10^14)},{T,100,1000},ColorFunction->"Rainbow",FrameLabel->{"ω [rad/s]","T [K]"},BaseStyle->{FontSize->12}]

COBE MicrowaveBackground - Ein perfekter Schwarzer Körper

<<NonlinearRegression`
<<ErrorBarPlots`

importfile=NotebookDirectory[]<>"firas_monopole_spec_v1_mod.txt";

cobedata=Import[importfile,"Data"];

cobetemperature=cobedata[[All,{1,2}]];
cobetemperatureerr={{#[[1]],#[[2]]},ErrorBar[#[[3]]]}&/@cobedata[[All,{1,2,4}]];
cobeerr=cobedata[[All,4]]/1000;
cobetemperaturelambda={2*π 100speedoflight#[[1]],#[[2]]}&/@cobetemperature;
cobetemperaturelambdaerr={{2*π 100 speedoflight#[[1]],#[[2]]},ErrorBar[100#[[3]]/1000]}&/@cobedata[[All,{1,2,4}]];
datapointplot=ErrorListPlot[cobetemperaturelambdaerr,PlotRange->All,Frame->True,FrameLabel->{"ω [(rads^(-1))]","u(ν) [MJy (st^(-1))]"}]

cmbfit=NonlinearRegress[cobetemperaturelambda,Evaluate[(10^27) A uPlanck[ x ,T]/.{ℏ->planckconstant/(2π),kb->boltzmannconstant,c->speedoflight}],{A,T},{x},Weights->cobeerr]
cmbfitplot=Plot[(10^27) A uPlanck[ x ,T]/.(BestFitParameters/.cmbfit)/.{ℏ->planckconstant/(2π),kb->boltzmannconstant,c->speedoflight},{x,0,5*(10^12)},FrameLabel->{"ω [(rads^(-1))]","u(ν) [MJy (st^(-1))]"},Frame->True];

Show[cmbfitplot,datapointplot]

Literatur and Links :

Hyperlink["Wolfram References","http://reference.wolfram.com/mathematica/guide/Mathematica.html"]

Hyperlink["B.Baltes-Götz: Einführung in Mathematica 5.0 Skript URZ-Trier","http://www.uni-trier.de/urt/user/baltes/docs/mathe/v5/mathe5.pdf"]

Hyperlink["James M. Feagin - Quantum Methods with Mathematica", "http://www.amazon.de/gp/product/0387953655/ref=dp_proddesc_1?ie=UTF8&n=52044011"]