ODE (ang. ordinary differential equations) to angielski skrótowiec oznaczający „równania różniczkowe zwyczajne”.

Wykład

Prezentacja

Khan Academy

Równania różniczkowe pierwszego rzędu, a zwłaszcza: Wstęp do równań różniczkowych.

Quiz

  1. Jaki jest rząd następujących równań różniczkowych zwyczajnych:
    1.  \displaystyle \frac{dx}{dt} = x^2
    2.  \displaystyle \left(\frac{dx}{dt}\right)^2 = x
    3.  \displaystyle \frac{d^2x}{dt^2} = \left(\frac{dx}{dt}\right)^3
    4.  \displaystyle x +  \frac{dx}{dt} \cdot \frac{d^2 x}{dt^2} = 0
  2. Które z poniższych równań różniczkowych są liniowe?
    1.  \displaystyle \frac{dx}{dt} = 2x
    2.  \displaystyle \frac{dx}{dt} = 2x + 1
    3.  \displaystyle \frac{dx}{dt} = 2x^2 + x + 1
  3. Jak wygląda rozwiązanie ogólne równań postaci

        \[\frac{dx}{dt} = f(t)\]

  4. Przyporządkuj pola kierunków odpowiednim równaniom:

    1.  \displaystyle \frac{dx}{dt} = 1
    2.  \displaystyle \frac{dx}{dt} = t
    3.  \displaystyle \frac{dx}{dt} = \sin(x)
    4.  \displaystyle \frac{dx}{dt} = tx
  5. Na podstawie wykresu (z poprzedniego zadania) odpowiadającego równaniu \displaystyle \frac{dx}{dt} = 1 zaproponuj ogólną postać rozwiązania tego równania. Sprawdź, przez  bezpośrednie podstawienie swojej propozycji do równania, czy masz rację.
  6. Niech
    x = 1:1:100;
    y = 1:1:100;
    [xx, yy] = meshgrid(x, y);
    1. Z ilu elementów składa się obiekt xx?
    2. Jaka jest wartość wyrażenia xx(1,1)?
    3. Jaka jest wartość wyrażenia xx(17, 18)?
    4. Jaka jest wartość wyrażenia yy(17, 18)?
    5. Jaka jest wartość wyrażenia xx(1,:)?
    6. Jaka jest wartość wyrażenia xx(:,1)?
  7. Poniższy zrzut ze strony WolframAlpha sugeruje, że równanie  \displaystyle \frac{dy}{dx} =\sqrt{y-1} z warunkiem początkowym y(2) = 2 ma dwa rozwiązania: \displaystyle y(x) = \frac{x^2+4}{4} oraz \displaystyle  y(x) = \frac{x^2}{4} -2x + 5. Sprawdź, czy oba z nich rzeczywiście spełniają powyższe równanie różniczkowe w x=2.wa_err
  8. Poniższy zrzut ze strony WolframAlpha sugeruje, że jedynym rozwiązaniem równania  \displaystyle \frac{dy}{dx} =\sqrt{y-1} z warunkiem początkowym y(1) = 1 jest \displaystyle y(x) = \frac{x^2-2x+5}{4}. Sprawdź, że istnieje jeszcze jedno rozwiązanie tego problemu: y(x) = 1.
    wa_err2
  9. Rozpatrzmy prawą stronę równania różniczkowego z poprzedniego zadania, f(y,t)=\sqrt{y-1}.
    1. Czyf(y,t)=\sqrt{y-1} jest określona i ciągła w otoczeniu y=1, t=1?
    2. Czy jej pochodna, \frac{d\,f(y,t)}{d\,y} =\frac{1}{2\sqrt{y-1}}, też jest określona i ciągła w otoczeniu y=1, t=1?
    3. Jak odpowiedź na powyższe punkty ma się do liczby rozwiązań poprzedniego zadania?
  10. Co to jest, w kontekście równań różniczkowych:
    1. Efekt motyla
    2. Punkt stały
    3. Orbita
    4. Atraktor

Zadania

  1. Zapoznaj się z symulacją on-line atraktora Lorenza, http://www.malinc.se/m/Lorenz.php.
    • Poeksperymentuj z parametrami układu równań.
    • Jaki efekt ilustruje symulacja „niebieskich motyli” w „małym pudełku” (small cube)?
    • Jaki efekt ilustruje symulacja „niebieskich motyli” w „dużym pudełku” (large cube)?
  2. Rozwiąż równania Lorenza
    \displaystyle \begin{array}{rcl} \displaystyle \frac{dx}{dt} & = & -\sigma x + \sigma y \\[1.85ex] \displaystyle \frac{dy}{dt} & = & -xz + rx -y \\[1.85ex] \displaystyle \frac{dz}{dt} & = &  xy - bz \end{array}
    dla parametrów \sigma = 10, r=28, b = 2.5, z dowolnym warunkiem początkowym spełniającym 0 \le x,y,z \le 50. W tym celu:

    1. Skopiuj do swojego katalogu roboczego plik lorenz.m:
      function dx = lorenz (xx, t)
        dx = zeros(3,1);  # rezerwacja miejsca
        global sigma;
        global r;
        global b;
        x = xx(1);   # ułatwienie zapisu
        y = xx(2);
        z = xx(3);
        dx(1) = ... # uzupełnij
        dx(2) = ... # uzupełnij
        dx(3) = ... # uzupełnij
      endfunction

      i uzupełnij w nim definicję funkcji lorenz (trzy wykropkowane instrukcje) zgodnie z definicją równania różniczkowego.

    2. Skopiuj do swojego katalogu roboczego plik make_lorenz.m:
      global sigma;
      global r;   
      global b ;     
      sigma = ...; # uzupełnij
      r = ...; # uzupełnij
      b = ...; # uzupełnij
      
      x0 = ...;  # uzupełnij 
      y0 = ...;  # uzupełnij
      z0 = ...;  # uzupełnij
      
      N = 40000;
      t = linspace(0, 40, N);
      sol = lsode("lorenz", [x0, y0, z0], t);
      
      plot3(sol(1:N,1), sol(1:N,2), sol(1:N,3), "r", "linewidth", 2);
      xlabel("x", "fontsize", 15);
      ylabel("y", "fontsize", 15);
      zlabel("z", "fontsize", 15);
      set(gca, "fontsize", 16);
      

      i uzupełnij w nim wartości parametrów równania (\sigma, r, b) oraz warunku początkowego (x_0, y_0, z_0) i uruchom ten skrypt. Porównaj kształt rozwiązania z tym, jak generuje program z zadania 1.

    3. Wygeneruj rozwiązania dla dwóch zupełnie różnych warunków początkowych, np. (1, 1, 1) i (20, -20, 10). Czy oba zbiegają do tego samego atraktora?
    4. Wygeneruj rozwiązania dla dwóch bardzo bliskich siebie warunków początkowych (x_0, y_0, z_0), np. (1, 1, 1) oraz (1, 1, 1.000001).
      • Zbadaj różnicę między oboma rozwiązaniami w funkcji czasu, np. instrukcją
        plot(t, sol(:,1) - sol2(:,1));
      • Lepszy sposób to wykres półlogarytmiczny:
        semilogy(t, abs(sol(:,1) - sol2(:,1)));
  3.  (*) Zmiana prędkości pewnego samochodu od momentu wyłączenia silnika do chwili, w którym samochód się zatrzymuje, opisana jest równaniem

        \[\displaystyle \frac{dv}{dt} = -(b + c \cdot v^2),\]

    gdzie v jest prędkością samochodu w metrach na sekundę,  t – czasem wyrażonym w sekundach, b – współczynnikiem oporu dynamicznego, a c jest współczynnikiem oporu aerodynamicznego. Przyjmując b=0.12 oraz c=2.4\cdot 10^{-4}:

    1. Oszacuj czas, po jakim samochód się zatrzyma oraz drogę, jaką zdoła przejechać, jeśli jego prędkość początkowa wynosi 100 km/h.
    2. O ile zmieniłby się czas i droga do zatrzymania samochodu, gdyby zaniedbać opór powietrza, przyjmując c=0?