Języki Modelowania i Symulacji

Podobne dokumenty
Politechnika Wrocławska, Wydział Informatyki i Zarządzania. Modelowanie

INSTRUKCJA DO ĆWICZENIA NR 7

Lista nr 1 - Liczby zespolone

Obliczenia iteracyjne

Definicje i przykłady

III. Układy liniowe równań różniczkowych. 1. Pojęcie stabilności rozwiązań.

II. Równania autonomiczne. 1. Podstawowe pojęcia.

Wprowadzenie do Mathcada 1

Inżynieria Systemów Dynamicznych (4)

OBLICZANIE POCHODNYCH FUNKCJI.

Lista zadań nr 2 z Matematyki II

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 4. Równania różniczkowe zwyczajne podstawy teoretyczne

Zadanie 1. Wektor naprężenia. Tensor naprężenia. Zależność wektor-tensor.

Wstęp do równań różniczkowych

Drgania poprzeczne belki numeryczna analiza modalna za pomocą Metody Elementów Skończonych dr inż. Piotr Lichota mgr inż.

Modelowanie wybranych zjawisk fizycznych

dr inż. Damian Słota Gliwice r. Instytut Matematyki Politechnika Śląska

Wykład Matematyka A, I rok, egzamin ustny w sem. letnim r. ak. 2002/2003. Każdy zdający losuje jedno pytanie teoretyczne i jedno praktyczne.

IX. Rachunek różniczkowy funkcji wielu zmiennych. 1. Funkcja dwóch i trzech zmiennych - pojęcia podstawowe. - funkcja dwóch zmiennych,

Języki Modelowania i Symulacji

Analiza matematyczna 3

Matematyka 2. Równania różniczkowe zwyczajne rzędu drugiego

x y

Opis systemów dynamicznych w przestrzeni stanu. Wojciech Kurek , Gdańsk

Zaawansowane metody numeryczne

INSTRUKCJA DO ĆWICZENIA NR 5

Komputerowa analiza zagadnień różniczkowych 10. Dwupunktowe problemy brzegowe (BVP, Boundary Value Problems)

Wstęp do równań różniczkowych

ALGEBRA Z GEOMETRIĄ ANALITYCZNĄ zadania z odpowiedziami

1 Funkcje dwóch zmiennych podstawowe pojęcia

Zadania do wykładu Jakościowa Teoria Równań Różniczkowych Zwyczajnych

Procedura modelowania matematycznego

Egzamin z Metod Numerycznych ZSI, Grupa: A

Politechnika Wrocławska, Wydział Informatyki i Zarządzania. Modelowanie

(8) Oblicz wyznacznik dowolnie wybranej macierzy stopnia czwartego. (9) Rozwi aż podany układ równań stosuj ac wzory Cramera:

Dwa przykłady z mechaniki

Przekształcanie równań stanu do postaci kanonicznej diagonalnej

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Geometria Lista 0 Zadanie 1

METODY OBLICZENIOWE. Projekt nr 3.4. Dariusz Ostrowski, Wojciech Muła 2FD/L03

Modelowanie rynków finansowych z wykorzystaniem pakietu R

3 1 + i 1 i i 1 2i 2. Wyznaczyć macierze spełniające własność komutacji: [A, X] = B

Obliczenia naukowe Wykład nr 8

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.

Równania różniczkowe cząstkowe drugiego rzędu

RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE zadania z odpowiedziami

Opracowanie: mgr Jerzy Pietraszko

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

ELEKTROTECHNIKA Semestr 1 Rok akad / ZADANIA Z MATEMATYKI Zestaw Przedstaw w postaci algebraicznej liczby zespolone: (3 + 2j)(5 2j),

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

1 Układy równań liniowych

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

Równania różniczkowe zwyczajne

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Równania różniczkowe zwyczajne Zadania z odpowiedziami

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Równania różniczkowe zwyczajne zadania z odpowiedziami

Wykład z modelowania matematycznego.

Egzamin test GRUPA A (c) maleje na przedziale (1, 6). 0, ,5 1

Kinematyka: opis ruchu

Podstawy Automatyki. Wykład 2 - podstawy matematyczne. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Algebra z geometrią analityczną zadania z odpowiedziami

