… die grundlegenden Begriffe gewöhnlicher Differentialgleichungen beschreiben können.
… den Unterschied zwischen linearen und nichtlinearen sowie zwischen homogenen und inhomogenen Differentialgleichungen erklären können.
… einfache Differentialgleichungen durch Separation der Variablen und iterative Methoden lösen können.
Was ist eine Differentialgleichung?
Eine Differentialgleichung (DGL) ist eine mathematische Gleichung, die ein Funktion als Unbekannte enthält. Die Gleichung enthält üblicherweise Ableitungen (Differentiale) der Funktion wie sowohl die Funktion selber.
Ein Beispiel für eine einfache Differentialgleichung ist \[
f'(x) = f(x).
\tag{1}\] Die Gleichung enthält sowohl die unbekannte oder gesuchte Funktion \(f(x)\) als auch deren Ableitung \(f'(x)\). Ziel der Lösung von Differentialgleichungen, ist es, die Funktion \(f(x)\) zu bestimmen. Dies kann sowohl analytisch als auch numerisch geschehen - beide dies Wege werden in der vorliegenden Vorlesung eingeführt werden.
Im obigen Fall können wir die Lösung einfach raten. Die Funktion welche sich selbst als Ableitung hat, ist die Exponentialfunktion. Damit ist \[
f(x) = e^x
\] eine Lösung der obigen Gleichung. Genauso ist aber \[
f(x) = A e^x
\] mit beliebigem \(A\) eine Lösung. Den Wert von \(A\) können wir nur bestimmen, wenn wir zusätzlich zu Gleichung 1 eine Anfangsbedingung angeben, z.B. \(f(0) = 5\). Damit können wir direkt \(A=5\) identifizieren und finden \[
f(x) = 5 e^x
\] als Lösung der DGL. Sie haben damit gerade Ihre erste DGL gelöst. Das gelöste Problem heißt auch Anfangswertproblem (engl. initial value problem), weil die Lösung nur durch die DGL und eine zusätzliche Anfangsbedingung bestimmt werden kann.
Eine DGL der Form \[
f'(x) = \lambda f(x)
\] hat die Lösung \[
f(x) = A e^{\lambda x},
\] da \[
\frac{\mathrm{d}}{\mathrm{d}x} e^{\lambda x} = \lambda e^{\lambda x}.
\] Auch diese Lösung kann man raten. Zu vollständigen Lösung dieses Anfangswertproblem bräuchten wir wieder eine Anfangsbedingung.
Wir werden in dieser Veranstaltung nur gewöhnliche DGLs behandeln. Das sind DGLs, in denen nur die Ableitung zu einer Variablen auftaucht.
Woher stammen Differentialgleichungen?
Differentialgleichungen sind die Sprache der Physik. Mit Ihrer Hilfe beschreiben wir unsere Welt. Ein Beispiel ist das zweite Newton’sche Gesetz der Mechanik, das folgendermaßen formuliert werden kann: „Die zeitliche Veränderung des Impulses \(\mathbf{p}\) eines punktförmigen Körpers der Masse \(m\) ist gleich der Summe, der an dem Körper angreifen den Kräfte.“ In ein Formel gegossen, wird dies ausgedrückt als \[
\dot{\mathbf{p}} = \sum_i\mathbf{f}_i.
\] Der Punkt bezeichnet hier und im Folgenden eine zeitliche Ableitung, \[
\dot{\mathbf{p}} = \frac{\mathrm{d} \mathbf{p}}{\mathrm{d} t}.
\] Weiterhin sind fettgedruckte Symbole, z.B. \(\mathbf{p}\), Vektoren.
Abbildung 1: Ein mechanisches System aus Feder, Dämpfer und Masse
Wir schreiben für das System in Abbildung 1\[
\dot{p} = F_\mathrm{k}+F_\mathrm{d}+F(t),
\tag{2}\] wobei \(F_\mathrm{k}\) die Federkraft und \(F_\mathrm{d}\) die Dämpfungskraft bezeichnen. \(p\) ist nun nicht fett, weil wir nur Bewegung in eine Richtung betrachten, hier in die Richtung der angreifenden Kraft \(F(t)\) in die postive \(x\)-Richtung. Die Federkraft selbst ist gegeben durch \[F_k = -kx\] Die Dämpfungskraft wirkt immer entgegen der Bewegung und sei proportional zur Geschwindigkeit, also \[F_\mathrm{d}=-c\dot{x}.\] Die Kräftebilanz Gleichung 2 wird dann zu \[
\dot{p} + c \dot{x} + k x = F(t).
\tag{3}\] Die Trägheitskraft, die Dämpungskraft und die Federkraft wirken der von aussen angelegten Kraft entgegen. Wir werden dieser Gleichung unter dem Namen gedämpfter harmonischer Oszillator wiederbegegnen.
Wir nehmen nun zwei Vereinfachungen an dieser Gleichung vor. Der Impuls ist gegeben durch die Masse \(m\) und die Beschleunigung \(a\) dieser Masse, \(p=ma=m\ddot x\). Wir nehmen nur an, dass die Masse \(m\) sehr klein ist und wir damit \(\dot{p}\approx 0\) annähern können. Weiterhin betrachten wir das System ohne die externe Kraft \(F(t)\). Mit diesen Vereinfachung können wir Gleichung 3 schreiben als \[
\dot{x} = - \frac{k}{c} x.
\tag{4}\] Die Lösung dieser Gleichung kennen wir aber schon. Sie ist \[
x(t) = A \exp\left(- \frac{k}{c} t\right)
\] mit entsprechender Anfangsbedingung. Das Feder-Dämpfer-System relaxiert exponentiell auf die Lösung \(x(t\to\infty)=0\).
Wir können diese Lösung umschreiben als \[
x(t) = A \exp\left(- t/\tau\right)
\tag{5}\] mit \(\tau=c/k\). Da \(t\) in dem mechanischen Problem die Einheit einer Zeit hat, gilt dies auch für die Größe \(\tau\), da das Argument \(-t/\tau\) der Exponentialfunktion dimensionslos sein muss. Die Größe \(\tau\) wird auch Relaxationszeit genannt, da Sie bestimmt wie schnell das Feder-Dämpfer-System in den Gleichgewichtszustand strebt.
ImportantFunktion und Veränderliche
Wir haben in diesem Beispiel \(x\) als Symbol für die Funktion verwandt und \(t\) als Symbol für die Veränderliche. In Abschnitt 1 hatten wir das Symbol \(x\) als Veränderliche, dem Argument der Funktion \(f(x)\) verwandt. Es ist wichtig, in jedem Fall zu verstehen welches Symbol die Veränderliche ist und wie die (gesuchte) Funktion bezeichnet ist.
Visualisierung der exponentiellen Lösung
Um die Lösung der Relaxationsgleichung anschaulich zu machen, betrachten wir mehrere Anfangsbedingungen mit unterschiedlichen Relaxationszeiten:
Code
import numpy as npimport matplotlib.pyplot as plt# Zeitt = np.linspace(0, 5, 1000)# Verschiedene Relaxationszeitentau_values = [0.5, 1.0, 2.0]labels = [f'τ = {tau}'for tau in tau_values]colors = ['blue', 'red', 'green']# Verschiedene Anfangsbedingungenx0_values = [1.0, 2.0, 0.5]fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(7, 4))# Plot 1: Verschiedene Anfangsbedingungen, gleiche Relaxationszeittau =1.0for x0, color_idx inzip(x0_values, range(len(x0_values))): x = x0 * np.exp(-t / tau) ax1.plot(t, x, linewidth=2, label=f'$x_0 = {x0}$', color=f'C{color_idx}')ax1.axhline(y=0, color='k', linestyle='--', alpha=0.3)ax1.set_xlabel('Zeit $t$', fontsize=12)ax1.set_ylabel('Auslenkung $x(t)$', fontsize=12)ax1.set_title(f'Relaxation mit τ = {tau}', fontsize=13)ax1.grid(True, alpha=0.3)ax1.legend(fontsize=11)# Plot 2: Gleiche Anfangsbedingung, verschiedene Relaxationszeitenx0 =1.0for tau, label, color inzip(tau_values, labels, colors): x = x0 * np.exp(-t / tau) ax2.plot(t, x, linewidth=2, label=label, color=color)ax2.axhline(y=0, color='k', linestyle='--', alpha=0.3)ax2.set_xlabel('Zeit $t$', fontsize=12)ax2.set_ylabel('Auslenkung $x(t)$', fontsize=12)ax2.set_title(f'Verschiedene Relaxationszeiten ($x_0 = {x0}$)', fontsize=13)ax2.grid(True, alpha=0.3)ax2.legend(fontsize=11)plt.tight_layout()plt.show()
Abbildung 2: Exponentielles Verhalten des Relaxators für verschiedene Anfangsbedingungen und Relaxationszeiten
Abbildung 2 zeigt, wie stark die Relaxationszeit \(\tau\) das Verhalten des Systems bestimmt:
Linker Plot: Bei gleicher Relaxationszeit \(\tau = 1\) führen unterschiedliche Anfangsbedingungen zu parallelen Exponentialkurven.
Rechter Plot: Eine kleinere Relaxationszeit (\(\tau = 0.5\)) führt zu schnellerer Relaxation, während eine größere (\(\tau = 2\)) zu langsamerer Entspannung führt.
Klassifikation von DGLs
DGLs werden üblicherweise in bestimmten Kategorien klassifiziert.
Linearität
Die Gleichung \[
m\ddot{x}(t)+c\dot{x}(t)+kx(t)=f(t)
\tag{6}\] ist eine lineare inhomogene Differentialgleichung 2. Ordnung, die den gedämpften und getriebenen harmonischen Oszillator beschreibt. Die Gleichung \[\ddot{x}+\mu\left(x(t)^2-1\right)\dot{x}+x(t)= 0\] hingegen ist eine nichtlineare Bewegungsgleichung für \(x(t)\). Sie beschreibt den sogenannten van-der-Pol-Oszillator.
NoteAnmerkung
Wir wollen gleich den Begriff der Homogenität klären. Eine Funktion \(f(x)\) wird homogen vom Grad \(n\) genannt, wenn gilt \(f(\alpha x)=\alpha^n f(x)\), d.h. \(\alpha\) lässt sich kürzen. Deshalb nennt man \(f(t)\) der linearen Differentialgleichung Gleichung 6 auch die Inhomogenität der Differentialgleichung.
Ersetzen wir in Gleichung 6\(x\) durch \(\alpha x\), dann erhalten wir \[m\alpha\ddot{x}(t)+c\alpha\dot{x}(t)+k\alpha x(t)=f(t)\] und \(\alpha\) lässt sich nicht kürzen. Damit ist dies eine inhomogene Gleichung.
Ordnung
Die Gleichung \[\dot{x}(t)+\frac{1}{\tau}x=h(t)\] beschreibt einen getriebenen Relaxator, den wir gleich näher betrachten werden. Sie ist erster Ordnung in der Ableitung nach \(t\). Die rechte Seite dieser Gleichung bezeichnen wir als Inhomogenität. Gleichung 3 hat als höchste Ableitung die zweite und ist damit eine DGL 2. Ordnung.
Systeme
Die Gleichungen \[\begin{aligned}
\dot{x} &= x(\alpha - \beta y) \\
\dot{y} &= - y(\gamma - \delta x)
\end{aligned}\] sind die bekannten Räuber-Beute-Gleichungen, auch Lotka-Volterra-Gleichungen genannt. Es handelt sich um ein System gekoppelter DGL für die beiden unbekannten Funktionen \(x(t)\) und \(y(t)\).
NoteAnmerkung
DGLs höherer Ordnung können in Systeme von DGLs niedriger Ordnung umgewandelt werden. Ein Beispiel ist die DGL 2. Ordnung aus Gleichung 3 für die unbekannte Funktione \(x(t)\), welche wir umschreiben können als \[\begin{aligned}
m\dot{x} &= p(t) \\
\dot{p}(t)+c\dot{x}(t)+kx(t)&=f(t),
\end{aligned}\] welches ein System für die zwei unbekannten Funktionen \(x(t)\) und \(p(t)\) ist. Wir werden uns im späteren Verlauf der Vorlesung intensiv mit Systemen von DGLs beschäftigen.
Bei all diesen Differentialgleichungen sind wir immer an einer Lösung für einen bestimmten Anfangswert interessiert, also z.B. \(x(t=0)=x_0\). Um ein System von Gleichungen lösen zu können, müssen wir für jede abhängige Variable oder jeden Freiheitsgrad Anfangsbedingungen angeben. Da aus einer Gleichung \(n\)-ter Ordnung ein System mit \(n\) Freiheitsgraden wird, schließen wir daraus, dass wir für eine solche Differentialgleichung ebenfalls \(n\) Anfangsbedingungen brauchen. In Abschnitt [sec:LRWP] werden wir eine andere Form der Bedingungen zur Lösung kennenlernen, die sogenannten Randbedingungen.
Analytische Lösungsansätze
Wenn wir gewöhnliche Differentialgleichungen analytisch lösen wollen so ist dies nicht in allen Fällen möglich. Betrachten wir das Anfangswertproblem für die gewöhnliche Differentialgleichung \[\dot{y} = f\left(t,y(t)\right)\] mit \(y(t_0)=y_0\). Die Funktion \(f(t,y(t))\) sei stetig im Bereich der \((t,y)\)-Ebene, gegeben durch \(t_0-a\le t\le t_0+a\) und \(y_0 -b\le y\le y_0+b\). Der Nachweis der Existenz und Eindeutigkeit einer Lösung ist in diesem Falle nicht immer möglich. Wir wollen eine alternative Vorgehensweise vorschlagen.
Wir nehmen an, \(y(t)\) sei eine Lösung des Anfangswertproblems und es gelte \(y_0 -b\le y\le y_0+b\) für \(t\in [t_0-\alpha,t_0+\alpha]\) mit \(0<\alpha\le a\), so ergibt sich aus obiger Voraussetzung für \(f(t,y(t))\), dass die Lösung im Intervall \([t_0-\alpha,t_0+\alpha]\) eine stetige Ableitungsfunktion \(\dot{y}(t)\) besitzt. Also lässt sich die Lösungsfunktion dort als Stammfunktion dieser Ableitung darstellen \[
y(t)=y_0+\int_{t_0}^t f(s,y(s))ds
\tag{7}\] Wobei \(t_0-\alpha\le t\le t_0+\alpha\) gilt. Dies bedeutet aber, dass jede Lösung des obigen Anfangswertproblems auch Lösung der Integralgleichung Gleichung 7 ist. Umgekehrt ist auch jede Lösung von Gleichung 7 Lösung des Anfangswertproblems.
Lösung durch Iteration
Wir schreiben nun die Integralgleichung Gleichung 7 in der Form \[
y(t)=\Phi[y(t)]\mbox{ mit } \Phi[y(t)]=y_0+\int_{t_0}^t f(s,y(s))\mathrm{d}s.
\tag{8}\]
NoteAnmerkung
In Gleichung 8 schreiben wir absichtlich \(\Phi[y]\), d.h. das \(y\) in eckigen Klammern geschrieben, weil \(\Phi[y]\) ein Funktional ist. Es hängt nicht nur vom Zeitpunkt \(t\) in der unabhängigen Variablen ab, sondern vom gesamten Verlauf der Funktion \(y(t)\). Wir werden in späteren Kapiteln darauf zurück kommen.
Die Lösung von Gleichung 8 sieht aus wie ein Fixpunkt \(y^*\) der Gleichung \(y=\varphi(y)\). Ein solcher Fixpunkt kann iterativ bestimmt werden. Wir starten bei einem Wert \(y_0\) und berechnen sukzessiv nach der Vorschrift \[y_{n+1} = \varphi(y_n).\] Für unser Funktional ist die Vorschrift äquivalent \[y_{n+1}(t) = \Phi[y_n(t)],\] nur das \(y_n\) eine Folge von Funktionen ist. Jetzt müssen wir nur noch zeigen, dass die Iteration konvergiert. Dies ist für die Lösung der Integralgleichung Gleichung 7 der Fall, wenn die Abbildung \(\Phi\) kontrahierend ist.
TipBeispiel
Die DGL (siehe ?@eq-ch11-relaxation) \[\dot x=-x(t)/\tau\] kann durch eine Fixpunktsuche gelöst werden. Wir starten mit \(x(t)=x_0\). In der ersten Iteration bekommen wir \[
x_1(t) = x_0 - \int_0^t \frac{x_0}{\tau} \mathrm{d}s = x_0 - \frac{x_0}{\tau} t.
\] Die zweite Iteration ist \[
x_2(t) = x_0 - \int_0^t \frac{x_1(t)}{\tau} \mathrm{d}s = x_0 - \frac{x_0}{\tau} t + \frac{x_0}{2\tau^2} t^2,
\] und die dritte Iteration \[
x_3(t) = x_0 - \int_0^t \frac{x_0-x_0t/\tau}{\tau} \mathrm{d}s = x_0 \left[1 - \frac{t}{\tau} + \frac{1}{2}\left(\frac{t}{\tau}\right)^2 - \frac{1}{3}\left(\frac{t}{\tau}\right)^3\right].
\] Die sind die ersten Summanden einer Taylorreihenentwicklung der Exponentialfunktion, d.h. die Lösung konvergiert auf \[
x(t) = x_0 \exp\left(-t/\tau\right),
\] exakt der Lösung die wir oben geraten hatten.
Separierbare Differentialgleichungen
Wir gehen von einer Differentialgleichung erster Ordnung und ersten Grades \[
p(t,y)+q(t,y)\dot{y}(t)=0
\] aus, die sich in der Form \[
p(t,y)\mathrm{d}t+q(t,y)\mathrm{d}y=0
\tag{9}\] schreiben lässt. Wir haben hier \(\mathrm{d}/\mathrm{d}t\) als Bruch behandelt und auseinandergezogen. Wobei \(p(t,y)\) und \(q(t,y)\) den gemeinsamen Definitionsbereich \(a\le t\le b\) und \(\alpha\le y\le\beta\) haben
TipBeispiel
Die Gleichung \[
\frac{\mathrm{d}y}{\mathrm{d}t}+\frac{y+t}{y-t}=0
\] kann mit \(p(t,y)=y+t\) und \(q(t,y)=y-t\) auf die Form \[
(y+t)\mathrm{d}t+(y-t)\mathrm{d}y=0
\] gebracht werden.
Den Spezialfall \[
p(t)+q(y)\dot{y}(t)=0
\tag{10}\] nennen wir eine Differentialgleichung mit getrennten Variablen.
Existieren für \(p\) und \(q\) im angegebenen Definitionsbereich die Integrale \(P\) und \(Q\), mit \(\dot{P}(t)=p(t)\) und \(\frac{\mathrm{d}Q}{\mathrm{d}y}=q(y)\) so ist \[
\mu(t,y)=P(t)+Q(y)=\mathrm{const.}
\] denn es ist wegen Gleichung 10\[
d\mu=\dot{P}(t)\mathrm{d}t+\frac{dQ(y)}{\mathrm{d}y}\mathrm{d}y=p(t)\mathrm{d}t+q(y)\mathrm{d}y=0
\]
TipBeispiel
Unsere ?@eq-ch11-relaxation, \[
\dot{x} = -x/\tau
\] separiert in \[
\frac{\mathrm{d} x}{x} = -\frac{\mathrm{d}t}{\tau},
\] was zu \[
\ln \frac{x}{x_0} = -\frac{t-t_0}{\tau}
\] integriert werden kann. Damit ist die Lösung dieser DGL \[
\frac{x(t)}{x_0} = \exp\left(-\frac{t-t_0}{\tau}\right),
\] identisch zu unseren geratenen und iterativen Lösungen.
Numerische Lösung mit scipy
Neben analytischen Lösungsverfahren können wir Differentialgleichungen auch numerisch lösen. Ein modernes und effizientes Werkzeug dafür ist die Funktion solve_ivp aus der scipy.integrate Bibliothek (Initial Value Problem Solver). Im Folgenden lösen wir die Relaxationsgleichung \(\dot{x} = -x/\tau\) numerisch und vergleichen die numerische Lösung mit der analytischen Lösung.
Code
import numpy as npimport matplotlib.pyplot as pltfrom scipy.integrate import solve_ivp# Definition der Differentialgleichung# solve_ivp erwartet: def f(t, y) wobei y ein Array [x1, x2, ...] istdef relaxation(t, y, tau):""" Differentialgleichung: dx/dt = -x/tau Args: t: Zeit (wird von solve_ivp übergeben) y: Array mit der aktuellen Lösung [x(t)] tau: Relaxationszeit Returns: Array mit den Ableitungen [dx/dt] """ x = y[0] dxdt =-x / taureturn [dxdt]# Parameter und initiale Bedingungentau =1.0x0 =1.0t_span = (0, 5) # Zeitintervallt_eval = np.linspace(0, 5, 100) # Punkte an denen Lösung berechnet wird# Numerische Lösung mit solve_ivp# Wir verwenden die RK45 Methode (Runge-Kutta Verfahren 4. und 5. Ordnung)solution = solve_ivp( relaxation, # Die Differentialgleichung t_span, # Zeitintervall [x0], # Initiale Bedingung args=(tau,), # Zusätzliche Argumente für die DGL-Funktion t_eval=t_eval, # Zeitpunkte für die Auswertung method='RK45', # Runge-Kutta Verfahren 4./5. Ordnung dense_output=True# Ermöglicht Auswertung an beliebigen Zeitpunkten)# Analytische Lösung zum Vergleichx_analytical = x0 * np.exp(-t_eval / tau)# Plotfig, (ax1, ax2) = plt.subplots(1, 2, figsize=(7, 4))# Plot 1: Vergleich numerische vs analytische Lösungax1.plot(t_eval, solution.y[0], 'o', markersize=4, label='Numerisch (solve_ivp)', color='red', alpha=0.7)ax1.plot(t_eval, x_analytical, '-', linewidth=2, label='Analytisch', color='blue')ax1.set_xlabel('Zeit $t$', fontsize=12)ax1.set_ylabel('Auslenkung $x(t)$', fontsize=12)ax1.set_title('Vergleich numerische und analytische Lösung', fontsize=13)ax1.grid(True, alpha=0.3)ax1.legend(fontsize=11)# Plot 2: Fehler zwischen numerischer und analytischer Lösungerror = np.abs(solution.y[0] - x_analytical)ax2.semilogy(t_eval, error, 'o-', markersize=4, color='purple', linewidth=1.5, label='Absoluter Fehler')ax2.set_xlabel('Zeit $t$', fontsize=12)ax2.set_ylabel('Fehler $|x_{\mathrm{num}} - x_{\mathrm{ana}}|$', fontsize=12)ax2.set_title('Fehler der numerischen Lösung', fontsize=13)ax2.grid(True, alpha=0.3, which='both')ax2.legend(fontsize=11)plt.tight_layout()plt.show()
Abbildung 3: Numerische Lösung der Relaxationsgleichung mit scipy.integrate.solve_ivp
Formulierung als System: solve_ivp erwartet, dass die DGL als System von Gleichungen erster Ordnung formuliert wird: \(\dot{\mathbf{y}} = \mathbf{f}(t, \mathbf{y})\). Unsere Gleichung \(\dot{x} = -x/\tau\) wird daher als [dx/dt] formuliert.
Numerische Methode: Wir verwenden die RK45 Methode (Runge-Kutta Verfahren 4./5. Ordnung), die automatisch die Schrittweite anpasst, um eine vorgegebene Genauigkeit zu erreichen.
Vergleich: Der rechte Plot zeigt, dass der numerische Fehler sehr klein ist (\(\sim 10^{-10}\)), was zeigt, dass solve_ivp sehr zuverlässig ist. Der Fehler wächst mit der Zeit leicht an, was typisch für numerische Verfahren ist.
Effizienz: Dies ist ein einfaches Problem mit einer bekannten analytischen Lösung. Für komplexere Probleme (z.B. nichtlineare DGLs oder Systeme) ist numerische Integration oft die einzige praktische Lösung.
Wie solve_ivp intern funktioniert werden wir zum Ende dieser Vorlesung behandeln.
Exakte Differentialgleichungen
Gegeben die Differentialgleichung in der Form wie in Gleichung 9 dargestellt. Ist \(p(t,y)\mathrm{d}t+q(t,y)\mathrm{d}y\) das vollständige Differential einer Funktion \(\mu(y,t)\), d.h. ist \[d\mu(y,t)=\frac{\partial\mu(y,t)}{\partial t}\mathrm{d}t+
\frac{\partial\mu(y,t)}{\partial y}\mathrm{d}y=p(t,y)\mathrm{d}t+q(t,y)\mathrm{d}y=0\] dann nennen wir Gleichung 9 eine exakte Differentialgleichung und \(\mu(y,t)=const.\) ist eine allgemeine Lösung. Damit Gleichung 9 eine exakte Differentialgleichung ist, muss die Bedingung \[
\frac{\partial p(t,y)}{\partial y}= \frac{\partial q(t,y)}{\partial t}
\tag{11}\] erfüllt sein (Warum?).
Nicht immer sieht man allerdings der Differentialgleichung die Exaktheit an. Selbst wenn wir sehen, dass Gleichung 9 keine exakte Differentialgleichung ist, da Gleichung 11 nicht erfüllt ist, gibt es aber unter Umständen die Möglichkeit eine Funktion zu finden, mit der man die Gleichung multiplizieren kann, sodass diese exakt wird.
NoteAnmerkung
\(3y\mathrm{d}t+2t\mathrm{d}y=0\) ist keine exakte Differentialgleichung. Multipliziert man aber \(\Xi(y,t)=t^2y\) mit dieser Gleichung, so erhält man \(3t^2y^2\mathrm{d}t+2t^3y\mathrm{d}y=0\). Dies kann man als vollständiges Differential der Funktion \(\mu(y,t)=t^3y^2\) schreiben und somit ist \(t^3y^2=C\) einen allgemeine Lösung der Differentialgleichung. Die Funktion \(\Xi(y,t)\) heißt integrierender Faktor.
Angenommen Gleichung 9 sei keine exakte Differentialgleichung, dann müssen wir einen solchen versuchen zu finden
Wenn \[\frac{\frac{\partial p(t,y)}{\partial y}-\frac{\partial q(t,y)}{\partial t}}{q(t,y)}=f(t)\] eine Funktion von t allein ist, dann ist \(e^{\int f(t)\mathrm{d}t}\) ein integrierender Faktor. Ebenso wenn \[\frac{\frac{\partial p(t,y)}{\partial y}-\frac{\partial q(t,y)}{\partial t}}{p(t,y)}=-g(y)\] nur eine Funktion von \(y\) ist, dann ist \(e^{\int g(y)\mathrm{d}y}\) ein integrierender Faktor.
Ist Gleichung 9 homogen, d.h. sind \(p(t,y)\) und \(q(t,y)\) homogene Funktionen vom selben Grad, und \(p(t,y) t+q(t,y) y\ne
0\), dann ist \(\frac{1}{p(t,y) t+q(t,y) y}\) ein integrierender Faktor.
Wenn Gleichung 9 in der Form \(y f(t y)\mathrm{d}t+t g(t y)\mathrm{d}y=0\) geschrieben werden kann, dann ist \(\frac{1}{t y(f(t y)-g(t y))}=\frac{1}{p t-q y}\) ein integrierender Faktor.
Durch genaues Hinschauen kann man durch Umgruppieren von Termen einen integrierenden Faktor finden, wenn man bestimmte Gruppen von Termen als Teil eines vollständigen Differentials identifiziert.
Dies wollen wir nicht vertiefen, da uns in den meisten Fällen nur Intuition weiterbringt.
Zusammenfassung
In diesem Kapitel haben wir mehrere Ansätze zur analytischen Lösung von Differentialgleichungen kennengelernt:
Iterative Lösung durch Fixpunktsuche: Wir können die DGL als Integralgleichung umformulieren und iterativ lösen. Dies zeigt, dass die Lösung einer DGL die Lösung einer Integralgleichung ist.
Separierbare Differentialgleichungen: Wenn wir eine DGL in der Form \(p(t)\mathrm{d}t + q(y)\mathrm{d}y = 0\) schreiben können, lässt sie sich durch Integration lösen. Die Relaxationsgleichung \(\dot{x} = -x/\tau\) ist ein Beispiel hierfür.
Numerische Lösung mit solve_ivp: Nicht immer ist eine analytische Lösung möglich oder praktisch. Mit modernen numerischen Methoden wie Runge-Kutta-Verfahren können wir DGLs zuverlässig und effizient lösen. Die Beispiele zeigen, dass numerische Lösungen sehr genau sind.
Exakte Differentialgleichungen: Wenn eine DGL die Form \(p(t,y)\mathrm{d}t + q(t,y)\mathrm{d}y = 0\) mit \(\frac{\partial p}{\partial y} = \frac{\partial q}{\partial t}\) hat, können wir eine Potentialfunktion \(\mu(t,y)\) finden, deren vollständiges Differential die DGL ist.
In der Praxis wählen wir die Lösungsmethode basierend auf der Form der DGL: