Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałKlementyna Rękawek Został zmieniony 10 lat temu
1
Wprowadzenie do ciągłych układów dynamicznych
Systemy wspomagania decyzji WSB, Nowy Sącz
2
Równaniem różniczkowym zwyczajnym rzędu pierwszego nazywamy równanie postaci
gdzie jest daną funkcją. Rozwiązaniem takiego równania nazywamy każdą funkcję y(t), która jest różniczkowalna i spełniania równość Ponieważ pochodna funkcji mierzy szybkość zmiany funkcji względem jej argumentu, więc pochodna względem czasu oznacza szybkość zmiany w czasie. Możemy więc na równanie różniczkowe patrzeć jak na regułę, która opisuje ewolucję jakiejś wielkości w czasie. Uwaga. Pochodna funkcji może być też oznaczana przez dy/dt. Wtedy równanie rózniczkowe zapiszemy następujaco:
3
Przykład Rozważmy równanie Przykładowe rozwiązanie
Sprawdzamy przez podstawienie Podane rozwiązanie nie jest jedyne, gdyż na przykład funkcja też spełnia to równanie.
4
Przykład Rozważmy równanie Sprawdzamy, że funkcja jest rozwiązaniem:
W ogólnym przypadku każda funkcja postaci jest rozwiązaniem tego równania.
5
Powyższe przykłady pokazują, że samo równanie różniczkowe (reguła opisująca szybkość zminy) nie jest wystarczające, aby jednoznacznie zdeterminować ewolucje układu. Zagadnieniem początkowym (zagadnieniem Cauchy’ego) nazywamy następujące równanie gdzie są danymi liczbami (warunek początkowy), a jest daną funkcją. Warunek początkowy y(t0)=y0 określa jaki był stan układu w chwili początkowej t=t0.
6
Przykład Jakie jest rozwiązanie zagadnienia Cauchy’ego
Rozwiązanie ogólne równania y’ = t y ma postać Podstawiamy warunek początkowy y(0)=2, co daje C=2. Zatem rozwiązaniem zagadnienia Cauchy’ego jest funkcja
7
Przykład Jakie jest rozwiązanie zagadnienia Cauchy’ego
Rozwiązaniem problemu jest funkcja stale równa zero Ale rozwiązaniem jest także funkcja Mamy zatem przykład niejednoznaczności rozwiązania!
8
Metoda rozdzielania zmiennych
Rozważmy równanie o rozdzielonych zmiennych Rozwiązywanie możemy symbolicznie opisać następująco
9
Przykład Znaleźć rozwiązanie równania co daje a więc rozwiązaniem jest
10
Ogólne równanie liniowe
Rozwiązujemy najpierw równanie jednorodne: Teraz stałą „uzmienniamy”, czyli traktujemy jak funkcję Podstawiamy do wyjściowego równania i uzyskujemy elementarne równanie na C(t).
11
Przykład Rozwiązujemy: Uzmienniane stałej Ostatecznie
12
Równanie logistyczne Wzrost populacji można scharkteryzować podając współczynnik urodzeń b oraz współczynnik zgonów d. Wtedy współczynnik wzrostu populacji jest r=b-d. Na tej podstawie można napisać najprostrze równanie opisujące zmianę ilościową populacji: Rozwiązaniem tego równania jest funkcja Sens parametru C jest jasny: jest to początkowa wielkość populacji, C=y(0). Może więc napisać gdzie y0 jest wielkością populacji w chwili t=0.
13
Równanie logistyczne (c.d.)
Modyfikujemy założenie odnośnie współczynnika zgonów d: tzn. zakładamy, że nie jest on stały, ale rośnie wraz z liczebnością populacji. Pełne równanie dynamiczne opisujące ewolucję pupulacji ma teraz postać: Równanie to nazywa się równaniem logistycznym. Opisuje ono dość dobrze ewolucję pojedynczej populacji w środowisku o ograniczonych zasobach (np. hodowla bakterii). Wykres rozwiązania y=y(t) równania logistycznego dla a=2 oraz b=3 i czasu -3 t 5.
14
w środowisku Mathematica
Przykładowa implementacja symulacji w środowisku Mathematica
15
Synteza bromowodoru z pierwiastków
Synteza bromowodoru z pierwiastków jest reakcją złożoną o sumarycznym równaniu W roku 1906 wyznaczono eksperymetalnie następujące równanie kinetyczne tej reakcji Czasami równanie to jest zapisywane równoważnie tak Stałe kinetyczne k1 oraz k2 zależą od warunków przebiegu reakcji (temperatura, ciśnienie itp.). Eksperymetalnie wyznaczono, że w zwykłych warunkach k2≈0,1.
16
Synteza bromowodoru z pierwiastków (c.d.)
Wprowadzamy oznaczenie y(t) = [HBr] oraz uwzględniamy bilans masy w równaniu co daje dodatkowe zależności Po podstawieniu do równania kinetycznego na d[HBr]/dt otrzymamy
17
Synteza bromowodoru z pierwiastków (c.d.)
Przeprowadzając symulację podanego układu dynamicznego możemy precyzyjnie przewidzieć ewolucję stężenia składników – a w szczególności przewidziec czas trwania reakcji.
18
Synteza bromowodoru z pierwiastków (c.d.)
Zasadniczy fragment kodu w środowisku MATLAB, który dokonuje symulacji podanego przykładu ma postać: Obliczenia wykonane są przez procedurę ode45, które implementuje jedną z najważniejszych metod numerycznych rozwiązywania układów dynamicznych – metodę Rungego-Kutty-Fehlberga 4-tego rzędu z adaptacyjnym krokiem całkowania.
19
z warunkami początkowymi:
W ogólnym przypadku możemy mieć n wielkości (niewiadomych) funkcji y1(t),…,yn(t), których ewolucja czasowa jest powiązana. Oznacza to, że dane jest n równań równań rózniczkowych zwyczajnych (tzn. układ równań): z warunkami początkowymi: gdzie liczby są dane.
20
Równania Lotki — jedna reakcja autokatalityczna
Rozważny następującą sekwencję reakcji elementarnych: Powyższy mechanizm opisuje ostatecznie sumaryczną reakcję A B. Z postaci tego mechanizmu możemy postulować następujący układ równań różniczkowych zwyczajnych
21
Równania Lotki — jedna reakcja autokatalityczna
Wprowadzając wygodniejsze oznaczenia: Możemy układ ten przepisać w następującej formie: Główna część kodu w języku środowiska MATLAB do symulacji układu równań Lotki:
22
Równania Lotki — jedna reakcja autokatalityczna
Symulacje numeryczne Modelu Lotki w MATLAB-ie dla następujących parametrów: Czas symulacji przyjmiemy tend =5·105. Zastosowanie standardowej procedury ode45 (implementujacej metodę Rungego-Kutty 4-tego rzędu) z domyślnymi ustwieniami tolerancji błędów dla przypadku a) daje wyniki:
23
Równania Lotki — przykładowy portret fazowy
Poniżej jest przedstawiony portret fazowy układu Lotki dla danych z punktu a). Portret fazowy oznacza, że rysujemy wyniki obliczeń w układzie y1-y2. Tzn. na osi OX odkładane są wartości y1(t), a na osi OY wartości y2(t).
24
Równania Lotki-Volterry (dwie reakcje autokatalityczne)
Jest to model podobny do modelu Lotki, ale tym razem występują dwie reakcje autokatalityczne: Sekwencja opisuje sumaryczną reakcję AB. Z postaci powyższego mechanizmu możemy postulować następujący układ równań różniczkowych zwyczajnych
25
Równania Lotki-Voltery (dwie reakcje autokatalityczne – c.d.)
W układzie reakcji Lotki-Voltery zakładamy, że stężenie reagenta A jest stałe: [A]=const. Wprowadzając wygodne oznaczenia: [X]=y1(t), [Y]=y2(t), [A]=a możemy układ równań zapisać następująco: Układ ten ma ciekawą własność – występują w nim rozwiązania okresowe. Dokładnej, dla każdej pary warunków początkowych y1(0)=y10 > 0, y2(0)=y20 > 0 rozwiązania y1(t), y2(t) istnieją dla wszystkich t 0 i są funkcjami okresowymi.
26
Układ Lotki-Volterry jako prosty model drapieżnik-ofiara
Ten sam układ równań może być wykorzystany do opisu prostego modelu interakcji pomiędzy dwoma populacjami: ofiar i drapieżników. gdzie
27
Układ Lotki-Volterry – przykładowe symulacje
Do obliczeń weźmiemy następujące dane:
28
Przykłady zastosowań układów dynamicznych
Mechanika – ruch ciał niebieskich, tory pocisków, sterowanie sonadmi kosmicznymi. Teoria obwodów elektrycznych – analiza modeli liniowych, oscylator van der Pola, generatory drgań sinusoidalnych. Modele dynamiczne w biologii – ewolucja populacji, modele drapieżnik ofiara, model Maya (ulepszony model Volterry-Lotki), model Zeemana pracy serca, potencjał czynnościowy w komórkach układu nerwowego. Modele dynamiczne w ekonomii – proste modele wzrostu, modele cyklu ekonomicznego.
29
Bruselator Jest to teoretyczny model dla autokatalitycznej reakcji z wszystkimi etapami nieodwracalnymi i takimi samymi stałymi szybkości k1=k2=k3=k4=1. Procesem sumarycznym jest: A+BD+E. Powyższy mechanizm prowadzi do następującego układu, gdy szybkość reakcji jest określona przez postacie reakcji
30
Wprowadzamy wygodniejsze oznaczenia:
Parametry a i b są dodatnimi stałymi. Niewiadomymi są funkcje y1=y1(t), y2=y2(t). Równania opisujące Bruselator mają teraz postać: Powyższy układ równań generuje rozwiązania, których jakościowy charakter może istotnie się różnić w zależności od wzajemnej relacji parametrów a i b. W szczególności punkt stacjonarny tego układu staje się niestabilny gdy
31
Przykładowe dane do modelu Bruselator
W obu przypadkach czas procesu tend = 120. a) b)
32
Metoda jawna Eulera: Metoda niejawna Eulera: Metoda Rungego-Kutty 2-go rzędu: Metoda Rungego-Kutty 4-go rzędu: gdzie:
33
Równania drugiego rzędu
Rozważmy równanie ruchu wahadła matematycznego ((t)=kąt wychylenia): Wprowadzając w2=g/l otrzymujemy Zamieniamy na układ wprowadzając:
34
Równanie van der Pola Równanie to zostało pierwotnie zaproponowane do opisu pewnego układu elektronicznego składającego się z obwodu rezonansowego RLC sprzężonego indukcyjnie z cewką. Przez cewkę płynie prąd zależny do napięcia nieliniowo. Dokładniej była to zależność trzeciego stopnia: Stosując prawa Kirchoffa do tego układu i wprowadzając przeskalowane nowe zmienne otrzymujemy standardowe równanie różniczkowe zwyczajne: gdzie y=y(t) jest funkcją czasu, a stała 0 charakteryzuje wielkość tłumienia. Równoważny układ równań pierwszego rzędu to:
35
Numeryczne rozwiązywanie problemu początkowego dla równań różniczkowych w MATLAB-ie
Środowisko MATLAB oferuje wiele numerycznych procedur rozwiązywania układów równań różniczkowych zwyczajnych. Do większości problemów – w szczególności takich, które nie są sztywne – wystarczy używać funkcji ode23 lub ode45. Obie funkcje implementują odpowiednie wersje metody Rungego-Kutty. W pierwszym przypadku są wykorzystywane metody RK drugiego i trzeciego rzędu, a w drugim – metody czwartego i piątego rzędu. W obu przypadkach stosowany jest zmienny krok całkowania (adaptacja kroku w zależności od lokalnie oszacowanego błędu). Dla problemów sztywnych mozna stosować np. procedurę ode23s. Układy równań mogą mieć postać jawną lub postać uwikłaną liniowo gdzie
36
Przykład Numeryczne całkowanie pojedynczego równania różniczkowego zwyczajnego Rozważmy zagadnienie początkowe Aby móc użyć procedurę ode23 lub ode45 należy zdefiniować prawą stronę równania, czyli f(t,y)=y(2-y). Można to zrobić w postaci tzw. funkcji anonimowej lub zawierając definicję funkcji w osobnym pliku. Przykład z funkcją anonimową i komendą w wierszu interpretera poleceń podany jest poniżej. Przedział całkowania to [0, 10], a warunek początkowy to y(0)=1.2.
37
Po wykonaniu poleceń w takiej formie jak widzimy na obrazie, MATLAB wyświetli rozwiązanie na wykresie, czyli zbiór punktów (t,y(t)) dla t[0, 10].
38
Drugi sposób definiowanie prawej strony zagadnienie początkowego polega na wpisaniu definicji funkcji do odrębnego pliku .m i wykorzystaniu go w procedurze ode23 (lub ode45). W oknie MATLAB-a klikamy ikonkę New Script i wpisujemy tam definicję funkcji, a następnie zapisujemy w bieżącym (lub wybranym przez nas) katalogu. Domyślna nazwa pliku jest taka sama jak nazwa funkcji plus rozszerzenie .m. W naszym przypadku będzie to f.m. Po zapisaniu prawej strony układu w pliku f.m możemy uruchomić procedurę numerycznego całkowania równania:
39
Ewolucja czasowa i portrety fazowe
Przykładowe rozwiązania y1(t), y2(t) oraz portret fazowy dla układu Lotki-Volterry.
40
Ewolucji populacji z uwzględnieniem dyfuzji – model Fishera
Założenia: Wystepuje tylko jeden gatunek. Problem jest jednowymiarowy (stworzenia żyją na linii prostej) ograniczony do skończonego odcinka. Gdyby nie było tłoku, to układ rozwijał by się zgdonie z modelem logistycznym. Na skutek tłoku osobniki mają tendencję do migracji z obszarów o dużym zagęszczeniu do obszarów o mniejszym zagęszczeniu. Tempo migracji jest proporcjonalne do gradientu gęstości populacji. Współczynnik tego tempa nazywamy współczynnikiem dyfuzji i oznaczamy przez D. Niech c(x,t) oznacza gęstość osobników w punkcie x w momencie czasu t. Wtedy możemy rozważać model opisany równaniem
41
Matematyczny opis modelu Fishera
Niech c(x,t) oznacza gęstość osobników w punkcie x w momencie czasu t. Wtedy możemy rozważać model opisany równaniem z warunkami brzgowymi Ponadto zakładamy, że znamy początkowy rozkład populacji c0(x):
42
NDSolve[{równania, warunki}, {t, tmin, tmax}]
Ciągłe układy dynamiczne w środowisku Mathematica W środowisku Mathematica do numerycznego rozwiązywania układów dynamicznych służy funkcja NDSolve. Podstawowa składnia ma postać: NDSolve[{równania, warunki}, {t, tmin, tmax}] Przykład 1: sol=NDSolve[{y'[t]==y[t]Cos[t+y[t]],y[0]==1}, y, {t, 0, 30}] Plot[Evaluate[y[t]/.sol], {t, 0, 30}, PlotRange->All] Przykład 2: sol=NDSolve[{x'[t] == -y[t] - x[t]^2, y'[t] == 2x[t] - y[t]^3, x[0]==y[0]==1}, {x, y}, {t, 20}] ParametricPlot[Evaluate[{x[t], y[t]} /. sol], t, 0, 20}]
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.