Differentialgleichungen

Needs["Graphics`PlotField`"]

DirectionField[DE_, y_[x_], {x_, a_, b_}, {y_, c_, d_}, options___] := 
      Module[{g}, 
g = 
          DE[[2 ]] /. 
            y[x] -> y; 
PlotVectorField[{1, g}, {x, a, 
            b}, {y, c, d}, options]
]

Beispiel 1.19

a = Sin[x]; b = Sin[x];

DE = y'[x] + a y[x] == b

plot1 = 
      DirectionField[Solve[DE, y'[x]][[1, 1]], 
        y[x], {x, -5, 5}, {y, -1, 5}, Frame -> True]

Allgemeine Lösung der homogenen Differentialgleichung:

hom = 
      y1 -> 
        K*(E^(∫-a \[DifferentialD]x))

Variation der Konstanten:

∫b (E^(∫a \[DifferentialD]x)) \[DifferentialD]x

Spezielle Lösung der inhomogenen Differentialgleichung:

var = 
      y2 -> (E^(∫-a \[DifferentialD]x))*∫b (E^(∫a \[DifferentialD]x)) \[DifferentialD]x

Allgemeine Lösung der inhomogenen Differentialgleichung:

lösung = y -> y1 + y2 /. {hom, var}

Wir lösen das Anfangswertproblem mit y(0)=3:

Solve[(lösung[[2]] /. {x -> 0}) == 3, 
      K]

oder mit DSolve

lösung = DSolve[{DE, y[0] == 3}, y[x], x]

Simplify[lösung]

plot2 = 
      Plot[Evaluate[y[x] /. lösung[[1]]], {x, -5, 5}, 
        PlotStyle -> Thickness[0.005]]

Show[plot1, plot2, PlotRange -> {-1, 5}]

Beispiel 1.20

(a)

a = 1; b = (x^3) (E^(-x)) + 1;

DE = y'[x] + a y[x] == b

sol = Solve[DE, y'[x]][[1, 1]]

plot1 = 
      DirectionField[Solve[DE, y'[x]][[1, 1]], 
        y[x], {x, -5, 5}, {y, -1, 5}, Frame -> True, 
        PlotPoints -> 30]

Allgemeine Lösung der homogenen Differentialgleichung:

hom = 
      y1 -> 
        K*(E^(∫-a \[DifferentialD]x))

Variation der Konstanten:

∫b (E^(∫a \[DifferentialD]x)) \[DifferentialD]x // Simplify

Spezielle Lösung der inhomogenen Differentialgleichung:

var = 
      y2 -> 
        Simplify[(E^(∫-a \[DifferentialD]x))*∫b (E^(∫a \[DifferentialD]x)) \[DifferentialD]x]

Allgemeine Lösung der inhomogenen Differentialgleichung:

lösung = y -> y1 + y2 /. {hom, var}

Wir lösen mit DSolve:

lösung = DSolve[{DE, y[0] == 1}, y[x], x]

Limit[y[x] /. lösung[[1]], 
      x -> ∞]

Limit[b, x -> ∞]/a

plot2 = 
      Plot[Evaluate[y[x] /. lösung[[1]]], {x, -5, 5}, 
        PlotStyle -> Thickness[0.005]]

Show[plot1, plot2, PlotRange -> {-1, 5}]

(b)

a = 1; b = (1/(1 + (x^2)));

DE = y'[x] + a y[x] == b

plot1 = 
      DirectionField[Solve[DE, y'[x]][[1, 1]], 
        y[x], {x, -5, 5}, {y, -1, 5}, Frame -> True, 
        PlotPoints -> 30]

Allgemeine Lösung der homogenen Differentialgleichung:

hom = 
      y1 -> 
        K*(E^(∫-a \[DifferentialD]x))

Variation der Konstanten:

∫b (E^(∫a \[DifferentialD]x)) \[DifferentialD]x

Spezielle Lösung der inhomogenen Differentialgleichung:

var = 
      y2 -> 
        Simplify[(E^(∫-a \[DifferentialD]x))*∫b (E^(∫a \[DifferentialD]x)) \[DifferentialD]x]

Allgemeine Lösung der inhomogenen Differentialgleichung:

lösung = y -> y1 + y2 /. {hom, var}

Wir lösen mit DSolve:

lösung = DSolve[{DE, y[0] == 1}, y[x], x]

Limit[y[x] /. lösung[[1]], 
      x -> ∞]

Limit[b, x -> ∞]/a

plot2 = 
      Plot[Evaluate[y[x] /. lösung[[1]]], {x, -5, 5}, 
        PlotStyle -> Thickness[0.005]]

Show[plot1, plot2, PlotRange -> {-1, 5}]

Ähnlichkeitsdifferentialgleichungen

Beispiel 2.2

DE = y'[x] == -(E^(-y[x]/x)) + 
          y[x]/x

DSolve[DE, y[x], x]

nach Transformation

DE2 = u'[
          x] == ((-(E^(-u[x])) + u[x] - u[x])/x)

DSolve[DE2, u[x], x]

Beispiel 2.3

DE = y'[x] == y[x]/x - (x/y)[x]

DSolve[DE, y[x], x]

nach Transformation

DE2 = u'[x] == ((u[x] - (1/u)[x] - u[x])/x)

DSolve[DE2, u[x], x]

Weiteres Beispiel

DE = y'[x] == ((1 + y[x]/x)/(1 - y[x]/x))

plot1 = 
      DirectionField[Solve[DE, y'[x]][[1, 1]], 
        y[x], {x, -5, 5}, {y, -5, 5}, Frame -> True]

Eine spezielle Lösung findet Mathematica nicht.

DSolve[{DE, y[-2] == 1}, y[x], x]

aber eine implizite Form der allgemeinen Lösung

lösung = DSolve[DE, y[x], x]

graphische Darstellung der allgemeinen Lösung

sol=Solve[(1/2) log((((y(x))^2)/(x^2)) + 
                      1) - (tan^(-1))(((y(x))/x))==(Subscript[c, 1])-log(x),C [1]]

Evaluate[C [1] /. sol[[1]] /. {y[x] -> y}]

ContourPlot[
      Evaluate[C [1] /. sol[[1]] /. {y[x] -> y}], {x, -5, 
        5}, {y, -5, 5}]

plot2 = 
      ContourPlot[
        Evaluate[
          Exp[C [1] /. sol[[1]] /. {y[x] -> y}]], {x, -5, 
          5}, {y, -5, 5}, PlotPoints -> 100, 
        ColorFunction -> Hue]

Show[plot2, plot1]

nach Transformation

DE2 = u'[x] == 
        Together[((((1 + u[x])/(1 - u[x])) - u[x])/x)]

lösung = DSolve[DE2, u[x], x]

Linear transformierte Differentialgleichungen

Beispiel 2.4

DE = y'[x] == (((2  x + y[x]))^2)

DSolve[DE, y[x], x]

nach Transformation

DE2 = u'[x] == 2 + (((u[x]))^2)

DSolve[DE2, u[x], x]

Einsetzen der selbst bestimmten Lösung:

lösung = 
      y[x] -> (Sqrt[2]) Tan[(Sqrt[2]) (x + C)] - 2  x

DE /. {lösung, D[lösung, x]}

DE /. {lösung, D[lösung, x]} // 
      Simplify