wellen3_10.mws

Moderne Physik mit Maple

PDF-Buch Moderne Physik mit Maple

Update auf Maple 10

Kapitel 3.3

Worksheet wellen3.mws

>   

c International Thomson Publishing Bonn      1995                       filename: wellen3.ms

Autor: Komma                                                                             Datum: 6.11.93

Index: Wellen, Überlagerung

Thema: Form aus Kohärenz, Huygens Physik

An dieser Stelle sind zwei  Anmerkungen angebracht:

1.) eine technische - (das waren noch Zeiten!): Das vorliegende Worksheet macht intensiven Gebrauch von der Rechengeschwindigkeit und der Speicherkapazität Ihres Computers. Das läßt sich leider nicht vermeiden, wenn man Darstellungen, die viele Informationen enthalten, auch noch animieren will. Anhaltspunkt: Mit einem 486er, 50MHz, 16MB (unter Windows etwa 50MB virtueller Speicher) müssen Sie bei den folgenden Animationen ein paar Minuten Wartezeit in Kauf nehmen (pro Animation). Sie können aber einen Eindruck vom Wesentlichen erhalten, wenn Sie <frames> heruntersetzen. Bei Verwendung der Student Edition muß wieder die maximale Arraygröße von 5120 Elementen eingehalten werden (vgl. wellen1.ms). Eine zweite Möglichkeit, Zeit zu sparen, besteht darin, Animationen, die man öfter ablaufen lassen will, abzuspeichern. Das erspart zumindest die Rechenzeit für den Aufbau der Plotstruktur, kostet aber Plattenplatz und verringert die Zeit für die Umsetzung der Plotstruktur in eine Animation (Berechnung der frames) nicht. Aus diesem Grund befinden sich auch nur wenige solcher Plots auf der CD. Die abgespeicherten Plots können mit der Student Edition verwendet werden. Ein Beispiel für das Abspeichern und Lesen (von einer beliebigen Maple-session aus) eines Plots finden Sie bei der ersten Animation dieses Worksheets. Es ist zweckmäßig, nur einen Plot je File abzuspeichern (mit dem gleichen Namen für die Variable und den File), weil dann die einzelnen Darstellungen leicht wieder gelöscht werden können (ca 500kB).

2.) eine methodische: Sie können als Maple-user im fortgeschrittenen Stadium jedes Worksheet als Aufgabensammlung verwenden, indem Sie es laden und alle Befehle mit "remove all input" entfernen (ggf. auch "remove all output"). Nun können Sie dem Text folgend versuchen, die Befehle selbst zu schreiben. Wenn Sie nicht weiterkommen, haben Sie immer noch das Buch oder können sich in einer zweiten Maple-session das gleiche Worksheet laden und dort die Befehle nachlesen.

>   

Form aus Kohärenz

Vom mathematischen Standpunkt aus betrachtet, spielt die (od. eine) Wellengleichung für Wellen die gleiche Rolle wie die Newtonsche Gleichung für ein Teilchen: beides sind Bewegungsgleichungen -- als DGn formuliert. Aber es gibt einen entscheidenden Unterschied. Abgesehen davon, daß die WG nicht die Bewegung EINES Punktes beschreibt, läßt sie die lineare Superposition von Lösungen zu, was im Newtonschen Fall nur für die Schwingung möglich ist (oder ähnliche Kraftgesetze).

Diese Superpositionsfähigkeit -- und nicht die Beschreibung einer gleichförmigen Bewegung von ETWAS -- ist das entscheidende Charakteristikum des Phänomens Welle (Schwingung). Weil die Wellengleichung ohne Kraftgesetz auskommt, zählt nur das WIE der Bewegung und nicht das WAS oder WARUM. Und bei dem WIE interessiert nicht "wie schnell" und "wohin", sondern eben nur "auf welche Art". Superposition heißt: eine Welle kommt nie allein -- in Reinkultur. Selbst wenn man meint, man hätte genau eine einzige Welle vor sich, z.B. eine ebene Welle, so irrt man: diese einzige Welle läßt sich *zerlegen* in unendlich viele Wellen, und das auf viele verschiedene Arten. Das ist die Huygensche Physik: Wellen sind das *Ergebnis* von Superposition, Wellen interferieren. Wir wollen uns diesen Vorgang zunächst in der räumlichen Darstellung veranschaulichen und in einem weiteren Abschnitt auf die Details der wichtigen Sonderfälle wie Doppelspalt, Gitter und Spalt zurückkommen. Das ist typisch für das Vorgehen mit einem CAS: im Gegensatz zu herkömmlichen Methoden, die meist vom Einfachen, Elementaren zum Komplexen führen, kann mit einem CAS ein komplexer Zusammenhang direkt angegangen werden, zumindest was seine Veranschaulichung betrifft. Und dann kann weiter analysiert und zerlegt werden.

Nach Huygens kann jeder Punkt einer Wellenfront als Zentrum einer Elementarwelle aufgefaßt werden.

Wir versuchen, eine nach oben laufende Welle mit geraden Fronten zunächst mit Zentren zu erzeugen, die auf einer Geraden liegen, also z.B. durch Kreiswellen in der x-y-Ebene mit Zentren auf der x-Achse

>    restart: with(plots):

>    welle:=sum(elem[i],i=1..n);

welle := sum(elem[i],i = 1 .. n)

>    elem[i]:=cos(k*r[i]-w*t);

elem[i] := cos(-k*r[i]+w*t)

>    r[i]:=sqrt((x-x0[i])^2+y^2);

r[i] := (x^2-2*x*x0[i]+x0[i]^2+y^2)^(1/2)

>    n:=5:

>    for j to n do

>    x0[j]:=2*j od:

>    welle;

cos(-k*(x^2-4*x+4+y^2)^(1/2)+w*t)+cos(-k*(x^2-8*x+16+y^2)^(1/2)+w*t)+cos(-k*(x^2-12*x+36+y^2)^(1/2)+w*t)+cos(-k*(x^2-16*x+64+y^2)^(1/2)+w*t)+cos(-k*(x^2-20*x+100+y^2)^(1/2)+w*t)
cos(-k*(x^2-4*x+4+y^2)^(1/2)+w*t)+cos(-k*(x^2-8*x+16+y^2)^(1/2)+w*t)+cos(-k*(x^2-12*x+36+y^2)^(1/2)+w*t)+cos(-k*(x^2-16*x+64+y^2)^(1/2)+w*t)+cos(-k*(x^2-20*x+100+y^2)^(1/2)+w*t)

>   

Animation der Wellenfronten

>    w:=2: k:=1/2:t:='t':

>    wani1:=animate3d(welle,x=-20..20,y=-20..20,t=0..4*Pi/w,axes=boxed,style=contour,orientation=[-90,0],frames =30):

>    wani1;

[Maple Plot]

>   

Dreidimensionale Animation

>    wani2:=animate3d(welle,x=-20..40,y=-20..20,t=0..4*Pi/w,axes=boxed,style=wireframe,frames =20,orientation=[42,7]):

>    wani2;

[Maple Plot]

>   

save wani2, `wani2.m`;

read `wani2.m`: wani2;


Die Wellenfronten sind je nach Anzahl und Dichte der Zentren im Nahbereich "gerade" und aus großem Abstand sieht ohnehin alles wie ein Punkt aus und sendet somit Kugelwellen. Aber unsere Konstruktion hat einen Nachteil: die Welle läuft in zwei Richtungen. Man hört ja auch manchmal die Scherzfrage, ob sich Huygens nicht geirrt habe -- denn wie kann aus Wellen die in alle Richtungen laufen, eine geordnete Bewegung in eine Richtung entstehen?

Untersuchen wir also, ob sich Huygens geirrt hat. Dazu müssen wir die Anordnung unserer Zentren in die Ebene ausdehnen.

>   

Array von regelmäßig angeordneten Zentren

>    restart: with(plots):

>    welle:=sum(sum(elem[i][j],i=1..n),j=1..m);

welle := sum(sum(elem[i][j],i = 1 .. n),j = 1 .. m)

>    elem[i][j]:=cos(k*r[i][j]-w*t+k*y0[i][j]);

elem[i][j] := cos(-k*r[i][j]+w*t-k*y0[i][j])

>    r[i][j]:=sqrt((x-x0[i][j])^2+(y-y0[i][j])^2);

r[i][j] := (x^2-2*x*x0[i][j]+x0[i][j]^2+y^2-2*y*y0[i][j]+y0[i][j]^2)^(1/2)

>    n:=5:m:=3:

>    for ii to n do

>    for jj to m do

>    x0[ii][jj]:=6*ii :

>    y0[ii][jj]:=2*jj od: od:

>   

