wirf5_10.mws

Moderne Physik mit Maple

PDF-Buch Moderne Physik mit Maple

Update auf Maple 10

Kapitel 4.1.3

Worksheet wirf5_10.mws

c International Thomson Publishing Bonn         1995                    filename: wirf5.ms

Autor: Komma                                                                             Datum: 28.3.94

Thema: Approximation durch stückw. gleichf. Bewegung, Wirkungsprinzip.

            Weiterentwicklung von wirf4.ms mit procs()

>    restart; with(plots):

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

Lq := Tq-Vq()

>    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

>   

>    n:='n': dt:='dt':x[0]:='x[0]':

>    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)

>    m:='m':g:='g':k:='k':x[0]:='x[0]':

>    V:=proc(x)

>    1/2*k*x^2;

>    #m*g*x;

>    end;

V := proc (x) 1/2*k*x^2 end proc

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

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

>   

>    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

>    #n:=20:

>    #bahn();

>    Lq;

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

>    bahn:=proc() local kk,j,i; global sys,sol,pkte;

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

>   

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

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

>    assign(sol);

>    pkte:=array(1..n):

>    for i to n do

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

>    od:

>    end;

bahn := proc () local kk, j, i; global sys, sol, pkte; if assigned(n) then clear(x) end if; sys := seq(diff(Lq,x[kk]) = 0,kk = 1 .. n-1); sol := solve({sys},{seq(x[j],j = 1 .. n-1)}); assign(sol); pkte...
bahn := proc () local kk, j, i; global sys, sol, pkte; if assigned(n) then clear(x) end if; sys := seq(diff(Lq,x[kk]) = 0,kk = 1 .. n-1); sol := solve({sys},{seq(x[j],j = 1 .. n-1)}); assign(sol); pkte...
bahn := proc () local kk, j, i; global sys, sol, pkte; if assigned(n) then clear(x) end if; sys := seq(diff(Lq,x[kk]) = 0,kk = 1 .. n-1); sol := solve({sys},{seq(x[j],j = 1 .. n-1)}); assign(sol); pkte...
bahn := proc () local kk, j, i; global sys, sol, pkte; if assigned(n) then clear(x) end if; sys := seq(diff(Lq,x[kk]) = 0,kk = 1 .. n-1); sol := solve({sys},{seq(x[j],j = 1 .. n-1)}); assign(sol); pkte...
bahn := proc () local kk, j, i; global sys, sol, pkte; if assigned(n) then clear(x) end if; sys := seq(diff(Lq,x[kk]) = 0,kk = 1 .. n-1); sol := solve({sys},{seq(x[j],j = 1 .. n-1)}); assign(sol); pkte...
bahn := proc () local kk, j, i; global sys, sol, pkte; if assigned(n) then clear(x) end if; sys := seq(diff(Lq,x[kk]) = 0,kk = 1 .. n-1); sol := solve({sys},{seq(x[j],j = 1 .. n-1)}); assign(sol); pkte...
bahn := proc () local kk, j, i; global sys, sol, pkte; if assigned(n) then clear(x) end if; sys := seq(diff(Lq,x[kk]) = 0,kk = 1 .. n-1); sol := solve({sys},{seq(x[j],j = 1 .. n-1)}); assign(sol); pkte...
bahn := proc () local kk, j, i; global sys, sol, pkte; if assigned(n) then clear(x) end if; sys := seq(diff(Lq,x[kk]) = 0,kk = 1 .. n-1); sol := solve({sys},{seq(x[j],j = 1 .. n-1)}); assign(sol); pkte...
bahn := proc () local kk, j, i; global sys, sol, pkte; if assigned(n) then clear(x) end if; sys := seq(diff(Lq,x[kk]) = 0,kk = 1 .. n-1); sol := solve({sys},{seq(x[j],j = 1 .. n-1)}); assign(sol); pkte...
bahn := proc () local kk, j, i; global sys, sol, pkte; if assigned(n) then clear(x) end if; sys := seq(diff(Lq,x[kk]) = 0,kk = 1 .. n-1); sol := solve({sys},{seq(x[j],j = 1 .. n-1)}); assign(sol); pkte...

>   

Tests

>    n:=10;bahn();

n := 10

x[10]

Etwas Computeralgebra

>    x[3];