Komputerowa analiza zagadnień różniczkowych 3. Metody Eulera, metody punktu środkowego i metody trapezowe

Algebra z geometrią analityczną zadania z odpowiedziami

= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3

czyli o szukaniu miejsc zerowych, których nie ma

Metody numeryczne. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50

Interpolacja. Interpolacja wykorzystująca wielomian Newtona

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 5. Terminologia. Metody Eulera, metody punktu środkowego i metody trapezowe

MECHANIKA II. Dynamika ruchu obrotowego bryły sztywnej

Równania nieliniowe. LABORKA Piotr Ciskowski

Równania różniczkowe zwyczajne. 1 Rozwiązywanie równań różniczkowych pierwszego rzędu

Arkusz 6. Elementy geometrii analitycznej w przestrzeni

Komputerowa analiza zagadnień różniczkowych 1. Równania różniczkowe zwyczajne podstawy teoretyczne. P. F. Góra

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

Komputerowa analiza zagadnień różniczkowych 3. Metody Eulera, metody punktu środkowego i metody trapezowe

Komputerowa analiza zagadnień różniczkowych 2. O tym, co można rozwiazać analitycznie. P. F. Góra

Wstęp do metod numerycznych 14. Kilka wstępnych uwag na temat numerycznego rozwiazywania równań różniczkowych zwyczajnych

Elementy geometrii analitycznej w R 3

Wykład X Rozwiązywanie zagadnień początkowych dla równań różniczkowych zwyczajnych

Funkcje dwóch zmiennych

Układy równań liniowych. Krzysztof Patan

Modyfikacja schematu SCPF obliczeń energii polaryzacji

Zadania z algebry liniowej Iloczyn skalarny, przestrzenie euklidesowe

Matlab (5) Matlab równania różniczkowe, aproksymacja

Fale biegnące w równaniach reakcji-dyfuzji

Rozwiązywanie równań różniczkowych zwyczajnych za pomocą komputera

(a b 1 2); : ( b a + b ab 2 + c ). : a2 2ab+b 2. Politechnika Białostocka KATEDRA MATEMATYKI. Zajęcia fakultatywne z matematyki 2008

Lista. Przestrzenie liniowe. Zadanie 1 Sprawdź, czy (V, +, ) jest przestrzenią liniową nadr :

Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi

Równania różniczkowe zwyczajne

Układy równań liniowych, macierze, Google

Zadania egzaminacyjne

DRGANIA SWOBODNE UKŁADU O DWÓCH STOPNIACH SWOBODY. Rys Model układu

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Zestaw zadań przygotowujących do egzaminu z Matematyki 1

Matlab Składnia + podstawy programowania

Tydzień nr 9-10 (16 maja - 29 maja), Równania różniczkowe, wartości własne, funkcja wykładnicza od operatora - Matematyka II 2010/2011L

Transkrypt:

Języki Modelowania i Symulacji Równania zagadnienie poczatkowe (tylko przykłady w MATLABie) Piotr Jacek Suchomski Katedra Systemów Automatyki WETI, Politechnika Gdańska 14 listopada 2011

1 2

Informacje wstępne Podstawowe sposoby użycia funkcji całkownia równania go ẏ = f (t, y) (zagadnienie poczatkowe dla zwyczajnego rr (ode)): [T,Y] = solver(odefun,tspan,y0) [T,Y] = solver(odefun,tspan,y0,options) odefun wskazanie na funkcję wyznaczajac a prawa stronę f (t, y) rozważanego równania tsan wektor określajacy przedział, dla którego poszukuje się rozwiazania y(t) (lub też zbiór punktów, w których (w przybliżeniu!) należy wyznaczyć rozwiazanie), y0 wektor warunków poczatkowych, T wektor kolejnych chwil czasu t, Y tablica rozwiazań (wiersz odpowiada danemu t).

Informacje wstępne funkcja zadanie dokładność ode45 n-s M ode23 n-s L ode113 n-s L -> H ode15s S L -> M ode23s S L ode23t m-s L ode23tb S L n-s zadanie niesztywne lub o małym stopniu sztywności, m-s zadanie o średnim stopniu sztywności, S zadanie sztywne, L,M,H możliwa do uzyskania dokładność rozwi azania (odpowiednio): Niska, Średnia oraz Wysoka.

