Author
dinhkhue
View
214
Download
0
Embed Size (px)
Numerische Lsung
Partieller Differentialgleichungen
Wir haben verschiedene einfache partielle Differentialgleichungen kennen ge-lernt Bestimmungsgleichungen fr stationre oder zeitlich vernderliche Fel-der. Beispiele sind die Laplace- und Poisson-Gleichung fr stationre Felder, dieWrmeleitungs- und Diffusionsgleichung fr zeitlich langsam vernderliche so-wie die Wellengleichung fr schnell vernderliche Felder. Solange die Geometriedes Problems nicht zu komplex ist, knnen wir analytische Lsungen dafr ange-ben, diese geben uns einen anschaulichen funktionalen Eindruck von der Strukturdes Problems und der Lsung. Grundstzlich geht das oft auch bei komplexerenProblemen, zumindest dann, wenn sie linear sind, d. h. wenn man Lsungsfunk-tionen ungestrt berlagern kann. Die Gesamtlsung kann dann als Summe oderIntegral ber einfachere Lsungsfunktionen angegeben werden. Da dies jedochrasch unbersichtlich wird, verwendet man bei technischen Problemen meist nu-merische Lsungsverfahren.
Einfache numerische Algorithmen beruhen auf der Finite-Differenzen-Metho-de, die Wikipedia-Beschreibung dazu sehen Sie in der ersten Box. Hier wer-
Wikipedia: Finite-Differenzen-Methodea
Die Finite-Differenzen-Methode istdas einfachste numerische Verfah-ren zur Lsung partieller Differenti-algleichungen.Zunchst wird das Gebiet, fr das dieGleichung gelten soll, in eine end-liche (finite) Zahl von Gitterzellendurch senkrecht aufeinander stehen-de Linien zerlegt. Die Ableitungen anden Gitterzellen werden dann durchDifferenzen approximiert. Die parti-
ellen Differentalgleichungen werdenso in ein System von Differenzen-Gleichungen umformuliert und mit-tels verschiedener Algorithmen ent-weder implizit oder explizit gelst.Verfahren dieser Art finden verbrei-tete Anwendung bei hydrodynami-schen Simulationen zum Beispiel inder Meteorologie und der Astrophy-sik.
a http://de.wikipedia.org/wiki/Finite-Differenzen-Methode
[email protected] 19. JUNI 2005
2
den wir uns ausschlielich mit solchen einfachen Algorithmen beschftigen. Einhnlich klingendes Verfahren, die Finite-Elemente-Methode, sollte damit nichtverwechselt werden, nur zu Ihrer Information daher der Anfang der Wikipedia-Beschreibung zu dieser in der Technik inzwischen wichtigsten Methode zur L-sung von Differentialgleichungsproblemen in der zweiten Box. Die Finite-Ele-mente-Methode wurde ursprnglich fr Probleme in der Elastizittstheorie ent-wickelt; sie wird heute bei einer Vielzahl von physikalischen Problemstellungeneingesetzt in der Regel mit aufwndigen kommerziellen Programmen.
Wikipedia: Finite-Elemente-Methodea
Die Finite-Elemente-Methode ist einnumerisches Verfahren zur nhe-rungsweisen Lsung partieller Dif-ferentialgleichungen mit Randbedin-gungen.Allgemeines Vorgehen: Das unter-suchte Lsungsgebiet wird zunchstin Teilgebiete, die finiten Elementeeingeteilt.
G =m
e=1
Ge (1)
Innerhalb des Finiten Elements wer-den fr die gesuchte Lsung je nAnsatzfunktionen definiert, die nurauf endlich vielen der Teilgebiete un-gleich Null sind. Durch eine Line-arkombination der n Ansatzfunktio-nen innerhalb des Elementes werdendie mglichen Lsungen der numeri-schen Nherung festgelegt.
y|Ge n
i=1
ce,ne,n (2)
Die Differentialgleichungen und dieRandbedingungen werden mit Ge-wichtungsfunktionen multipliziert
und ber das Lsungsgebiet inte-griert. Das Integral wird durch eineSumme ber einzelne Integrale derFiniten Elemente ersetzt, wobei dieIntegration i. d. R. durch eine nhe-rungsweise numerische Integrationausgefhrt wird. Da die Ansatzfunk-tionen nur auf wenigen der Elementeungleich Null sind, ergibt sich eindnnbesetztes, hufig sehr groes, li-neares Gleichungssystem, bei demdie Faktoren der Linearkombinationunbekannt sind.Dieses Gleichungssystem knnteman zwar prinzipiell direkt (z. B. mitdem Gauschen Eliminationsverfah-ren) lsen. Da der Berechnungsauf-wand dort aber bei N GleichungenO(N3) betrgt und beim Lsen diednnbesetzte Struktur, die sich effi-zient speichern lsst, verloren geht,verwendet man im allgemeinen itera-tive Lser, die schrittweise eine L-sung verbessern.. . .
a http://de.wikipedia.org/wiki/Finite-Elemente-Methode
[email protected] 19. JUNI 2005
1 FINITE-DIFFERENZEN-METHODE 3
1 Finite-Differenzen-MethodeDas Prinzip der Finite-Differenzen-Methode ist einfach und nahe liegend: Ablei-tungen werden durch endliche (finite) Differenzenquotienten ersetzt.Fr die erste Ableitung einer Funktion f(x) bedeutet das
df
dx= f(x+ h/2) f(x h/2)
h. (3)
Entsprechend wird aus der zweiten Ableitung
d2f
dx2= f(x+ h) 2f(x) + f(x h)
h2. (4)
Der Laplace-Operator in zwei Dimensionen wird fr die Funktion f(x, y) zu
f(x+ hx, y) 2f(x, y) + f(x hx, y)h2x
f(x, y) = (5)
+f(x, y + hy) 2f(x, y) + f(x, y hy)
h2y.
Wenn die beiden Koordinaten quivalent sind, whlt man sinnvollerweise hy =hx = h, damit vereinfacht sich der Ausdruck (5) und ist in Programmen mit we-niger Aufwand zu implementieren. Die Erweiterung von (5) auf drei oder mehrDimensionen ist offensichtlich, wir werden uns hier jedoch der Einfachheit halberauf zwei Dimensionen beschrnken.
Zur Anwendung des Verfahrens wird das kontinuierliche Gebiet, in dem diepartielle Differentialgleichung gelst werden soll, durch ein orthogonales, meistquidistantes Feld aus Gitterpunkten ersetzt (Abbildung 1).
1 2 3 N1 N
1
2
M
hy
hx
Abbildung 1: Zweidimen-sionales Punkteraster zurImplementierung der Finite-Differenzen-Methode.
[email protected] 19. JUNI 2005
2 LAPLACE: TEMPERATURVERTEILUNG 4
Funktionswerte und Ableitungen werden fr alle Berechnungen dann nur nochan den Gitterpunkten betrachtet. Fr die graphische Darstellung von Ergebnis-funktionen kann soweit notwendig mit geeigneten Verfahren zwischen denGitterpunkten interpoliert werden.
Statt der kontinuierlichen Variablen x und y werden Feldindizes k = 1 . . . Nund j = 1 . . .M verwendet, damit wird (5) zu
Aj,k+1 2Aj,k + Aj,k1h2x
A = (6)
+Aj+1,k 2Aj,k + Aj1,k
h2y
oder in MATLABr-Schreibweise und mit hx = hy = h
DeltaA = (A(j,k+1) + A(j,k-1) ...+ A(j+1,k) + A(j-1,k) ...- 4*A(j,k))/h^2;
(7)
2 Laplace: TemperaturverteilungDie oben genannte Strategie wenden wir auf das Lehrbuchbeispiel der Tempera-turverteilung auf einer rechteckigen Platte an. Die Temperatur ist an allen Rndernvorgegeben Dirichletsche Randbedingungen. Die stationre Temperaturvertei-lung ist zu berechnen, d. h. fr den Innenbereich ist die Laplace-Gleichung zulsen.
2.1 Analytische LsungZunchst die Lehrbuchlsung, um einen Vergleich zu den numerischen Verfahrenzu haben (Abbildung 2).
Die wesentlichen Zeilen aus dem MATLABr-Skript zur Berechnung der Tem-peraturverteilung mit der im Lehrbuch angegebenen Summation ber Lsungs-funktionen (for-Schleife im Skript):
a = 20;b = 20;N = 20;X = linspace(0,a,N);Y = linspace(0,b,N);
[email protected] 19. JUNI 2005
2 LAPLACE: TEMPERATURVERTEILUNG 5
0
10
20
0
10
200
0.5
1
1.5
2
2.5
xy
T
Abbildung 2: Stationre Tem-peraturverteilung auf einerrechteckigen Platte bei Dirich-letschen Randbedingungen (vgl.Lehrbuch).
[x,y] = meshgrid(X,Y);T = zeros(size(x));for n = 1:2:7,
T = T + 1/n^3*sinh(n*pi*y/a) ..../sinh(n*pi*b/a).*sin(n*pi*x/a);
end;mesh(T);
2.2 IterationsverfahrenIm stationren Fall gilt fr das Temperaturfeld T = 0. Der Ausdruck (6) lsstsich damit fr A = T und hx = hy umschreiben zu
Tj,k = 0.25(Tj,k+1 + Tj,k1 + Tj+1,k + Tj1,k) . (8)
Daraus wird eine Iterationsvorschrift, wenn man rechts den Zustand nach n, linksden nach n+ 1 Iterationen einsetzt:
T(n+1)j,k = 0.25(T
(n)j,k+1 + T
(n)j,k1 + T
(n)j+1,k + T
(n)j1,k) . (9)
Wichtig ist die richtige Behandlung der Randbedingungen. Dazu gibt es (mindes-tens) zwei Mglichkeiten: Man spart den Rand aus dem Wertebereich der Indi-zes j und k aus oder man regeneriert die Randbedingungen nach jedem Iterati-onsschritt. Die erste Mglichkeit wird man immer dann whlen, wenn nur einerechteckige uere Begrenzung mit festen Randwerten vorliegt (wie dies bei un-serem Beispiel der Temperaturverteilung der Fall ist). Die zweite dann, wenn derRandverlauf komplizierter ist oder wenn zustzliche Randbedingungen im Innen-bereich zu bercksichtigen sind.
Die Iterationsvorschrift der Gleichung (9) lsst sich sehr leicht in ein Rechner-programm umsetzen, als Beispiel nachstehend ein Fragment in der Programmier-sprache C, das aus dem Skriptum zu einer Numerik-Vorlesung an der UniversittBayreuth kopiert wurde:
[email protected] 19. JUNI 2005
2 LAPLACE: TEMPERATURVERTEILUNG 6
for(iter=0; iter
2 LAPLACE: TEMPERATURVERTEILUNG 7
0
10
20
0
10
200
0.5
1
1.5
2
2.5
xy
T
Abbildung 3: Stationre Tempe-raturverteilung auf einer rechte-ckigen Platte bei DirichletschenRandbedingungen, berechnet mitdem beschriebenen Iterationsver-fahren.
0
10
20
0
10
200
0.5
1
1.5
2
2.5
xy
T Abbildung 4: Ergebnis der Itera-tionsrechnung und exaktes Ergeb-nis bereinander geplottet.
am aufflligsten sind in der Symmetrieebene, die mittendurch geht (das ist diedurch die y- und T -Richtung aufgespannte Flche bei x = 10). In Abbildung 5ist der Temperaturverlauf in der Schnittebene skizziert, im linken Teilbild fr dasbisher betrachtete Temperaturfeld mit 20 20 Punkten. Die graue Kurve repr-sentiert das exakte Ergebnis, die schwarzen Kurven Iterationsrechnungen mit 30,150 bzw. 500 Iterationen. Man sieht, dass erst