wirf4_10.mws

Moderne Physik mit Maple

PDF-Buch Moderne Physik mit Maple

Update auf Maple 10

Kapitel 4.1.3

Worksheet wirf4_10.mws

c International Thomson Publishing Bonn           1995                  filename: wirf4.ms

Autor: Komma                                                                             Datum: 28.3.94

Thema: Möglichkeit und Kausalität, Vergleich von gedachten und wirklichen Bahnen.

Approximation durch stückweise gleichförmige Bewegung. Dazu wird die "Bahn" x(t) in gleiche Zeitschritte dt unterteilt und die zugehörige "mittlere Wirkung" nach den xi-Werten variiert.                 

Standard-Beispiele: gleichmäßig beschleunigte Bewegung und harmonische Schwingung.

Möglichkeit und Kausalität, Vergleich von gedachten und wirklichen Bahnen.

Näherungsweise Berechnung der Orts-Zeit-Funktion x(t) zu vorgegebenem Potential mit Hilfe des Wirkungsprinzips. Der Bewegungsablauf (von (0|0) nach (x1|t1)) wird in n Zeitschritte der Dauer dt=t1/n unterteilt, und in diesen Zeitschritten als gleichförmig angenommen. Daraus ergibt sich ein Gleichungssystem für die Koordinaten x[i] zu den Zeiten t[i]: die Summe der Wirkungen längs der Teilstrecken muß minimal sein, d.h. die Ableitungen der "Lagrangefunktion" nach den Teilpunkten der Strecke müssen verschwinden. Der Grenzübergang dt->0 bzw. n->oo muß dann die "wirkliche Bahn" liefern. Zum Vergleich mit dem kausalen Denken wird die "exakte Lösung" der Newtonschen Bewegungsgleichung zur Verfügung gestellt.

Sie Finden in diesem Worksheet eine Reihe von Optionen:

1.) Zwei Bewegungstypen: a) gleichmäßig beschleunigte Bewegung und b) harmonische Schwingung. (Weitere Bewegungstypen können Sie durch eine entsprechende Änderung des Potentials hinzufügen.)

2.) Die zugehörigen "physikalischen Parameter" wie Masse, Fallbeschleunigung und Federkonstante. (phys. Parameter-loop)

3.) Die Güte der Approximation (n-loop).

>    restart; with(plots):

"Gemittelte" Lagrangefunktion, d.h. sum((Ti-Vi)dt,i=1..n) od. "mittlere Wirkung":

>    Lq:=Tq-Vq(); # Vq() wird als proc formuliert, damit die  Änderungen aller Parameter weitergereicht werden

Lq := Tq-Vq()

Löschprozeduren

>    clear:= proc(x) local p;

>    for p to n do

>    x[p]:=evaln(x[p]); od; end;

clear := proc (x) local p; for p to n do x[p] := evaln(x[p]) end do end proc

>   

"mittlere kinetische Wirkung". In Release 3 mit Indizes

>    n:='n': dt:='dt':

>    Tq:=m/(2*dt)*sum((x[j]-x[j+1])^2,j=0..n-1);

Tq := 1/2*m/dt*sum((x[j]-x[j+1])^2,j = 0 .. n-1)

>   

Potentialtyp (zum Umschalten, vorher zurück zu restart)

>    V:=proc(x)

1/2*k*x^2;

>    m*g*x;

>    end;

V := proc (x) m*g*x end proc

>    g:=10: # nur fuer glm. beschl. Bew.

>    #V(x);Vq();

"mittlere potentielle Wirkung"

>    if assigned(n) then clear(x) fi;

>    n:='n': dt:='dt':

>    #x[4];

>    Vq:=proc() dt*sum(V(x[j]),j=0..n-1);

>    end;

Vq := proc () dt*sum(V(x[j]),j = 0 .. n-1) end proc

>   

Kontrolle der "Lagrange-Funktion"

>    Lq;

1/2*m/dt*sum((x[j]-x[j+1])^2,j = 0 .. n-1)-dt*sum(10*m*x[j],j = 0 .. n-1)

********* n-loop ********

>    n:=10; t1:='t1': j:='j': k:='k':g:='g':m:='m':

n := 10

>    clear(x);

x[10]

>    dt:=t1/n;

dt := 1/10*t1

>    #Lq;

Aufstellen des Gleichungssystems (bis zu quadratischem Potential ist es linear):

(ggf. Formulierung mit Matrizen, EW ... es ist eine Matrix mit 2 i.d. Diagonale und -1 daneben, o.ä.)

>    kk:='kk': sys:=seq(diff(Lq,x[kk])=0,kk=1..n-1):

Lösung des LGS (dauert für n=53 etwas länger als für n=35 ...):

>    sol:=solve({sys},{seq(x[j],j=1..n-1)}):

>    #sol;

Übertragen der Lösung auf die x[i]

>    assign(sol);

>    #x[2];

*********** phys. Parameter-loop ***********

Parameter und Plot der Approximation

>    m:=1/5: g:=2.5: k:=1/2: # m,g  und k duerfen nicht float sein,

>    #sonst Fehlermeldung von soly (s.u.), bzw. dsolve indirekt?
# In R5 und R6 wieder floats erlaubt

>    t1:=5: #fuer grosse t1 problematisch

>    dt:=t1/n:

>    x[0]:=0: x[n]:=3:

Aufbau eines arrays für den Plot

>    #pkte:=array(1..n): # kann entfallen: implizite Deklaration in pkte[i]:=...

>    for i to n do

>    pkte[i]:=x[i] :

>    od:

>    #pkte();

Darstellung

>    plota:=plot([[0,0],seq([i*dt,pkte[i]],i=1..n-1),[n*dt,x[n]]]):

>    plota;

[Maple Plot]

Ausgabe der Zahlen zum Vergleich mit der exakten Lösung

>    j:='j':

>    ITq:=evalf(Tq); IVq:=evalf(Vq()); Sq:=evalf(Lq);

ITq := 6.625312500

IVq := 16.26562500

Sq := -9.640312500

exakte Lösung

>   

>    soly:=proc() local F;
F:=-diff(V(y),y):

>    rhs(dsolve({diff(y(t),t$2)=subs(y=y(t),F)/m,y(0)=0,y(t1)=x[n]},y(t)));
end;

soly := proc () local F; F := -diff(V(y),y); rhs(dsolve({y(0) = 0, y(t1) = x[n], diff(y(t),`$`(t,2)) = subs(y = y(t),F)/m},y(t))) end proc

>    soly();

-5/4*t^2+137/20*t

>    plote:=plot(soly(),t=0..t1,color=black):

>    #plote;

>   

>    display({plota,plote});

[Maple Plot]

>   


Zahlen zum Vergleich

>    IT:=evalf(int(m/2*diff(soly(),t)^2,t=0..t1));

IT := 6.690416667

>    IV:=evalf(int(V(soly()),t=0..t1));

IV := 16.77083333

>    S:=IT-IV;

S := -10.08041666

>   

komma@oe.uni-tuebingen.de