Übung - Allgemeine gewöhnliche Differentialgleichungen

Übung - Allgemeine gewöhnliche Differentialgleichungen

Code
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
import sympy as sp
Code
plt.rcParams['figure.figsize']=(5,3)

Aufgaben

Aufgabe ADG1: allgemeine und partikuläre Lösung

  1. Zeigen Sie, dass die Funktion y(x)=Cx1+x die allgemeine Lösung der Differentialgleichung x(1+x)y(x)y(x)=0 ist. Wie lautet die partikuläre Lösung zum Anfangswert y(1)=8? Erstellen Sie in Python einen Plot der partikulären Lösung.

  2. Die Aufladung eines Kondensators der Kapazität C ab dem Zeitpunkt t=0 über einen ohmschen Widerstand R auf die Endspannung u0 erfolgt nach dem Exponentialgesetz uC(t)=u0(1etRC). Skizzieren Sie die Funktion uC(t). Zeigen Sie, dass diese Funktion eine partikuläre Lösung der Differentialgleichung RCuC˙(t)+uC(t)=u0 ist, die diesen Einschaltvorgang beschreibt. Erstellen Sie in Python Plots der Funktion uC(t) für verschiedene Werte von C und R.

Quellen:

  1. Papula, Band 2, Kapitel IV Gewöhnliche Differentialgleichungen, Übungsaufgaben zu Abschnitt 1, Aufgabe 1
  2. Papula, Band 2, Kapitel IV Gewöhnliche Differentialgleichungen, Übungsaufgaben zu Abschnitt 1, Aufgabe 3

Aufgabe ADG2: Trennung der Variablen

Lösen Sie folgende DGL mit der Methode der Trennung der Variablen und überprüfen Sie jeweils Ihre Ergebnisse am Computer mittels SymPy.

  1. yy˙=tet
  2. y˙(1+t2)=ty

Quellen:

  1. Goldstein, Lay, Asmar, Schneider: Calculus & Its Applications, p.516
  2. Papula: Band 2, p.520

Aufgabe ADG3: Integration exakter DGL

Überprüfen Sie, ob die DGL exakt ist, und lösen Sie das Anfangswertproblem.

y˙=y22yt+1,y(1)=2

Quelle: Bronson: Schaum’s “Differential Equations”, p.36

Aufgabe ADG4: Exaktheit, allgemeine Lösung, Anfangswertproblem

Gegeben ist die Differentialgleichung y=2xy1+x2.

  1. Überprüfen Sie, ob die DGL exakt ist.
  2. Bestimmen Sie die allgemeine Lösung.
  3. Lösen Sie das Anfangswertproblem zur Anfangsbedingung y(2)=5.

Quelle: Bronson: Schaum’s “Differential Equations”, Aufgaben 5.2 und 5.11, S. 33 und 36

Aufgabe ADG5: Anfangswertproblem

Lösen Sie das folgende Anfangswertproblem yy=cos(2x),y(0)=1.

Aufgabe ADG6: Integration exakter DGL

Ist die Differentialgleichung y˙(t)=t+sin(y(t))2y(t)tcos(y(t)) exakt? Begründen Sie Ihre Antwort. Geben Sie die allgemeine Lösung der Differentialgleichung in impliziter Form an.

Aufgabe ADG7: Quadratischer Luftwiderstand

Ein Auto mit Masse m und Anfangsgeschwindigkeit v0 bewegt sich nur unter dem Einfluss des als quadratisch von der Geschwindigkeit abhängig angenommenen Luftwiderstands.

  1. Erklären Sie, warum die Geschwindigkeit v(t) des Autos die DGL v˙(t)=cmv(t)2 erfüllt.
  2. Lösen Sie das Anfangswertproblem und erstellen Sie einen Plot der Lösung in Python für vernünftige Werte der Parameter.

Aufgabe ADG8: Anfangswertproblem

Lösen Sie das Anfangswertproblem

y=xy,y(0)=1.

Quelle: Farlow: Introduction to Differential Equations. Example 3, p. 40f.

Lösungen

Lösung ADG1: allgemeine und partikuläre Lösung

  1. partikuläre Lösung: y(x)=16x1+x, Siehe Code.
  2. Einsetzen. Siehe Code.
Code
x = np.linspace(1, 10)
y = 16*x/(1 + x)

plt.figure()
plt.plot(x, y,'r')
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True)

Code
t = np.linspace(0, 10)
R = 1
C = 1
u0 = 1
u = u0*(1 - np.exp(-t/(R*C)))

plt.figure()
plt.plot(t, u,'r')
plt.xlabel('t')
plt.ylabel('u')
plt.grid(True)

Lösung ADG2: Trennung der Variablen

Code
t = sp.symbols('t')
y = sp.symbols('y', cls=sp.Function)
Code
sp.init_printing()
diffeq = sp.Eq(y(t)*y(t).diff(t), t*sp.exp(t))
diffeq

y(t)ddty(t)=tet

Code
sp.dsolve(diffeq, y(t))

[y(t)=2C1+tetet, y(t)=2C1+tetet]

Code
diffeq = sp.Eq(y(t).diff(t)*(1 + t**2), t*y(t))
diffeq

(t2+1)ddty(t)=ty(t)

Code
sp.dsolve(diffeq, y(t))

y(t)=C1t2+1

Code
sp.init_printing(False)

Lösung ADG3: Integration exakter DGL

Code
sp.init_printing(use_unicode=True)

diffeq = sp.Eq(y(t).diff(t), -y(t)**2/(2*y(t)*t + 1))
diffeq

ddty(t)=y2(t)2ty(t)+1

Code
sp.dsolve(diffeq, y(t))

[y(t)=C1t+112t, y(t)=C1t+112t]

Code
sp.init_printing(False)

Lösung ADG4: Exaktheit, allgemeine Lösung, Anfangswertproblem

  1. ist exakt
  2. y=C11+x2
  3. y=25x2+1

Lösung ADG5: Anfangswertproblem

y(x)=sin(2x)+1

Lösung ADG6: Integration exakter DGL

t22+tsin(y)y2=c

Lösung ADG7: Quadratischer Luftwiderstand

Code
t = np.linspace(0, 60*5) # seconds
v0 = 30               # meters per second
m = 1000              # kg
c = 1.0

v = v0/(1 + c*v0/m*t)

plt.figure()
plt.plot(t, v,'r')
plt.xlabel('t')
plt.ylabel('v')
plt.grid(True)

Lösung ADG8: Anfangswertproblem

ist exakt, y=1x2