Stabilitätsfunktion

Aus testwiki
Zur Navigation springen Zur Suche springen

Die Stabilitätsfunktion ist in der Numerik ein Hilfsmittel, um Lösungsverfahren für gewöhnliche Differentialgleichungen zu analysieren. Die einfache Testgleichung von Germund Dahlquist y(t)=λy(t), y(0)=1 mit λ besitzt als Lösung die Exponentialfunktion y(t)=eλt. Bei den meisten Verfahren für gewöhnliche Differentialgleichungen kann man die berechnete Näherungslösung nach einem Zeitschritt mit einer Schrittweite h ebenfalls als eine Funktion schreiben, die nur vom Produkt z=hλ abhängt. Diese Funktion ist die Stabilitätsfunktion und wird oft mit R(z) bezeichnet. Durch einen Vergleich mit der Exponentialfunktion ez=ehλ bekommt man grundlegende Informationen über das numerische Verfahren. So beziehen sich einige Stabilitätsbegriffe auf die Eigenschaften von R(z).

Stabilitätsgebiet und Stabilitätsbegriffe

Mit Hilfe der Stabilitätsfunktion R(z) lässt sich das Stabilitätsgebiet S beschreiben und berechnen in der Form

S={z:|R(z)|<1}.

Denn bei Einschrittverfahren gilt für die Näherungen yn zum Zeitpunkt tn=nh die Beziehung yn=R(z)yn1==(R(z))jynj==(R(z))ny0 und daher gilt

ynn0zS.

Wenn S die ganze linke komplexe Halbebene umfasst, heißt das Verfahren A-stabil. Dann ist der Betrag von R in der ganzen offenen linken Halbebene kleiner als 1. Besonders günstig für ein Verfahren ist es, wenn R(z) außerdem noch den Grenzwert 0 hat, wenn z auf der reellen Achse gegen strebt, sodass sich also der Betrag von R(z) dort asymptotisch wie die Exponentialfunktion verhält. Dann heißt das Verfahren L-stabil.

Beispiel

Das explizite Euler-Verfahren yn+1=yn+hf(tn,yn) ergibt für die Testgleichung mit f(t,y)=λy nach einem Schritt

y1=y0+hλy0=(1+hλ)y0,

also gilt für seine Stabilitätsfunktion R(z)=1+z. Sein Stabilitätsgebiet besteht daher aus allen komplexen Zahlen z mit |1+z|<1, was dem Inneren des Kreises mit Mittelpunkt 1 und Radius 1 in der komplexen Zahlenebene entspricht.

Für das implizite Euler-Verfahren yn+1=yn+hf(tn+1,yn+1) folgt dagegen mit f(t,y)=λy

y1=y0+hλy1y1=11hλy0,

also R(z)=11z. Das Stabilitätsgebiet ist nun durch die Bedingung |11z|<1 gegeben, die mit

|1z|>1

gleichwertig ist, was dem Äußeren des Kreises mit Mittelpunkt 1 und Radius 1 entspricht. Es enthält daher die ganze offene linke Halbebene und somit ist das implizite Euler-Verfahren A-stabil. Wegen limz11z=0 ist es sogar L-stabil.

Die Stabilitätsfunktion von Runge-Kutta-Verfahren

Runge-Kutta-Verfahren sind vollständig durch die Koeffizienten A,b,c aus ihrem Butcher-Tableau festgelegt. Bei der Testgleichung ist der Anfangswert y0=1 und für die Stufen ergibt sich im ersten Zeitschritt

ki=λ(1+hj=1saijkj),i=1,,s.

Dies ist ein quadratisches lineares Gleichungssystem für den Vektor k=(k1,,ks)T in der Form (IzA)k=λe mit dem Vektor e=(1,,1)T. Mit dessen Lösung bekommt man dann die Runge-Kutta-Näherung y1y(h) in der Form

y1=y0+hj=1sbjkj=1+hbTk=1+zbT(IzA)1e=:R(z).

Dies ist bei Runge-Kutta-Verfahren eine rationale Funktion, daher wird sie gerne mit R(z) bezeichnet.

Bei expliziten Runge-Kutta-Verfahren ist die Koeffizientenmatrix A eine strikt untere Dreiecksmatrix, daher bricht die Neumann-Reihe von (IzA)1 nach s Summanden ab und man bekommt

R(z)=1+zbT(IzA)1e=1+zbTe+z2bTAe++zsbTAs1e.

Daher ist die Stabilitätsfunktion eines expliziten Runge-Kutta-Verfahrens ein Polynom, solche Verfahren können nicht A-stabil sein.

Bei impliziten Runge-Kutta-Verfahren sind aber z. B. die Gauß-Legendre-Verfahren A-stabil. Die Stabilitätsfunktionen dieser speziellen Verfahren sind sogar sehr gute Approximationen an die Exponentialfunktion, nämlich die sogenannten Padé-Approximationen.

Die Stabilitätsfunktion von Mehrschrittverfahren

Wendet man ein lineares Mehrschrittverfahren j=0mαjynj=hj=0mβjf(ynj) auf die Testgleichung an, ergibt sich wieder mit z=hλ die Gleichung

j=0mαjynjzj=0mβjynj=j=0m(αjzβj)ynj=0.

Dies ist eine lineare Differenzengleichung, die man einfach lösen kann. Denn die Folge yn=un ist eine nichttriviale Lösung dieser Differenzengleichung, wenn u eine Nullstelle des charakteristischen Polynoms

0=!j=0mαjumjzj=0mβjumj=ϱ(u)zσ(u)

ist, wobei man die Polynome

ϱ(u)=j=0mαjumj
σ(u)=j=0mβjumj

eingeführt hat. Also bekommt man mit den von z abhängenden Nullstellen u des Polynoms ϱ(u)zσ(u) die Lösungen un zur Testgleichung und daher liegt z im Stabilitätsgebiet des Verfahrens, wenn alle diese Lösungen gegen 0 gehen für n. Daher kann man die betragsmaximale Nullstelle |u(z)| als Stabilitätsfunktion des Verfahrens ansehen.

Stabilitätsgebiet für das 6-stufige BDF-Verfahren

Diese Interpretation erscheint sehr unhandlich. Allerdings interessiert man sich oft weniger für die Stabilitätsfunktion, sondern für das Stabilitätsgebiet S. Der Rand dieses Gebietes besteht aus denjenigen z, bei dem für die Nullstellen |u|=1 gilt, wo die Nullstellen also auf dem komplexen Einheitskreis liegen. Da ϱ(u)zσ(u)=0z=ϱ(u)/σ(u) gilt, ist die Bestimmung des Stabilitätsgebiets bei Mehrschrittverfahren sogar besonders einfach, denn seinen Rand erhält man i. W. explizit durch

S={ϱ(u)σ(u):|u|=1}={ϱ(eiφ)σ(eiφ):φ[0,2π)}.

Als Beispiel wird das Stabilitätsgebiet für das 6-stufige BDF-Verfahren gezeigt.

Die Stabilitätsfunktion von allgemeinen linearen Verfahren

Obwohl auch Mehrschrittverfahren in der Gestalt von allgemeinen linearen Verfahren geschrieben werden können, ist die Struktur ähnlich derjenigen der Runge-Kutta-Verfahren weiter oben. Daher bekommt man ein ähnliches Ergebnis. Für den Vektor Y der Stufenlösungen gilt

Y=zAY+Uy[n1]Y=(IzA)1Uy[n1]

und der Zeitschritt wird daher zu

y[n]=zBY+Vy[n1]=(V+zB(IzA)1U)y[n1].

In jedem Zeitschritt erfolgt also die Multiplikation mit derselben Matrix

M(z)=V+zB(IzA)1U.

Es gilt daher y[n]=M(z)ny[0]0(n), wenn die Potenzen von M(z) gegen 0 gehen, also alle Eigenwerte von M(z) innerhalb des komplexen Einheitskreises liegen. Daher kann man hier den Spektralradius von M(z) als Stabilitätsfunktion R(z) in der Definition des Stabilitätsgebiets S ansehen.

Weitergehende Bedeutung für lineare Systeme

Die obige Testgleichung von Dahlquist ist sehr einfach, hat aber eine weitergehende Bedeutung für Systeme von linearen, autonomen und homogenen Differentialgleichungen

y(t)=Qy(t),y(0)=y0,Qd×d.

Die exakte Lösung ist y(t)=etQy0 mit dem Matrixexponential etQ. Die numerische Lösung yn kann man jetzt mit der Matrix-Stabilitätsfunktion R(tQ) darstellen. Wenn dabei J=P1QP die Jordan-Normalform von Q (=PJP1) ist, gilt

yn=(R(hQ))ny0=P(R(hJ))nP1y0.

Bei einer diagonalisierbaren Matrix Q ist, ist R(hJ) eine Diagonalmatrix mit den Diagonalelementen R(hλj). Wenn für alle Eigenwerte λj von Q gilt, dass hλjS ist, dann konvergiert auch hier yn0(n). Bei dieser Differentialgleichung sieht man gleichzeitig, dass es sinnvoll ist, S als offene Menge zu definieren. Denn im diagonalisierbaren Fall bleiben zwar Lösungen auf dem Rand mit hλjS noch beschränkt, aber im Allgemeinen nicht mehr, wenn mehrfache Eigenwerte mit Jordanblöcken auftreten.

Literatur

  • E. Hairer, G. Wanner: Solving Ordinary Differential Equations II, Stiff problems. Springer Verlag.
  • K. Strehmel, R. Weiner, H. Podhaisky: Numerik gewöhnlicher Differentialgleichungen – Nichtsteife, steife und differential-algebraische Gleichungen. Springer Spektrum, 2012.