m^3*(55*m^2*dt^8*k^4*x[0]-120*m^3*dt^6*k^3*x[0]-12*m*dt^10*k^5*x[0]+dt^12*k^6*x[0]-4*m^5*dt^2*k*x[10]+m^4*dt^4*k^2*x[10]-56*m^5*dt^2*k*x[0]+126*dt^4*k^2*m^4*x[0]+7*m^6*x[0]+3*m^6*x[10])/(-dt^18*k^9+792...
m^3*(55*m^2*dt^8*k^4*x[0]-120*m^3*dt^6*k^3*x[0]-12*m*dt^10*k^5*x[0]+dt^12*k^6*x[0]-4*m^5*dt^2*k*x[10]+m^4*dt^4*k^2*x[10]-56*m^5*dt^2*k*x[0]+126*dt^4*k^2*m^4*x[0]+7*m^6*x[0]+3*m^6*x[10])/(-dt^18*k^9+792...
m^3*(55*m^2*dt^8*k^4*x[0]-120*m^3*dt^6*k^3*x[0]-12*m*dt^10*k^5*x[0]+dt^12*k^6*x[0]-4*m^5*dt^2*k*x[10]+m^4*dt^4*k^2*x[10]-56*m^5*dt^2*k*x[0]+126*dt^4*k^2*m^4*x[0]+7*m^6*x[0]+3*m^6*x[10])/(-dt^18*k^9+792...

>    collect(x[3],x[0]);

m^3*(-56*m^5*dt^2*k+126*m^4*dt^4*k^2-120*m^3*dt^6*k^3+55*m^2*dt^8*k^4-12*m*dt^10*k^5+dt^12*k^6+7*m^6)/(-dt^18*k^9+792*m^7*dt^4*k^2-1716*m^6*dt^6*k^3+2002*m^5*dt^8*k^4-1365*m^4*dt^10*k^5-136*m^2*dt^14*k...
m^3*(-56*m^5*dt^2*k+126*m^4*dt^4*k^2-120*m^3*dt^6*k^3+55*m^2*dt^8*k^4-12*m*dt^10*k^5+dt^12*k^6+7*m^6)/(-dt^18*k^9+792*m^7*dt^4*k^2-1716*m^6*dt^6*k^3+2002*m^5*dt^8*k^4-1365*m^4*dt^10*k^5-136*m^2*dt^14*k...

>    factor(x[3]);

m^3*(55*m^2*dt^8*k^4*x[0]-120*m^3*dt^6*k^3*x[0]-12*m*dt^10*k^5*x[0]+dt^12*k^6*x[0]-4*m^5*dt^2*k*x[10]+m^4*dt^4*k^2*x[10]-56*m^5*dt^2*k*x[0]+126*dt^4*k^2*m^4*x[0]+7*m^6*x[0]+3*m^6*x[10])/(2*m-k*dt^2)/(m...
m^3*(55*m^2*dt^8*k^4*x[0]-120*m^3*dt^6*k^3*x[0]-12*m*dt^10*k^5*x[0]+dt^12*k^6*x[0]-4*m^5*dt^2*k*x[10]+m^4*dt^4*k^2*x[10]-56*m^5*dt^2*k*x[0]+126*dt^4*k^2*m^4*x[0]+7*m^6*x[0]+3*m^6*x[10])/(2*m-k*dt^2)/(m...
m^3*(55*m^2*dt^8*k^4*x[0]-120*m^3*dt^6*k^3*x[0]-12*m*dt^10*k^5*x[0]+dt^12*k^6*x[0]-4*m^5*dt^2*k*x[10]+m^4*dt^4*k^2*x[10]-56*m^5*dt^2*k*x[0]+126*dt^4*k^2*m^4*x[0]+7*m^6*x[0]+3*m^6*x[10])/(2*m-k*dt^2)/(m...

>   

Parameter

Die Anzahl der Stützstellen kann noch mit t1 abgestimmt werden, insbes. für die Schwingung (z.B. n=20*t1). (Rundungsfehler?)

>    n:=40:

>    m:=1:

>    k:=6:

>    #g:=50:

>    t1:=3: # untersuchen Sie auch größere Zeiten

>    dt:=t1/n:

>    x[0]:=1: # nicht 0

>    bahn();

x[40]

>    x[n]:=0:

>   

>    x[5];

79125389337724726377326168416053180891534423467902277073822241091127571166850863551430328320000000000/448679612372646653808704777644785411002898160474503827667620195932551277863542542479146394283527057...

>   

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

>    plota;

[Maple Plot]

>   

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

ITq := 6.144326952

IVq := 5.598251424

Sq := .5460755282

>   

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

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

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

>    soly();

-cos(3*6^(1/2))/sin(3*6^(1/2))*sin(6^(1/2)*t)+cos(6^(1/2)*t)

>   

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

>    display({plota,plote});

[Maple Plot]

>   

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

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

>    S:=IT-IV;

IT := 6.217476148

IV := 5.539602220

S := .677873928

>   

Zurück zu "Parameter" ... Sie können alle ändern! Unter welchen Bedingungen wird die Näherung schlecht?

Wie läßt sich die Näherung verfeinern?

>   

komma@oe.uni-tuebingen.de