read `fig.m`:winpl():vtitle:=`Richtantenne`:xtick:=0:ytick:=0:

pspl(`p2wel3.ps`):


>    plot({seq(seq([x0[ii][jj],y0[ii][jj]],ii=1..n),jj=1..m)},x=-20..40,style=point,color=red,symbol=circle);

[Maple Plot]

winpl():

>    i:='i':j:='j':

>    welle;

cos(-k*(x^2-12*x+40+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-24*x+148+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-36*x+328+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-48*x+580+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-60*x+904+y...
cos(-k*(x^2-12*x+40+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-24*x+148+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-36*x+328+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-48*x+580+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-60*x+904+y...
cos(-k*(x^2-12*x+40+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-24*x+148+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-36*x+328+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-48*x+580+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-60*x+904+y...
cos(-k*(x^2-12*x+40+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-24*x+148+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-36*x+328+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-48*x+580+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-60*x+904+y...
cos(-k*(x^2-12*x+40+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-24*x+148+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-36*x+328+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-48*x+580+y^2-4*y)^(1/2)+w*t-2*k)+cos(-k*(x^2-60*x+904+y...

>    w:=2: k:=1/2:nf:=15:t:='t':

>    wani3:=animate3d(welle,x=-20..40,y=-20..40,t=0..2*(1-1/nf)*Pi/w,axes=boxed,style=contour,

>    scaling=constrained,orientation=[-90,0],frames =nf):

>    wani3;

[Maple Plot]

>   

save wani3, `wani3.m`;

read `wani3.m`: wani3;


>    animate3d(welle,x=-20..40,y=-20..40,t=0..2*(1-1/nf)*Pi/w,axes=boxed,style=wireframe,frames =nf);

[Maple Plot]

>   

t:=0:pspl(`p3wel3.ps`):vtitle:=`gerichtete Welle`:

contourplot(welle,x=-20..40,y=-20..40,scaling=constrained,numpoints=5000,opt3d);winpl():


Jetzt läuft schon wesentlich mehr nach oben als nach unten.Woran liegt das? An der regelmäßigen Anordnung der Zentren? Daran liegt es auch (man kann die Zentren aber auch "schlecht" anordnen, probieren Sie doch mal Ihre  eigene Anordnung aus). Aber an der Anordnung der Zentren liegt es nicht in erster Linie, wie folgender Versuch beweist:

Lage der Zentren zufallsverteilt

>    zuf:=rand(0..round(2*Pi/k)):

>    n:=5:m:=5:

>    for ii to n do

>    for jj to m do

>    x0[ii][jj]:=zuf():

>    y0[ii][jj]:=zuf() od: od:

vtitle:=`Zufall?`:pspl(`p4wel3.ps`):

>    plot({seq(seq([x0[ii][jj],y0[ii][jj]],ii=1..n),jj=1..m)},x=-20..40,style=point,color=red,symbol=circle);

[Maple Plot]

>    w:=2: k:=1/2: nf:=15:t:='t':

>    wani4:=animate3d(welle,x=-20..40,y=-20..40,t=0..2*(1-1/nf)*Pi/w,axes=boxed,style=contour,orientation=[-90,0],frames =nf): wani4;

[Maple Plot]

>   

save wani4, `wani4.m`;

read `wani4.m`: wani4;


t:=0:vtitle:=`Nein - Kohaerenz!`:pspl(`p5wel3.ps`):

contourplot(welle,x=-20..40,y=-20..40,scaling=constrained,numpoints=5000,opt3d);winpl():


>   

>   

>   

*Wo* die Zentren liegen spielt also keine entscheidende Rolle für die Form der Wellenfronten und ihre Ausbreitungsrichtung, solange es nur genügend viele Zentren sind. Es kommt vielmehr auf die "richtige" Phasenbeziehung an (die natürlich oben in die Formeln hineingesteckt wurde). Und Huygens hat also recht, wenn er sagt, daß JEDER Punkt einer Wellenfront als Zentrum einer Elementarwelle aufgefaßt werden kann. Aufgefaßt? Es *ist* so, daß die Phasenbeziehung und damit die Kohärenz die Form bestimmt.

Wir wollen uns das an einem eindimensionalen Schnitt in y-Richtung veranschaulichen, d.h. wir setzen nun Zentren auf die y-Achse, "steuern sie mit der richtigen Phase an", addieren die Amplituden der in beide Richtungen laufenden Wellen und verfolgen  ihre Ausbreitung.

>    restart: with(plots):

>    welle:=sum(elem[i],i=1..n);

welle := sum(elem[i],i = 1 .. n)

>    elem[i]:=cos(k*r[i]-w*t+k*y0[i]);

elem[i] := cos(-k*r[i]+w*t-k*y0[i])

>    r[i]:=abs(y-y0[i]);

r[i] := abs(y-y0[i])

>    n:=5: k:='k':

>    for j to n do

>    y0[j]:=Pi/k*j/n od:

>    welle;

sin(-k*abs(y-1/5*Pi/k)+w*t+3/10*Pi)+sin(-k*abs(y-2/5*Pi/k)+w*t+1/10*Pi)-cos(-k*abs(y-3/5*Pi/k)+w*t+2/5*Pi)-cos(-k*abs(y-4/5*Pi/k)+w*t+1/5*Pi)-cos(-k*abs(y-Pi/k)+w*t)

>    w:=2: k:=1/2:

>    t:='t':

>    animate(welle,y=-20..60,t=0..4*Pi/w,frames =30,color=red,numpoints=200);

[Maple Plot]

>   

Es funktioniert! Aber wo sind die Wellen auf der negativen y-Achse geblieben? Haben wir das auch richtig programmiert? Eine Kontrolle wäre wohl angebracht:

>    w:=2:k:=1/2:t:=0:

>    plot({seq(eval(subs(i=j,elem[i])),j=1..n)},y=-10..10);

[Maple Plot]

>    t:='t':

>    animate({seq(eval(subs(i=j,elem[i])),j=1..n)},y=-20..60,t=0..4*Pi/w,numpoints=200);

[Maple Plot]

>   

Alle Elementarwellen sind da! Aber die nach links laufenden können sich nicht einigen und löschen sich gegenseitig aus: Wellensalat!  Studieren Sie auch das Übergangsgebiet, also das Gebiet, in das Sie Zentren setzen (was kann man alles ändern?).

>   

Man kann den Sachverhalt "Verstärkung in Vorwärtsrichtung -- Auslöschung in Rückwärtsrichtung" auch noch etwas anders darstellen, allerdings etwas abstrakter, indem man sich die Phasen der Elementarwellen über dem Ort darstellen läßt.

>    k:='k':

>    phi[i]:=k*abs(y-y0[i])+k*y0[i];

phi[i] := k*abs(y-y0[i])+k*y0[i]

>    zuf:=rand(1..10): n:=5:

>    for ii to n do y0[ii]:=zuf() od:

>    k:=1/2:

>    plot({seq(subs(i=j,phi[i]),j=1..n)},y=-10..20,color=red);

[Maple Plot]

>   

Für inkohärente Elementarwellen hätte man dagegen

>    phi[i]:=k*abs(y-y0[i])+phi0[i];

phi[i] := 1/2*abs(y-y0[i])+phi0[i]

>    for ii to n do phi0[ii]:=zuf() od:

Die "Charakteristiken" wären beliebig verteilt

>    plot({seq(subs(i=j,phi[i]),j=1..n)},y=-10..20,color=red);

[Maple Plot]

>   

>    welle:=sum(cos(phi[i]-w*t),i=1..n);

welle := cos(-1/2*abs(y-7)-6+2*t)+cos(-1/2*abs(y-10)-5+2*t)+cos(-1/2*abs(y-6)-1+2*t)+cos(-1/2*abs(y-2)-8+2*t)+cos(-1/2*abs(y-4)-5+2*t)

>   

Und eine geordnete Bewegung könnte nur zufällig zustandekommen

>    w:=2:t:='t':

>    animate(welle,y=-20..30,t=0..4*Pi/w,frames=30);

[Maple Plot]

>   

Aber wenn Sie lange genug loopen, schaffen Sie es wohl, daß die Welle nur in eine Richtung läuft. (bei "for" wieder einsteigen)

>   

Anregungen:

1.) So läßt sich natürlich auch die Reflexion und die Brechung nach Huygens mit dem Computer untersuchen ... es kommt nur auf die richtige Phasenbeziehung an.

2.) Phasenbeziehung so programmieren, daß Kreiswellen ...-wellen und ...-wellen entstehen.

3.) Realistische Wellen aufbauen, deren Amplitude mit der Entfernung abnimmt.

>   

>   

komma@oe.uni-tuebingen.de