Definicja 13.13.
Ciąg określony w dowodzie twierdzenia Picarda
\( \displaystyle \left\{\begin{align*} & x_1(t)=x_0+\int_{t_0}^t f(s, x_0)ds \\ & x_2(t)=x_0+\int_{t_0}^t f(s, x_1(s))ds \\ & x_3(t)=x_0+\int_{t_0}^t f(s, x_2(s))ds \\ & \vdots \\ & x_{n+1}(t)=x_0+\int_{t_0}^t f(s, x_{n} (s))ds \\ & \vdots\end{align*} \right. \)
nazywamy ciągiem kolejnych
przybliżeń Picarda.
Większość metod numerycznych świetnie radzi sobie z wyznaczaniem przybliżonych rozwiązań równań różniczkowych, pod jednym jednak warunkiem: problem Cauchy'ego musi mieć jednoznaczne rozwiązanie. Nie będziemy rozwijać tego zagadnienia, prześledźmy jednak praktyczną realizację metody zawartej w dowodzie twierdzenia Picarda.
Przykład 13.14.
Wyznaczmy metodą Picarda rozwiązanie problemu Cauchy'ego
\( \displaystyle \left\{\begin{align*} & x'(t)\ = x(t) \\ & x(0)=1.\end{align*} \right. \)
Zgodnie z określeniem ciągu Picarda mamy
\( \begin{array}{lll} \displaystyle x_1 & =1+\int_0^t ds & =1+t \\ x_2 & =1+\int_0^t(1+s)ds & =1+t+\frac{1}{2}t^2 \\ x_3 & =1+\int_0^t(1+s+\frac{1}{2}s^2)ds & =1+t+\frac{1}{2}t^2+\frac{1}{6}t^3 \\ x_4 & =1+\int_0^t(1+s+\frac{1}{2}s^2+\frac{1}{6}s^3)ds & =1+t+\frac{1}{2}t^2+\frac{1}{6}t^3+\frac{1}{24}t^4 \\ & \vdots & & \\ x_{n} & =1+\int_0^t\bigg(\sum_{k=0}^{n-1}\frac{s^k}{k!}\bigg)ds & =\sum_{k=0}^{n}\frac{t^{k}}{k!} \\ x_{n+1} & =1+\int_0^t\bigg(\sum_{k=0}^n\frac{s^k}{k!}\bigg)ds & =\sum_{k=0}^{n+1}\frac{t^{k}}{k!} \\ & \vdots & & \end{array} \)
Jak łatwo zauważyć \( \displaystyle n \)-ty wyraz ciągu Picarda jest identyczny z \( \displaystyle n \)-tą sumą częściową szeregu definiującego funkcję wykładniczą
\( \displaystyle \exp t=\sum_{k=0}^\infty \frac{t^n}{n!}=1+t+\frac{1}{2}t^2+\frac{1}{6}t^3+\frac{1}{24}t^4+\dots+\frac{1}{n!}t^n+\dots \)
Ciąg \( \displaystyle x_n \) zmierza więc do funkcji \( \displaystyle x(t)=\exp t \), która jest
jedynym rozwiązaniem danego problemu Cauchy'ego.
Leonhard Euler (1707-1783)
Prześledźmy także na tym samym przykładzie inną metodę przybliżonego rozwiązywania problemu Cauchy'ego, zwaną metodą łamanych Eulera.
Uwaga 13.15.
Przypomnijmy, że na początku wykładu, omawiając proces stygnięcia (ogrzewania) substancji, zastąpiliśmy iloraz różnicowy
\( \displaystyle \frac{x(t+h)-x(t)}{h}\approx-\lambda (x(t)-x^*), \ \ x(t_0)=x_0, \)
równaniem różniczkowym
\( \displaystyle \frac{dx}{dt}(t)\ = -\lambda (x(t)-x^*), \ \ x(t_0)=x_0. \)
Odwróćmy teraz kolejność postępowania i lewą stronę równania różniczkowego w postaci normalnej
\( \displaystyle \frac{dx}{dt}=f(t,x), \ \ x(t_0)=x_0 \)
zastąpmy ilorazem różnicowym
\( \displaystyle \frac{x(t+h)-x(t)}{h}\approx f(t,x). \)
Stąd \( \displaystyle x(t+h)\approx x(t)+f(t,x)h. \)
Podzielmy przedział od \( \displaystyle t_0 \) do \( \displaystyle t \) na \( \displaystyle n \) równych części punktami
\( \displaystyle t_k:=t_0+\frac{k}{n}(t-t_0), \ \ \ k=0,1,2,\dots, n. \)
Określmy (skończony) ciąg punktów \( \displaystyle x_k \) następująco:
\( \displaystyle \left\{\begin{align*} & x_0=x(t_0) \\ & x_1=x_0+f(t_0, x_0)h \\ & x_2=x_1+f(t_1, x_1)h \\ & x_3=x_2+f(t_2, x_2)h \\ & \vdots \\ & x_{k+1}=x_k+f(t_k, x_k)h \\ & \vdots \\ & x_n=x_{n-1}+f(t_{n-1}, x_{n-1})h, \end{align*} \right. \)
biorąc stały przyrost \( \displaystyle h=\frac{t}{n} \):
\( \displaystyle h=t_1-t_0=t_2-t_1=t_3-t_2=\dots=t_{k+1}-t_k=\dots=t_n-t_{n-1}. \)
Wówczas \( \displaystyle x_k \) stanowi przybliżoną wartość rozwiązania równania w chwili \( \displaystyle t_k \), tj. \( \displaystyle x_k\approx x(t_k) \). Im gęściej podzielimy przedział od \( \displaystyle t_0 \) do \( \displaystyle t \) za pomocą punktów \( \displaystyle t_k \) (tzn. gdy \( \displaystyle n \) jest dużą liczbą), tym przybliżenie to jest lepsze. Łamaną, łączącą punkty \( \displaystyle (t_k, x_k) \) nazywamy łamaną Eulera. Stanowi ona przybliżenie wykresu \( \displaystyle t\mapsto x(t) \) rozwiązania danego
problemu Cauchy'ego w przedziale od \( \displaystyle t_0 \) do \( \displaystyle t \).
Przykład 13.16.
Zastosujmy opisany algorytm do znalezienia przybliżonej wartości rozwiązania problemu Cauchy'ego:
\( \displaystyle \left\{\begin{align*} & x'(t)\ = x(t) \\ & x(0)=1,\end{align*} \right. \)
który rozwiązaliśmy już metodą kolejnych przybliżeń Picarda. Określamy kolejne węzły łamanej Eulera:
\( \displaystyle \begin{align*} & x_0=x(t_0)=1 \\ & x_1=x_0+f(t_0, x_0)h=1+h \\ & x_2=x_1+f(t_1, x_1)h=1+h+(1+h)h=(1+h)^2 \\ & x_3=x_2+f(t_2, x_2)h=(1+h)^2+(1+h)^2 h=(1+h)^3 \\ & \vdots \\ & x_{k+1}=x_k+f(t_k, x_k)h=(1+h)^k+(1+h)^k h=(1+h)^{k+1} \\ & \vdots \\ & x_n=x_{n-1}+f(t_{n-1}, x_{n-1})h=(1+h)^n \end{align*} \)
Biorąc pod uwagę, że \( \displaystyle h=\frac{t}{n} \), otrzymujemy
\( \displaystyle x_n=\big(1+\frac{t}{n}\big)^n. \)
Stąd \( \displaystyle x_n (t)\approx \exp t \), gdyż ciąg \( \displaystyle \big(1+\frac{t}{n}\big)^n \) zmierza do \( \displaystyle \exp t \), gdy \( \displaystyle n\to\infty \).
Uwaga 13.17.
Metody przybliżone rozwiązywania równań różniczkowych są ważnym narzędziem ze względu na fakt, że wielu równań (co można wykazać) nie da się rozwiązać za pomocą metod dokładnych, w tym sensie, że nie istnieje algorytm o skończonej liczbie kroków,
którego wynikiem byłoby dokładne rozwiązanie równania.
Można na przykład wykazać, że nie da się wyrazić za pomocą skończonej liczby operacji na funkcjach elementarnych całek z funkcji
\( \displaystyle \exp(-x^2), \ \ \ \frac{\sin x}{x}, \ \ \ \frac{1}{\ln x}. \)
i wielu innych. Funkcje te pojawiają się w wielu ważnych zagadnieniach nauki, np. funkcja dana za pomocą całki oznaczonej
\( \displaystyle \Phi(x)=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^x \exp(-\frac{1}{2}t^2)dt \)
jest dystrybuantą rozkładu normalnego, jednego z najważniejszych rozkładów prawdopodobieństwa, który służy do modelowania wielu zjawisk w biologii, ekonomii i in.
Wracając do teorii równań różniczkowych, można na przykład wykazać, że nie da się elementarnie rozwiązać równania
\( \displaystyle x'=x^2-t \)
(przykład tego prostego równania podaje W.I.Arnold, Równania różniczkowe zwyczajne, Państwowe Wydawnictwo Naukowe, Warszawa 1975, s. 40). Zauważmy jednak, że funkcja \( \displaystyle f(t,x)=x^2 -t \) spełnia założenia twierdzenia Picarda w przedziałach \( \displaystyle -\infty < t < \infty \), \( \displaystyle -\infty < x < \infty \), a więc problem początkowy Cauchy'ego dla tego równania ma rozwiązanie i jest ono jedyne przy dowolnym warunku początkowym.
W kolejnym module dokonujemy przeglądu wybranych typów równań różniczkowych zwyczajnych, które można rozwiązać w sposób dokładny za pomocą algorytmu o skończonej liczbie etapów. Zwróćmy jednak uwagę, że nie istnieje jeden uniwersalny algorytm znajdowania rozwiązania równania różniczkowego (np. podobny do wzoru na pierwiastki trójmianu kwadratowego).