funkcja ode45 ode23 ode113 ode15s Informacje wstępne zastosowanie Metoda o średnim rzędzie, zalecana na wstępnym etapie całkowania nieliniowych rr o tylko niewielkim stopniu sztywności. Metoda niskiego rzędu, zwykle nie zapewnia dużej dokładności, można ja stosować do zadań o średnim stopniu sztywności. Metoda o zmiennym rzędzie, zapewnia duża dokładność rozwiazania, zalecana dla zadań o dużej złożoności numerycznej przy wyznaczaniu funkcji użytkownika odefun. Metoda o zmiennym rzędzie, zalecana dla zadań o dużej sztywności lub problemów różniczkowo-algebraicznych (DAE)

Informacje wstępne funkcja ode23s ode23t ode23tb zastosowanie Metoda zalecana w przypadku zadań o dużym stopniu sztywności (dopuszcza się tylko stałe macierze masowe) Metoda o względnie niskich kosztach obliczeniowych, można ja jednak stosować tylko dla średnio sztywnych zadań. Zalecana dla zadań o dużej sztywności, nie spodziewaj się jednak dużej dokładności.

Informacje wstępne Parametryzacja funkcji całkowania rr () opcje: pole opcji RelTol AbsTol MaxStep InitialStep Vectorized NonNegative OutputFcn: odeplot odephas2 odephas3 opis wymagana względna dokładność oszacowanie dopuszczalnego bezwzględnego błędu każdej współrzędnej wektora rozwiazań kres górny kroku całkowania rr poczatkowy krok całkowania rr czy przetwarza się dane wektorowe? indeksy tych współrzędnych rozwiazania, które maja być nieujemne wykreślany jest: przebieg w dziedzinie czasu, dwuwymiarowy portret fazowy, trójwymiarowy portret fazowy

pole opcji Refine Stats JConstant Jacobian Mass MassSingular Events Informacje wstępne opis wygładzenie przebiegu rozwiazania: podaje się ile razy należy zwiększyć liczbę punktów na osi czasu czy podać dane o numerycznych szczegółach uzyskanego rozwiazania? macierz Jacobiego jest stała której funkcji użytkownika należy użyć do wyznaczania? macierz masowa (o ja wykorzystujemy) jest: stała, jawnie zależna od czasu, zależna także od bieżacego rozwiazania czy macierz masowa jest osobliwa? czy rozwiazuj ac rr stosujemy mechanizm modelowania zdarzeń?

Przykład 1 Model liniowego obiektu dynamicznego: [ ] [ x 0 1 = Ax, A =, x(0) = 1 1 function dxdt=ax(t,x,flag,a) % parametr flag musi tu wystąpić dxdt=a*x; Szukamy rozwiazania dla 0 t 10 [s]: 1 0.5 ]» A=[0 1;-1-1];» x0=[1; -0.5];» [T,x]=ode45('Ax',[0 10],x0,[],A);

Model liniowy x = Ax, x(0): Przykład 1» A, x0, size(t) A = 0 1-1 -1 x0 = 1.0000-0.5000 ans = 57 1 Rozwiazanie analityczne x(t) = e ta x(0):» xx=zeros(2,size(t,1));» for k=1:size(t,1); xx(:,k)=expm(a*t(k))*x(0); end;

