Řešení diferenciálních rovnic v MATLABu

Podobné dokumenty
MATEMATIKA III. Olga Majlingová. Učební text pro prezenční studium. Předběžná verze

Obsah Obyčejné diferenciální rovnice

Základy algoritmizace a programování

Maple. Petr Kundrát. Ústav matematiky, FSI VUT v Brně. Maple a základní znalosti z oblasti obyčejných diferenciálních rovnic.

Budeme hledat řešení y(x) okrajové úlohy pro diferenciální rovnici druhého řádu v samoadjungovaném tvaru na intervalu a, b : 2 ) y i p i+ 1

Kreslení grafů v Matlabu

KTE / PPEL Počítačová podpora v elektrotechnice

Numerická integrace a derivace

Nalezněte hladiny následujících funkcí. Pro které hodnoty C R jsou hladiny neprázdné

8.4. Shrnutí ke kapitolám 7 a 8

Diferenciální rovnice a jejich aplikace. (Brkos 2011) Diferenciální rovnice a jejich aplikace 1 / 36

Diferenciální rovnice II

1 Funkce dvou a tří proměnných

Příklad: Řešte soustavu lineárních algebraických rovnic 10x 1 + 5x 2 +70x 3 + 5x 4 + 5x 5 = 275 2x 1 + 7x 2 + 6x 3 + 9x 4 + 6x 5 = 100 8x 1 + 9x 2 +

Obyčejnými diferenciálními rovnicemi (ODR) budeme nazývat rovnice, ve kterých

Transformujte diferenciální výraz x f x + y f do polárních souřadnic r a ϕ, které jsou definovány vztahy x = r cos ϕ a y = r sin ϕ.

1. a) Určete parciální derivace prvního řádu funkce z = z(x, y) dané rovnicí z 3 3xy 8 = 0 v

Kombinatorická minimalizace

Radiologická fyzika základy diferenciálního počtu derivace a tečny, integrály a plochy diferenciální rovnice

Nalezněte obecné řešení diferenciální rovnice (pomocí separace proměnných) a řešení Cauchyho úlohy: =, 0 = 1 = 1. ln = +,

Lineární algebra s Matlabem cvičení 3

VYUŽITÍ MATLABU PRO VÝUKU NUMERICKÉ MATEMATIKY Josef Daněk Centrum aplikované matematiky, Západočeská univerzita v Plzni. Abstrakt

Kapitola 12: Soustavy diferenciálních rovnic 1. řádu

Soustavy lineárních diferenciálních rovnic I. řádu s konstantními koeficienty

Sbírka příkladů z matematické analýzy II. Petr Tomiczek

4. OBYČEJNÉ DIFERENCIÁLNÍ ROVNICE

vysledek = ((1:1:50).*(100-(1:1:50))) *ones(50,1) vysledek = ((1:1:75)./2).*sqrt(1:1:75) *ones(75,1)

ODR metody Runge-Kutta

Příklady k druhému testu - Matlab

Soustavy lineárních rovnic

Zápočtová písemka z Matematiky III (BA04) skupina A

Matematika II, úroveň A ukázkový test č. 1 (2017) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Numerické řešení diferenciálních rovnic

Separovatelné diferenciální rovnice

Wolfram Alpha. v podobě html stránky, samotný výsledek je často doplněn o další informace (např. graf, jiné možné zobrazení výsledku a

Kapitola 10: Diferenciální rovnice 1/14

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Integrace. Numerické metody 7. května FJFI ČVUT v Praze

1/15. Kapitola 12: Soustavy diferenciálních rovnic 1. řádu

Příklady pro předmět Aplikovaná matematika (AMA) část 1

MATLAB a numerické metody

ekologie Pavel Fibich rovnice rovnice Pavel Fibich Shrnutí Literatura

PŘEDNÁŠKA 9 KŘIVKOVÝ A PLOŠNÝ INTEGRÁL 1. DRUHU

Základy algoritmizace a programování

Numerická matematika Písemky

1. Náhodný vektor (X, Y ) má diskrétní rozdělení s pravděpodobnostní funkcí p, kde. p(x, y) = a(x + y + 1), x, y {0, 1, 2}.

pouze u některých typů rovnic a v tomto textu se jím nebudeme až na

PROGRAMU 2. Obvod D je dán součtem velikostí všech tří stran D=a+b+c= =23.07

Funkce jedné proměnné

[obrázek γ nepotřebujeme, interval t, zřejmý, integrací polynomu a per partes vyjde: (e2 + e) + 2 ln 2. (e ln t = t) ] + y2

Parciální diferenciální rovnice

Řešení diferenciálních rovnic

Aproximace a interpolace

Kapitola 11: Lineární diferenciální rovnice 1/15

9.3. Úplná lineární rovnice s konstantními koeficienty

Q(y) dy = P(x) dx + C.

8. Okrajový problém pro LODR2

BPC2E_C08 Parametrické 3D grafy v Matlabu

KMS cvičení 9. Ondřej Marek

Numerická matematika. Zadání 25. Řešení diferenciální rovnice Rungovou Kuttovou metodou

Fakt. Každou soustavu n lineárních ODR řádů n i lze eliminací převést ekvivalentně na jednu lineární ODR

Matematika II, úroveň A ukázkový test č. 1 (2016) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

má spojité parciální derivace druhého řádu ve všech bodech této množiny. Výpočtem postupně dostaneme: y = 9xy2 + 2,

Numerické integrace některých nediferencovatelných funkcí

metody jsou proto často jedinou možností jak danou diferenciální rovnicivyřešit.

Globální matice konstrukce

KTE / PPEL Počítačová podpora v elektrotechnice

+ 2y y = nf ; x 0. závisí pouze na vzdálenosti bodu (x, y) od počátku, vyhovuje rovnici. y F x x F y = 0. x y. x x + y F. y = F

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Cvičné texty ke státní maturitě z matematiky

Petr Hasil

ÚSTAV MATEMATIKY A DESKRIPTIVNÍ GEOMETRIE. Matematika 0A1. Cvičení, zimní semestr. Samostatné výstupy. Jan Šafařík

Teorie. Hinty. kunck6am

řešeny numericky 6 Obyčejné diferenciální rovnice řešeny numericky

A0B01LAA Lineární algebra a aplikace (příklady na cvičení- řešení)

X37SGS Signály a systémy

Definice Tečna paraboly je přímka, která má s parabolou jediný společný bod,

rovnic), Definice y + p(x)y = q(x), Je-li q(x) = 0 na M, nazývá se y + p(x)y =

VÝUKA MOŽNOSTÍ MATLABU