Przykład 1» max(abs(x-xx')) %szacowanie błędu ans = 1.0e-003 * 0.1138 0.1511» plot(t,x); xlabel('t [sec]'); ylabel('x(t)'); Rozwiazanie względem czasu

Przykład 1 Rozwiazanie dokładniejsze (domyślnie: RelTol=1e-3) options=odeset('reltol',1e-8);» [T,x]=ode45('Ax',[0 10],x0,options,A);» xx=zeros(2,size(t,1));» for k=1:size(t,1);xx(:,k)=expm(a*t(k))*x0;end;» size(t) ans = 125 1» max(abs(x-xx')) ans = 1.0e-006 * 0.3086 0.2636 Oszacowanie błędu k-tej współrzędnej x: e(k) =max(reltol*abs(x(k)),abstol(k))

Przykład 2 Skalarne równania nieliniowe: 1) x = x 2 2) x = x 2 + 1 3) x = x 2 + t Warunek poczatkowy: x(0.1) = 2. function dxdt=funk1(t,x,flag,k) switch k case 1, dxdt=x^2; case 2, dxdt=x^2+1; case 3, dxdt=x^2+t; end;

Rozwiazanie analityczne: Przykład 2 x = x 2 x(t) = 1 t C 1. %rozwiązanie ogólne:» dsolve('dx=x^2') ans = -1/(t-C1) %rozwiązanie szczegółowe:» dsolve('dx=x^2','x(0.1)=2') ans = -1/(t-3/5)

Przykład 2 Czy mamy do czynienia z problemem sztywnym?» opts=odeset('reltol',1e-5);» [T2s,x2s]=ode23s('funk1',[0.1 0.56],2,opts,2); Rozwiazanie równania x = x 2 + 1, x(0.1) = 2

Przykład 2» [T2,x2]=ode23('funk1',[0.1 0.56],2,opts,2);» [T2s,x2s]=ode23s('funk1',[0.1 0.56],2,opts,2);» size(t2,1),size(t2s,1) ans = 138 ans = 114» [T1,x1]=ode23('funk1',[0.1 0.56],2,opts,1);» [T3,x3]=ode23('funk1',[0.1 0.56],2,opts,3);» [T1s,x1s]=ode23s('funk1',[0.1 0.56],2,opts,1);» [T3s,x3s]=ode23s('funk1',[0.1 0.56],2,opts,3);» size(t2,1),size(t2s,1) -> 73, 61» size(t3,1),size(t3s,1) -> 79, 67 % Czy to dobra miara 'stopnia sztywności?

Skalarne : Przykład 3 x = t 2 cos(t) + 2x, x(2π) = 0. t function dxdt=funk2(t,x) dxdt=cos(t)*t^2+2*x/t; Rozwiazanie symboliczne:» dsolve('dx=cos(t)*t^2+2*x/t') ans = t^2*sin(t)+t^2*c1» dsolve('dx=cos(t)*t^2+2*x/t','x(2*pi)=0') ans = t^2*sin(t)

Przykład 3» options=odeset('reltol',1e-5);» [T,x]=ode23('funk2',[2*pi 10],0,options);» plot(t,x); T2=T.*T;» plot(t,x-t2.*sin(t)); % błąd bezwzględny Rozwiazanie numeryczne Bład bezwzględny

Skalarne : Przykład 4 x = x ln(x), x(0) = 3. function dxdt=funk3(t,x) dxdt=-x*log(x); Rozwiazania analityczne:» dsolve('dx=-x*ln(x)') ans = exp(exp(-t-c1))» dsolve('dx=-x*ln(x)','x(0)=3') ans = exp(exp(-t+log(log(3))))

Przykład 4» options=odeset('reltol',1e-5);» [T,x]=ode23('funk3',[0 4],3,options);» xx=exp(log(3)*exp(-t)); % rozwiązanie dokładne» max(abs(x-xx)) % błąd ans = 1.3002e-005 Rozwiazanie równania x = x ln(x), x(0) = 3

Przykład 6 Układ równań nieliniowych (model obiektu dynamicznego: { ẋ1 = f 1 (x 1, x 2 ) := x 1 x 2 1 rx 1x 2 ẋ 2 = f 2 (x 1, x 2 ) := x 2 x 2 2 rx 1x 2. Macierz Jacobiego: J(x 1, x 2 ) := [ f1 x 1 f 2 f 1 x 2 f 2 x 1 x 2 ] [ 1 2x1 rx = 2 rx 1 rx 2 1 2x 2 rx 1 ].

Przykład 6 function out=funcxr(t,x,flag,r) if strcmp(flag,'') out=[x(1)-x(1)^2-r*x(1)*x(2); x(2)-x(2)^2-r*x(1)*x(2)]; elseif strcmp(flag,'jacobian') out=[1-2*x(1)-r*x(2) -r*x(1); -r*x(2) 1-2*x(2)-r*x(1)]; end;» optj=odeset('reltol',1e-6,'jacobian','on', 'Stats','on');» opt=odeset('reltol',1e-6,'jacobian','off', 'Stats','on');

Przykład 6» [TxJ,xJ]=ode23s(@funcxr,[0 500],[0.05;-1],optJ,2); 449 successful steps 0 failed attempts 1349 function evaluations 449 partial derivatives 449 LU decompositions 1347 solutions of linear systems» [Tx,x]=ode23s(@funcxr,[0 500],[0.05;-1],opt,2); 449 successful steps 0 failed attempts 2247 function evaluations 449 partial derivatives 449 LU decompositions 1347 solutions of linear systems

Przykład 6» plot(xj(:,1),xj(:,2));» xlabel('x1'); ylabel('x2'); grid; Rozwiazanie na płaszczyźnie stanu (x 1, x 2 )

Przykład 7 Modele nieliniowych obiektów dynamicznych: { ẋ1 = x (1) 2 x1 3 x 1x2 2 ẋ 2 = x 1 x2 3 x 1 2x 2, function dxdt=model1(t,x) dxdt=[-x(2)-x(1)^3-x(1)*x(2)^2; x(1)-x(2)^3-x(1)^2*x(2)]; { ẋ1 = x (2) 2 + x1 3 + x 1x2 2 ẋ 2 = x 1 + x2 3 + x 1 2x 2. function dxdt=model2(t,x) dxdt=[-x(2)+x(1)^3+x(1)*x(2)^2; x(1)+x(2)^3+x(1)^2*x(2)];

Przykład 7» [T,x] = ode23(@model1,[0 25],[-0.1 0.1]); Model 1: rozwi azanie na płaszczyźnie stanu (x 1, x 2 ) Stabilny punkt równowagi (0, 0)

Przykład 7» opts=odeset('refine',10);» [T,x] = ode23(@model1,[0 25],[-0.1 0.1],opts); Model 1: rozwi azanie na płaszczyźnie stanu (x 1, x 2 ) Stabilny punkt równowagi (0, 0)

Przykład 7» opts=odeset('refine',10);» [T,x] = ode23(@model2,[0 25],[-0.1 0.1],opts); Model 2: rozwi azanie na płaszczyźnie stanu (x 1, x 2 ) Niestabilny punkt równowagi (0,0)

Przykład 8 Układ równań nieliniowych (model obiektu dynamicznego): { ẋ1 = x 1 x 2 x 3 1 ẋ 2 = x 1 + x 2 x 3 2. function dxdt=modelx1x2(t,x) dxdt=[x(1)-x(2)-x(1)^3; x(1)+x(2)-x(2)^3]; Efektywność obliczeń można zwiększyć stosujac wektoryzację przetwarzanych danych: function dxdt=modelx1x2v(t,x) dxdt=[x(1,:)-x(2,:)-x(1,:).^3 x(1,:)+x(2,:)-x(2,:).^3];

Przykład 8 Cykl graniczny ilustracja w przestrzeni stanu:» [T,x] = ode45(@modelx1x2,[0 25],[-0.1 0.1]);» [T,x] = ode45(@modelx1x2,[0 25],[1.0 1.0]); Warunki poczatkowe [ 0.1 0.1] Warunki poczatkowe [1.0 1.0]

Przykład 8 Cykl graniczny ilustracja w przestrzeni stanu:» opts=odeset('outputfcn','odephas2');» [T,x] = ode45(@modelx1x2,[0 25],[2 2],opts); Rozwiazanie dla warunków poczatkowych [2.0 2.0]

Przykład 8 Cykl graniczny ilustracja w dziedzinie czasu:» opts=odeset('outputfcn','odeprint');» [T,x] = ode45(@modelx1x2,[0 25],[2 2],opts); Rozwiaznie dla warunków poczatkowych [2.0 2.0]

Badany model obiektu dynamicznego: Przykład 8 { ẋ1 = x 1 x 2 x 3 1 ẋ 2 = x 1 + x 2 x 3 2. Punkt (0, 0) jest tu punktem stacjonarnym. Co powiesz o lokalnych jego właściwościach na podstawie modelu zlinearyzowanego?» eig([1-1;1 1]) 1.0000 + 1.0000i 1.0000-1.0000i Wykorzystanie mechanizmu wektoryzacji wymaga, aby:» opts=odeset(opts, 'Vectorized', 'on');

Przykład 9 Model nieliniowego obiektu dynamicznego: gdzie { ẋ1 = x 2 + x 1 (r 4 2 3r 2 2 + 1) ẋ 2 = x 1 + x 2 (r 4 2 3r 2 2 + 1) r 2 (t) := x 2 1 (t) + x 2 2 (t). function dxdt=modelnonl(t,x) r2=x(1)^2+x(2)^2; dxdt=[-x(2)+x(1)*(r2^4-3*r2^2+1); x(1)+x(2)*(r2^4-3*r2^2+1)]; Punkt (0, 0) jest punktem równowagi. Czy jedynym? Co powiesz o jego lokalnych właściwościach?

Przykład 9 Cykl graniczny ilustracja w przestrzeni stanu:» [T,x] = ode45(@modelnonl,[0 25],[0.9-0.4]);» [T,x] = ode45(@modelnon1,[0 25],[0.05-0.1]); Warunki poczatkowe [0.9 0.4] Warunki poczatkowe [0.05 0.1]

Przykład 9 Cykl graniczny ilustracja w przestrzeni stanu:» [T,x] = ode45(@modelnonl,[0 30],[1.2075-0.4]);» plot(x(:,1),x(:,2)); xlabel('x1'),ylabel('x2'); Rozwiaznie dla warunków poczatkowych 1.2075 0.4]

Przykład 10 Prosty przykład sztywnego ( stiff ) liniowego równania go: y (t) + sin(t) = 200(y(t) cos(t)), y(0) = 0. function dydt=stiff(t,y) dydt=-\sin (t)-200*(y-\cos (t)); Rozwiazanie analityczne: y(t) = cos(t) e 200t.

Przykład 10» opt=odeset('stats','on')» [t23,y23]=ode23('stiff',[0 0.40],0,opt); 46 successful steps 2 failed attempts 145 function evaluations 0 partial derivatives 0 LU decompositions 0 solutions of linear systems» [t23s,y23s]=ode23s('stiff',[0 0.40],0,opt); 29 successful steps 0 failed attempts 119 function evaluations 29 partial derivatives 29 LU decompositions 87 solutions of linear systems

Przykład 10 y (t) 1 0.8 0.6 0.4 0.2 y (t) + sin(t) = 200(y(t) cos(t)), y(0) = 0: ode23 0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 t [secs] y (t) 1 0.8 0.6 0.4 0.2 ode23s 0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 t [secs] Rozwiazanie ode23 Rozwiazanie ode23s

Przykład 11 Równanie: x (t) = x 2 (t) x 3 (t), 0 t 2/δ, x(0) = δ.» fx=inline('x^2-x^3','t','x'); fx = inline function: fx(t,x) = x^2-x^3» d=0.01;» ode45(fx,[0 2/d],d,opt);» ode23s(fx,[0 2/d],d,opt);» grid; xlabel('t [secs]');» ylabel('x (t)','rotation',0);» legend('d=0.01');

Przykład 11» d=0.01;» t=ode45(fx,[0 2/d],d,opt);» size(t) ans = 185 1» t=ode23s(fx,[0 2/d],d,opt);» size(t) ans = 73 1 x (t) 1.4 1.2 1 0.8 d=0.01 x (t) 1.4 1.2 1 0.8 d=0.01 0.6 0.6 0.4 0.4 0.2 0.2 0 0 20 40 60 80 100 120 140 160 180 200 t [secs] Metoda ode45 0 0 20 40 60 80 100 120 140 160 180 200 t [secs] Metoda ode23s

Przykład 11» d=0.0001;» t=ode45(fx,[0 2/d],d,opt);» size(t) ans = 12161 1» t=ode23s(fx,[0 2/d],d,opt);» size(t) ans = 100 1 x (t) 1.0002 1.0001 1 d=0.0001 x (t) 1.0002 1.0001 1 d=0.0001 0.9999 0.9999 0.9998 0.98 1 1.02 1.04 1.06 1.08 1.1 1.12 t [secs] x 10 4 Metoda ode45 0.9998 0.98 1 1.02 1.04 1.06 1.08 1.1 1.12 t [secs] x 10 4 Metoda ode23s

Równanie van : Przykład 12 ẍ + x + v(x 2 1)ẋ = 0 x 1 := x, x 2 := ẋ { ẋ1 = f 1 (x 1, x 2 ) := x 2 ẋ 2 = f 2 (x 1, x 2 ) := x 1 + v(1 x1 2)x 2. Macierz Jacobiego: J(x 1, x 2 ) := [ = [ f1 x 1 f 2 f 1 x 2 f 2 x 1 x 2 ] 0 1 2vx 1 x 2 1 v(1 x 2 1 ) ].

Przykład 12 function [out1,out2,out3]=vdpol(t,x,flag,v) if strcmp(flag,'') out1=[x(2); -x(1)+ v*(1 - x(1)^2)*x(2)]; elseif strcmp(flag,'jacobian') out1=[0 1; -2*v*x(1)*x(2)-1 v*(1-x(1)^2)]; elseif (strcmp(flag,'init')) & v==1 out1=[0 10]; out2=[2 0]; out3=odeset('jacobian','on','stats','on'); elseif (strcmp(flag,'init')) & v>1 out1=[0 15]; out2=[2 0]; out3=odeset('jacobian','on','stats','on'); end;

Przykład 12» [T,x] = ode23s(@vdpol,[0 3000],[2 0],... odeset('jacobian','on','stats','on'),1000); 741 successful steps 13 failed attempts 2251 function evaluations 741 partial derivatives 754 LU decompositions 2262 solutions of linear systems» [T,x] = ode23s(@vdpol,[0 3000],[2 0],... odeset('jacobian','off','stats','on'),1000); 743 successful steps 17 failed attempts 3751 function evaluations 743 partial derivatives 760 LU decompositions 2280 solutions of linear systems

Przykład 12 % Równanie van (zadanie sztywne: v=1000)» [T,x] = ode23s(@vdpol,[0 3000],[2 0],... odeset('jacobian','on','stats','off'),1000); Równanie van (v = 1000): rozwiazanie ode23s

Przykład 12» opt=odeset('jacobian','on','stats','on');» [T,x] = ode23s(@vdpol,[0 3000],[2 0],opt,1000); 741 successful steps 13 failed attempts 2251 function evaluations 741 partial derivatives 754 LU decompositions 2262 solutions of linear systems» opt=odeset('jacobian','off','stats','on');» [T,x] = ode15s(@vdpol,[0 3000],[2 0],opt,1000); 591 successful steps 225 failed attempts 1883 function evaluations 45 partial derivatives 289 LU decompositions 1747 solutions of linear systems

Przykład 12» opt=odeset('refine',5,'jacobian','on','stats','on');» [T,x] = ode15s(@vdpol,[0 3000],[2 0],opt,1000); 591 successful steps 225 failed attempts 1749 function evaluations 45 partial derivatives 289 LU decompositions 1747 solutions of linear systems Równanie van (v = 1000): rozwiazanie ode15s ( Refine : 1, 5)

Przykład 12» [T,x] = ode23(@vdpol,[],[],[],10); 175 successful steps 14 failed attempts 568 function evaluations 0 partial derivatives 0 LU decompositions 0 solutions of linear systems» [T,x] = ode23s(@vdpol,[],[],[],10); 124 successful steps 6 failed attempts 386 function evaluations 124 partial derivatives 130 LU decompositions 390 solutions of linear systems

Przykład 12 Równanie van dr Pola (v=10):» plot(t,x,'o'); axis([0 15-16 4]);» legend('x1','x2'); grid;» xlabel('t [secs]'); ylabel('x1(t) x2(t)'); Metoda ode23 Metoda ode23s

Przykład 12 Właściwości rozwiazań równania van :

Przykład 13 Model podwójnego wahadła (m 1 + m 2 )L 1 φ 1 + m 2 L 2 cos(φ 2 φ 1 ) φ 2 m 2 L 2 sin(φ 2 φ 1 ) φ 2 2 + (m 1 + m 2 )g sin φ 1 = 0 m 2 L 1 cos(φ 2 φ 1 ) φ 1 + m 2 L 2 φ 2 +m 2 L 1 sin(φ 2 φ 1 ) φ 2 1 + m 2g sin φ 2 = 0. x = [ x 1 x 2 x 3 x 4 ] T := [ φ1 φ 1 φ 2 φ 1 ] T.

Przykład 13 Model nieliniowy z macierza masowa M(x): M(x) = f (x) = M(x)ẋ = f (x) 1 0 0 0 0 (m 1 + m 2 )L 1 0 m 2 L 2 cos(x 3 x 1 ) 0 0 1 0 0 m 2 L 1 cos(x 3 x 1 ) 0 m 2 L 2 x 2 m 2 L 2 x 2 1 sin(x 3 x 1 ) (m 1 + m 2 )g sin x 1 x 4 m 2 g sin x 3 m 2 L 1 x 2 2 sin(x 3 x 1 ). Macierz M(x) jest nieosobliwa.

Przykład 13 Zlinearyzowany model podwójnego wahadła: M = A = Mẋ = Ax 1 0 0 0 0 (m 1 + m 2 )L 1 0 m 2 L 2 0 0 1 0 0 m 2 L 1 0 m 2 L 2 0 1 0 0 (m 1 + m 2 )g 0 0 0 0 0 0 1 0 0 m 2 g 0. Macierz M jest nieosobliwa.

Przykład 13 function varargout=mydpend(t,y,flag,m1,m2,l1,l2) g=9.81; if strcmp(flag,'') Out=zeros(4,1); Out(1)=y(2); Out(2)=m2*L2*y(4)^2*sin(y(3)-y(1)) -(m1+m2)*g*sin(y(1)); Out(3)=y(4); Out(4)=-m2*L1*y(2)^2*sin(y(3)-y(1))-m2*g*sin(y(3)); varargout{1}=out; elseif strcmp(flag,'mass') M=zeros(4,4); M(1,1)=1; M(2,2)=(m1+m2)*L1; M(2,4)=m2*L2*cos(y(3)-y(1)); M(3,3)=1; M(4,2)=m2*L1*cos(y(3)-y(1)); M(4,4)=m2*L2; varargout{1}=m; elseif strcmp(flag,'init') [varargout{1:3}]=init; end

Przykład 13 function [tspan,y0,options]=init tspan=[0; 6*pi]; y0=[135/180; 0; 90/180; 0]; y0=[pi/4;0;-pi/4;0]; y0=[pi/2;0;-pi/2;0]; options=odeset('mass','m(t,y)', 'MassSingular','no','Refine',5); m1=1; m=1; L1=1; L2=1;

Przykład 13» [T,y] = ode23('mydpend',[],[],[],m1,m2,l1,l2);» plot(l1*sin(y(:,1))+l2*sin(y(:,3)), -L1*cos(y(:,1))-L2*cos(y(:,3)));» plot(t,l1*sin(y(:,1))+l2*sin(y(:,3)), T,-L1*cos(y(:,1))-L2*cos(y(:,3))); Rozwiazanie na płaszczyźnie stanu (x, y) dla warunków poczatkowych: [ π/4 0 π/4 0 ] [ π/2 0 π/2 0 ]

Przykład 13 Podwójne rozwiazanie dla warunków poczatkowych [ π 0 5π/6 0 ]. Rozwiazanie na płaszczyźnie stanu (x, y) Rozwiazanie w dziedzinie czasu (x(t), y(t))

Równania róz niczkowe Przykład 13 Podwójne rozwiazanie dla warunków poczatkowych [ π 0 π 0 ]. W jaki sposób wyjas nic przebieg chaotycznej trajektorii stanu w jej poczatkowym fragmancie? 7 stabilnos c Rozwiazanie na płaszczyz nie stanu (x, y ) Rozwiazanie w dziedzinie czasu (x(t), y (t))