I. Diferenciální rovnice. 3. Rovnici y = x+y+1. převeďte vhodnou transformací na rovnici homogenní (vzniklou

Extrémy funkce dvou proměnných

SBÍRKA PŘÍKLADŮ Z MATEMATICKÉ ANALÝZY 3 Jiří Bouchala. Katedra aplikované matematiky, VŠB TU Ostrava jiri.bouchala@vsb.cz

Teorie. Hinty. kunck6am

Kreslení elipsy Andrej Podzimek 22. prosince 2005

arcsin x 2 dx. x dx 4 x 2 ln 2 x + 24 x ln 2 x + 9x dx.

Základy matematiky pracovní listy

Základy programování: Algoritmizace v systému MATLAB

naopak více variant odpovědí, bude otázka hodnocena jako nesprávně zodpovězená.

Co je obsahem numerických metod?

11. přednáška 10. prosince Kapitola 3. Úvod do teorie diferenciálních rovnic. Obyčejná diferenciální rovnice řádu n (ODR řádu n) je vztah

diferenciální rovnice verze 1.1

Diferenciál funkce dvou proměnných. Má-li funkce f = f(x, y) spojité parciální derivace v bodě a, pak lineární formu (funkci)

Definiční obor funkce

Matematická analýza ve Vesmíru. Jiří Bouchala

Funkce více proměnných - úvod

8.2. Exaktní rovnice. F(x, y) x. dy. df = dx + y. Nyní budeme hledat odpověd na otázku, zda a jak lze od této diferenciální formule

Flexibilita jednoduché naprogramování a přeprogramování řídícího systému

Zkouška ze Základů vyšší matematiky ZVMTA (LDF, ) 60 minut. Součet Koeficient Body

Vzpěr jednoduchého rámu, diferenciální operátory. Lenka Dohnalová

Numerické řešení obyčejných diferenciálních rovnic

Transkript:

Řešení diferenciálních rovnic v MATLABu Základy algoritmizace a programování Přednáška 23. listopadu 2011

Co řešíme Obyčejné diferenciální rovnice prvního řádu: separovatelné lineární exaktní druhého řádu, lineární: s konstantními koeficienty s proměnnými koeficienty soustavy lineární: X = AX + B nelineární

Obyčejné diferenciální rovnice Řešení Cauchyovy úlohy y = f (t, y(t)), y(t 0 ) = t 0, kde t je skalár, y(t) neznámý vektor hodnot, f (t, y) zadaná funkce (resp. vektor hodnot).

Řešení v symbolických proměnných Obyčejná diferenciální rovnice 1. řádu, např. y + y x = 1 x + 3 y( 2) = 4 1 rovnici upravíme na tvar : y = f (x, y). 2 help dsolve 3 funkce dsolve( Dy =f(x), y(x0)=y0, x ) y=dsolve( Dy=1/(x+3)-y/x, y(-2)=4, x ) y je výraz, který odpovídá řešení rovnice a do kterého lze dosadit, např. vektor hodnot 4 zobrazení přesného řešení xx=-2:0.1:-0.1; yy=subs(y,xx); plot(xx,yy) nebo ezplot(y)

v matlabu y = (x - 3*log(x + 3))/x - 6/x latex(y) ans= x 3 ln(x + 3) x 6 x

Lineární diferenciální rovnice 2. řádu s konstantními koeficienty, y 9y = 5e 2t, y(0) = 0, y (0) = 3 y = dsolve( D2y = 5*exp(2*t)+9*y, y(0)=0, Dy(0)=3, t ) ezplot(y)

v matlabu y = (4*exp(3*t))/3-1/(3*exp(3*t)) - exp(2*t)» latex(y) ans = 4 e 3 t 3 1 3 e 3 t e 2 t

Lineární diferenciální rovnice 2. řádu s proměnnými koeficienty, y + xy = 1 2 x, y(0) = 0.25, y (0) = 0 y = dsolve( D2y = 1/(2-x)-x*y, y(0)=0.25, Dy(0)=0, x ) Ne vždy je řešení nalezeno...

Lineární soustavy, Ẋ = ( 1 1 4 2 ) ( 0 X, X 5 dsolve( Dy = x+y, Dy = 4*x -2y, x(0)=0, y(0)=5, t ) )

Numerické řešení Napíšeme funkci, která počítá hodnoty f a použijeme některou z matlabovských funkcí, které potřebují: jméno funkce, rozsah hodnot t (od t 0 do t N ) a počáteční hodnotu y 0. Nejpoužívanější matlabovská funkce: ode45. (help ode45)

Použití ode45 y = y(t) 5e t sin 5t, y(0) = 1, pro 0 t 3. Vytvoříme funkci prava (v souboru prava.m) function dy = prava(t,y) dy = -y-5*exp(-t)*sin(5*t); a použijeme ji: interval_t = [0 3]; y0 = 1; [t, y ] = ode45(@prava, interval_t, y0); v proměnné t jsou body z intervalu < 0, 3 >, ve kterých jsou určeny hodnoty přibližného řešení y(i).vnitřní body vybírá funkce ode45, tím menší vzdálenost, čím více se mění řešení. Výsledek můžeme graficky zobrazit: plot(t,y, *- - ); xlabel t, ylabel y(t) Pro uvedený příklad známe přesné řešení: y(t) = e x cos 5t, proto můžeme určit chybu numerického řešení jako max(abs(y-exp(-t).* cos(5*t))) = 2.8991 e -04 a porovnat grafy.

Pokud je zadáno více než 2 hodnoty (pro t) výpočet je proveden pouze v těchto hodnotách, a funkce dělení intervalu neprovádí (respektuje zadané). Např. tspan2 = 0:4 budou y hodnoty vypočteny pro t=0,1,2,3,4 Lze zadat i obrácené uspořádání hodnot (záporný krok), např. tspan3 = [0-0.5-1]

ODR vyššího řádu Řešíme převedením rovnice vyššího řádu na soustavu diferenciálních rovnic prvního řádu. Např. rovnice kyvadla: y = sin y Převedeme na soustavu 2 rovnic: y 1 (t) = y(t) a y 2 (t) = y (t): y 1 (t) = y 2(t), y 2 (t) = sin y 1(t) Pro použití ode45 vytvoříme funkci pravé strany: function dy = kyvadlo(t,y) dy =[y(2); -sin(y(1))];

Kyvadlo Výpočet provedeme pro 0 t 10 s různými počátečními podmínkami. Návratovými hodnotami ode45 bude matice, která má v každém řádku t(i), y1(t), y2(t). tspan = [0 10 ]; ya0 = [1; 1]; yb0 = [-5; 2 ]; yc0=[5; -2]; [ta ya] = ode45(@kyvadlo, tspan, ya0); [tb yb] = ode45(@kyvadlo, tspan, yb0); [tc yc] = ode45(@kyvadlo, tspan, yc0);

Zobrazení řešení Zobrazení fázových trajektorií v rovině v osách y1(t), y2(t) použijeme vygenerované sloupce y(:,1), y(:,2). Vektorové pole směrových vektorů [y2, -sin y1 ] zobrazí funkce quiver. [y1,y2] = meshgrid (-5:0.5:5, -3:0.5:3); Dy1Dt = y2; Dy2Dt = -sin(y1); quiver(y1,y2,dy1dt,dy2dt) hold on plot(ya(:,1),ya(:,2)) plot(yb(:,1),yb(:,2)) plot(yc(:,1),yc(:,2)) axis equal, axis([-5 5-3 3]) xlabel y_1(t), ylabel y_2(t), hold off

Kyvadlo

Soustavy autonomních rovnic 1 bod rovnováhy : ohnisko ( 1 1 Ẋ = 1 1 ) ( 1 X, X(0) = 2 ) 2 bod rovnováhy : sedlo ( 1 1 Ẋ = 4 2 ) ( 0 X, X(0) = 5 ) 3 bod rovnováhy : uzel ( 1 0 Ẋ = 3 2 4 bod rovnováhy : střed ( 0 1 Ẋ = 4 0 ) ( 1 X, X(0) = 0 ) ( 1 X, X(0) = 0 ) )

Autonomní soustava: bod rovnováhy OHNISKO tspan=[0,-5]; ybzero=[1;2]; [tb,yb]=ode45(@pr31,tspan,ybzero); [y1,y2] = meshgrid(-1:0.2:2,-1:0.2:2); Dy1Dt = y1-y2; Dy2Dt =y1+y2; quiver(y1,y2,dy1dt,dy2dt); hold on plot(yb(:,1),yb(:,2)) axis equal axis([-1,2,-1,2]) xlabel x(t), ylabel y(t), hold off function yprime = pr31 (t,y) yprime =[y(1)-y(2);y(1)+y(2)];

Ohnisko

Autonomní soustava: bod rovnováhy SEDLO tspan=[0,1]; ybzero=[0;1]; yczero=[0; -1]; yazero=[1;0]; ydzero=[-1;0]; [tb,yb]=ode45(@pr19,tspan,ybzero); [tc,yc]=ode45(@pr19,tspan,yczero); [tb,ya]=ode45(@pr19,[0,0.3],yazero); [tb,yd]=ode45(@pr19,[0,0.3],ydzero); [y1,y2] = meshgrid(-1.5:0.2:1.5,-1.5:0.2:1.5); Dy1Dt = y1-y2; Dy2Dt =-4*y1-2*y2; quiver(y1,y2,dy1dt,dy2dt); hold on plot(yb(:,1),yb(:,2), yc(:,1),yc(:,2),ya(:,1),ya(:,2),yd(:,1),yd(:,2)); axis equal xlabel y_1(t), ylabel y_2(t), hold off function yprime = pr19 (t,y) yprime =[y(1)-y(2);-4*y(1)-2*y(2)];

Sedlo

Autonomní soustava: bod rovnováhy UZEL tspan =[0, 20]; yazero = [1; 0]; [ta,ya] = ode45(@pr12, tspan, yazero); [y1,y2] = meshgrid(-1:0.2:1,-1:0.2:1); Dy1Dt = -y2; Dy2Dt =3*y1-2*y2; quiver(y1,y2,dy1dt,dy2dt); hold on plot(ya(:,1),ya(:,2), r ) axis equal xlabel y_1(t), ylabel y_2(t), hold off function yprime = pr12 (t,y) yprime =[-y(2);3*y(1)-2*y(2)];

Uzel

Autonomní soustava: bod rovnováhy STŘED tspan = [0,pi]; yazero = [1;0]; ybzero = [0; 3]; yczero = [1; 1]; [ta,ya] = ode45(@pr28, tspan, yazero); [tb,yb] = ode45(@, tspan, ybzero); [tc,yc] = ode45(@, tspan, yczero); [y1,y2] = meshgrid(-1.5:0.3:1.5,-3:0.3:3); Dy1Dt = y2; Dy2Dt = -4*y1; quiver(y1,y2,dy1dt,dy2dt); hold on plot(ya(:,1),ya(:,2),yb(:,1),yb(:,2),yc(:,1),yc(:,2)) axis equal, axis([-2,2,-4,4]) xlabel y_1(t), ylabel y_2(t), hold off function yprime = pr28 (t,y) yprime =[y(2);-4*y(1)];

Střed

Numerická integrace v MATLABu Numerická integrace integrace v kvadraturách přibližný výpočet b a f (x)dx funkce quad realizuje Simpsonovu metodu funkce quad1 realizuje přesnější metodu (Gauss Lobato, Kronrod) funkce trapz realizuje lichoběžníkovou metodu funkce dblquad výpočet dvojného integrálu

Použití funkcí trapz : parametry vektory x a y souřadnic, např. sin 2 (x) dx 1+cos 2 (x) 2π 0 >>x = linspace(0, 2*pi, 10);... nebo x = 0: 2*pi/10: 10; >>y = sin(x).ˆ2./sqrt(1+cos(x).ˆ2); >>trapz(x,y) ans = 2.8478

Použití quad, quad1, dblquad parametry: funkce, a, b, přesnost funkce musí mít parametr vektor a vracet vektor funkčních hodnot (pro dblquad 2 parametry: vektor x, skalár y, vrací vektor q = quad (funkce, a, b, presnost) q = quad1(inline( cos(x.ˆ2) ), t(i), t(i+1), 1e-3);

Příklady 4 2 x ln xdx function f = xlnx(x) f=x.*log(x); quad(@xlnx,2,4) >> ans = 6.7041

Příklady x(t) = t 0 cos(u2 )du, y(t) = t 0 sin(u2 )du n=1000; x=zeros(1,n); y=x; t=linspace(0,4*pi,n+1); for i=1:n x(i)=quad(inline( cos(x.ˆ2) ), t(i),t(i+1),1e-3); y(i)=quad(inline( sin(x.ˆ2) ), t(i),t(i+1),1e-3); end

Obrázek

příklady 6 4 1 0 (y 2 e x + x cos(x))dxdy function vysl = fxy(x,y) vysl = yˆ2*exp(x)+x*cos(y); >>dblquad(@fxy,0,1,4,6) ans = 87.2983