MATLAB OKTATÁS 4. ELŐADÁS LINEÁRIS, NEMLINEÁRIS ÉS DIFFERENCIÁL- EGYENLETRENDSZEREK MEGOLDÁSA. Dr. Bécsi Tamás Hegedüs Ferenc

Hasonló dokumentumok
MATLAB OKTATÁS 5. ELŐADÁS FELTÉTEL NÉLKÜLI ÉS FELTÉTELES OPTIMALIZÁLÁS. Dr. Bécsi Tamás Hegedüs Ferenc

ODE SOLVER-ek használata a MATLAB-ban

Algoritmusok Tervezése. 1. Előadás MATLAB 1. Dr. Bécsi Tamás

MATLAB OKTATÁS 1. ELŐADÁS ALAPOK. Dr. Bécsi Tamás Hegedüs Ferenc

Gyakorló feladatok. Agbeko Kwami Nutefe és Nagy Noémi

Numerikus matematika

Annak a function-nak a neve, amiben letároltuk az egyenletünket.

MATLAB. 5. gyakorlat. Polinomok, deriválás, integrálás

Numerikus matematika vizsga

Lineáris leképezések. 2. Lineáris-e az f : R 2 R 2 f(x, y) = (x + y, x 2 )

1 Lebegőpontos számábrázolás

Komputeralgebra Rendszerek

Matematika II képletek. 1 sin xdx =, cos 2 x dx = sh 2 x dx = 1 + x 2 dx = 1 x. cos xdx =,

Baran Ágnes. Gyakorlat Numerikus matematika. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 79

DIFFERENCIÁLEGYENLETEK. BSc. Matematika II. BGRMA2HNND, BGRMA2HNNC

Differenciálegyenletek numerikus megoldása

Baran Ágnes, Burai Pál, Noszály Csaba. Gyakorlat Differenciálegyenletek numerikus megoldása

Egyenletek, egyenlőtlenségek VII.

Matematika I. Vektorok, egyenesek, síkok

MODELLEK ÉS ALGORITMUSOK ELŐADÁS

sin x = cos x =? sin x = dx =? dx = cos x =? g) Adja meg a helyettesítéses integrálás szabályát határozott integrálokra vonatkozóan!

Bevezetés az algebrába 2

Numerikus módszerek 1.

HASZNÁLT MATLAB FÜGGVÉNYEK LISTÁJA

Matematika II. 1 sin xdx =, 1 cos xdx =, 1 + x 2 dx =

Differenciálegyenlet rendszerek

Feladatok a Diffrenciálegyenletek IV témakörhöz. 1. Határozzuk meg következő differenciálegyenletek általános megoldását a próba függvény módszerrel.

Másodfokú egyenletek, egyenlőtlenségek

MATLAB. 8. gyakorlat. Differenciálegyenletek

Széchenyi István Egyetem. Műszaki számítások. Matlab 4. előadás. Elemi függvények és saját függvények. Dr. Szörényi Miklós, Dr.

Baran Ágnes, Burai Pál, Noszály Csaba. Gyakorlat Differenciálegyenletek

Egyenletek, egyenlőtlenségek V.

3. Lineáris differenciálegyenletek

NEMLINEÁRIS EGYENLETRENDSZEREK MEGOLDÁSA

rank(a) == rank([a b])

Másodfokú egyenletek, egyenlőtlenségek

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

ACTA ACADEMIAE PAEDAGOGICAE AGRIENSIS

MATLAB alapismeretek III.

Segédlet a gyakorlati tananyaghoz GEVAU141B, GEVAU188B c. tantárgyakból

Numerikus matematika. Irodalom: Stoyan Gisbert, Numerikus matematika mérnököknek és programozóknak, Typotex, Lebegőpontos számok

9. gyakorlat Lineáris egyenletrendszerek megoldási módszerei folyt. Néhány kiegészítés a Gauss- és a Gauss Jordan-eliminációhoz

Intergrált Intenzív Matematika Érettségi

Numerikus módszerek I. zárthelyi dolgozat (2017/18. I., A. csoport) Megoldások

Általánosan, bármilyen mérés annyit jelent, mint meghatározni, hányszor van meg

9. Előadás. (9. előadás) Lineáris egyr.(3.), Sajátérték április / 35

Gauss elimináció, LU felbontás

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

y + a y + b y = r(x),

MATLAB alapismeretek I.

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Irányítástechnika 2. előadás

Matematika szigorlat június 17. Neptun kód:

1.1. Alapfogalmak. Vektor: R 2 beli elemek vektorok. Pl.: (2, 3) egy olyan vektor aminek a kezdo pontja a (0, 0) pont és a végpontja a

Vektorok, mátrixok, lineáris egyenletrendszerek

KOOPERÁCIÓ ÉS GÉPI TANULÁS LABORATÓRIUM

Gauss-Seidel iteráció

Közönséges differenciálegyenletek megoldása Mapleben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

Soros felépítésű folytonos PID szabályozó

Numerikus módszerek II. zárthelyi dolgozat, megoldások, 2014/15. I. félév, A. csoport. x 2. c = 3 5, s = 4

Károlyi Katalin Eötvös Loránd Tudományegyetem Alkalmazott Analízis Tanszék. Abstract

Runge-Kutta módszerek

Számítógépes gyakorlat MATLAB, Control System Toolbox

Gauss-eliminációval, Cholesky felbontás, QR felbontás

ALGEBRAI KIFEJEZÉSEK, EGYENLETEK

Mátrixok és lineáris egyenletrendszerek

Mátrixhatvány-vektor szorzatok hatékony számítása

Mechatronika segédlet 10. gyakorlat

Merev differenciálegyenletek numerikus megoldása

Robotok inverz geometriája

Numerikus módszerek 1.

A kutatás eredményei (záró beszámoló)

Norma Determináns, inverz Kondíciószám Direkt és inverz hibák Lin. egyenletrendszerek A Gauss-módszer. Lineáris algebra numerikus módszerei

Geokémia gyakorlat. 1. Geokémiai adatok értelmezése: egyszerű statisztikai módszerek. Geológus szakirány (BSc) Dr. Lukács Réka

Feladatok megoldásokkal a 9. gyakorlathoz (Newton-Leibniz formula, közelítő integrálás, az integrálszámítás alkalmazásai 1.

Függvények Megoldások

Diszkrét matematika I. gyakorlat

Differenciálegyenletek gyakorlat december 5.

x 2 e x dx c) (3x 2 2x)e 2x dx x sin x dx f) x cosxdx (1 x 2 )(sin 2x 2 cos 3x) dx e 2x cos x dx k) e x sin x cosxdx x ln x dx n) (2x + 1) ln 2 x dx

Számítógéppel irányított rendszerek elmélete. Gyakorlat - Mintavételezés, DT-LTI rendszermodellek

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

(kidolgozta: Dr. Nagy Zoltán egyetemi adjunktus)

Numerikus Matematika

Konjugált gradiens módszer

Jelek és rendszerek Gyakorlat_02. A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával.

0-49 pont: elégtelen, pont: elégséges, pont: közepes, pont: jó, pont: jeles

Numerikus módszerek beugró kérdések

Komputeralgebrai Algoritmusok

valós számot tartalmaz, mert az ilyen részhalmazon nem azonosság.

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Ipari matematika 2. gyakorlófeladatok

Matematikai geodéziai számítások 5.

Problémás regressziók

Differenciálegyenletek

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

Partíció probléma rekurzíómemorizálással

2. Hogyan számíthatjuk ki két komplex szám szorzatát, ha azok a+bi alakban, illetve trigonometrikus alakban vannak megadva?

Hurokegyenlet alakja, ha az áram irányával megegyező feszültségeséseket tekintjük pozitívnak:

Átírás:

MATLAB OKTATÁS 4. ELŐADÁS LINEÁRIS, NEMLINEÁRIS ÉS DIFFERENCIÁL- EGYENLETRENDSZEREK MEGOLDÁSA Dr. Bécsi Tamás Hegedüs Ferenc

LINEÁRIS EGYENLETRENDSZEREK MEGOLDÁSA A MATLAB a lineáris egyenletrendszerek megoldásához külön operátorral rendelkezik. Az mldivide, azaz \ operátor az Ax = B lineáris egyenlet-rendszer x megoldását szolgáltatja. Szintaktika: Működés: x = A \ B x = mldivide(a, B) Ha A n n négyzetes mátrix és B n k mátrix, akkor x az Ax = B lineáris egyenletrendszer megoldása. Ha A m n mátrix, ahol m n, és B m k mátrix, akkor x az Ax = B alulhatározott lineáris egyenletrendszer legkisebb négyzetek szerinti megoldása.

LINEÁRIS EGYENLETRENDSZEREK MEGOLDÁSA PÉLDA solve/lin.m %% Ordinary square-size problem % Solve A.x = b A = [1, 2; 2, 1]; b = [3; 3]; x = A \ b; disp(x); %% Underdetermined system % Obtain least-square solution for A.x = b A = [2, 4, 0; 0, 5, 10]; b = [ 8; 20]; x = A \ b; disp(x); 1 2 2 1 x 1 x 2 = 1 1 2 4 0 0 5 10 x 1 x 2 x 3 = x 1 x 2 = 3 3 t 2 t 2 1 + t 4 x 1 x 2 x 3 = 8 20

POLINOM GYÖKEINEK MEGHATÁROZÁSA Polinomok gyökkereséséhez a roots függvény használható. A gyökök megadásával a polinom együtthatóinak számítása a poly függvény segítségével történhet. Szintaktika: Működés: r = roots(p) p = poly(r) A roots függvény a p együtthatóvektorral megadott polinom gyökeit számolja ki. A p vektor n + 1 polinom együtthatót tartalmaz, x n együtthatójától kezdve, és visszatér az ezeket tartalmazó vektorral. Pl.: p = [2 0 7 1] a 2x 3 + 7x + 1 polinomot reprezentálja. A poly függvény az r gyökökkel adott polinom p együtthatóvektorát számítja ki, és visszatér vele.

POLINOM GYÖKEINEK MEGHATÁROZÁSA PÉLDA solve/polyn.m solve/poly_plot.m %% Find roots % Specify polynomial 6.x^5 - x^4 + 5.x^3 + % 2.x^2-10.x + 23 = 0 p = [6, -1, 5, 2, -10, 23]; r = roots(p); disp(r); % Re-create coefficient vector based on roots p2 = poly(r); disp(p2); % Evaluate polynomial at roots y = polyval(p, r); disp(y); %% Plot roots plot(r, 'o');

POLINOMOK SZORZÁSA, OSZTÁSA Polinomok szorzásához és osztásához a conv és deconv függvények használhatóak. Szintaktika: Működés: m = conv(p, s) [q, r] = deconv(p, s) A conv függvény a p és s együtthatóvektorokkal megadott polinomok szorzatát számítja ki, és visszatér a szorzat polinom együtthatóvektorával (m). A deconv függvény a p és s együtthatóvektorokkal megadott polinomokkal polinomosztást hajt végre, és a hányados polinomjának (q) és a maradék polinomnak (r) az együtthatóvektoraival tér vissza.

FÜGGVÉNY MUTATÓK (FUNCTION HANDLES) A függvény mutatók (function handles) olyan változók, melyeket egy függvényhez társítunk. Lehetővé teszik, hogy: Rajtuk keresztül függvényhívásokat valósítsunk meg. Függvényt adjunk át argumentumként másik függvénynek. Paraméterezzünk olyan függvényeket, melyeknek kötelező argumentum-listája van. Külön fájlban nem létező, ún. névtelen függvényeket (anonymous functions) hozzunk létre.

FÜGGVÉNY MUTATÓK (FUNCTION HANDLES) PÉLDA fcn_handle.m eval_fcn.m %% Create function handles % Create function handle for a second order % polynomial. poly2 = @ (x, a, b, c) a * x^2 + b * x + c; % Function handle with fixed a, b, c % parameters. poly2_111 = @(x) poly2(x, 1, 1, 1); %% Display results % Call the function handle with free % parameters. disp(poly2(2, 1, 1, 1)); % Call the function handle with fixed % parameters. disp(poly2_111(2)); % Pass the function handle to another % function to evaluate. disp(eval_fcn(poly2_111, 2)); % Function that evaluates another % function passed by the function % handle parameter fcn, at x. function y = eval_fcn(fcn, x) y = fcn(x); end

NEMLINEÁRIS EGYENLETRENDSZEREK MEGOLDÁSA Nemlineáris egyenletrendszerek megoldására az Optimization Toolbox fsolve függvénye használható. Az fsolve függvény az F x = 0 nemlineáris egyenletrendszer x megoldását szolgáltatja, ahol x vektor vagy mátrix, F x pedig vektorértékű függvény. Szintaktika: [x_s, f_s] = fsolve(f, x_0, opts) Működés: Az fsolve az x_0 pontból kiindulva megpróbálja az F függvény mutatóval megadott F x = 0 nemlineáris egyenletrendszer megoldását megtalálni, az opts argumentumban megadott beállítások mellett. A visszatérési értékek a megoldás helye x_s és értéke f_s (f s = F x s ). Az opts argumentumban átadott beállítás struktúra az optimoptions függvény segítségével készíthető el.

FSOLVE BEÁLLÍTÁSOK (OPTIMOPTIONS) Név Érték Algorithm (algoritmus) trust-region-dogleg (*) trust-region levenberg-marquardt Display (kijelzés) off or none nincs iter információ minden iterációs lépésben final (*) csak végleges információ FunctionTolerance (függvényérték tűrés) StepTolerance (lépés méret tűrés) OptimalityTolerance (optimalitás tűrés) Kilépési tűrés a függvényértékre, pozitív skalár. Az alapértelmezett érték 1e-6. Kilépési tűrés a lépés méretére, pozitív skalár. Az alapértelmezett érték 1e-6. Kilépési tűrés az elsőrendű optimalitásra, pozitív skalár. Az alapértelmezett érték 1e-6. PlotFcn (grafikus megjelenítő függvény) @optimplotx aktuális pont ábrázolása @optimplotfval függvényérték ábrázolása @optimplotstepsize aktuális lépés méret ábrázolása * Alapértelmezett opció.

NEMLINEÁRIS EGYENLETRENDSZEREK MEGOLDÁSA PÉLDA solve/mf.m solve/nonlin.m solve/nonlin_plot.m %% Parameters of Pacejka Magic formula D = 1.0; C = 1.45; B = 15.0; E = 0.4; %% Compute slip curve % Signed slip values are valid from -1 to 1 s = -1:0.01:1; % Calculate adhesion coefficient curve mu = mf(s, D, C, B, E); %% Solve nonlinear equation to find the slip % value where mu is 0.9 * mu_max mu_max90 = 0.9 * D; % Function handle that represents F(x) = 0 fcn = @(x) mf(x, D, C, B, E) - mu_max90; % Solve equation from initial point 0 [s_max90_0, fcn_max90_0] = fsolve(fcn, 0); % Solve equation from initial point 1 [s_max90_1, fcn_max90_1] = fsolve(fcn, 1); % Display result disp(s_max90_0); disp(s_max90_1); %% Plot results figure(); hold on; % Plot slip curve plot(s, mu); % Plot points of solution plot(s_max90_0, mu_max90, 'o'); plot(s_max90_1, mu_max90, 'o'); % Hans Pacejka's Magic Formula % tire model equation function mu = mf(s, D, C, B, E) mu = D.* sin(c.* atan(b.* s... - E.* (B.* s - atan(b.* s)))); end

NEMLINEÁRIS EGYENLETRENDSZEREK MEGOLDÁSA PÉLDA

KÖZÖNSÉGES DIFFERENCIÁLEGYENLET-RENDSZEREK MEGOLDÁSA A MATLAB számos függvényt kínál elsőrendű közönséges differenciálegyenletek kezdeti érték problémáinak megoldására. Ezek az ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb, és az ode15i. Mindegyik megoldó bizonyos típusú problémákra használható a leghatékonyabban. Merev (stiff) differenciálegyenlet-rendszernek nevezünk olyan differenciálegyenletrendszereket, melyeket az explicit módszerek csak elfogadhatatlanul kicsi időlépés mellett képesek megoldani. Általános, nem merev (nonstiff) differenciálegyenlet-rendszerek megoldására az ode23 és az ode45, míg merev (stiff) differenciálegyenlet-rendszerek megoldására az ode15s és az ode23s használható jól.

EXPLICIT NUMERIKUS KDE MEGOLDÁS ሶ Adott az alábbi kezdeti érték probléma: y t = f t, y t, y t 0 = y 0 Explicit Euler-módszer (előrehaladó): A differenciál-hányados az alábbi előrehaladó differencia-hányadossal közelíthető: y t+h y t yሶ t = f t, y t h Így a megoldás a t + h időpillanatban az alábbiak szerint közelíthető: y t + h y t + hf t, y t Tegyük fel, hogy a kezdetiérték-probléma megoldása a 0; t F intervallumon érdekes számunkra. Osszuk fel az intervallumot ekvidisztáns módon N intervallumra: t i = ih, i = 0 N h = t F N A t i+1 időpillanatban a megoldás az alábbi rekurzív formulával közelíthető, mely mivel az előző időpillanatbeli értékek ismertek azonnal kiértékelhető: y i+1 = y i + hf(t i, y i )

IMPLICIT NUMERIKUS KDE MEGOLDÁS Adott az alábbi kezdeti érték probléma: yሶ t = f t, y t, y t 0 = y 0 Implicit Euler-módszer (hátrahaladó): A differenciál-hányados az alábbi hátrahaladó differencia-hányadossal közelíthető: yሶ t = f t, y t y t y t h h Így a megoldás a t + h időpillanatban az alábbiak szerint közelíthető: y t y t h + hf t, y t Tegyük fel, hogy a kezdetiérték-probléma megoldása a 0; t F intervallumon érdekes számunkra. Osszuk fel az intervallumot ekvidisztáns módon N intervallumra: t i = ih, i = 0 N h = t F N A t i+1 időpillanatban a megoldás az alábbi rekurzív formulával közelíthető: y i+1 = y i + hf(t i+1, y i+1 ) A fenti formula nem értékelhető ki azonnal, egy egyenletrendszert kell numerikusan megoldani, hogy y i+1 értékét megkapjuk.

MATLAB ODE A MATLAB ode függvényei az yሶ t = f t, y t, y t 0 = y 0 kezdeti érték probléma megoldását szolgáltatják a megadott t s = [t 0, t f ] intevallumon. Szintaktika: [t, y] = odexxx(f, t_s, y_0, opts) Működés: Az odexxx az y_0 kezdeti értékből kiindulva a t_s = [t_0, t_f] intervallumon megoldja az f függvény mutatóval megadott yሶ t = f t, y t differenciálegyenletrendszert az opts argumentumban megadott beállítások mellett. A visszatérési értékek a kiszámított megoldás-értékek y és a hozzájuk tartozó időpontok t oszlopvektorai. Az opts argumentumban átadott beállítás struktúra az odeset függvény segítségével készíthető el.

ODE BEÁLLÍTÁSOK (ODESET) Név RelTol (relatív tűrés) AbsTol (abszolút tűrés) Érték Megengedhető hiba relatív értéke minden egyes megoldás-komponens esetén, pozitív skalár. Megengedhető hiba abszolút értéke. Pozitív skalár érték esetén minden egyes megoldás komponensre vonatkozik. A komponensekre egyenként is megfogalmazható, ekkor a komponensek számával megegyező hosszúságú vektor. OutputFcn (kimeneti grafikus megjelenítő függvény) @odeplot minden megoldáskomponens ábrázolása időben @odeprint megoldás és időlépés ábrázolása InitialStep (kezdeti időlépés) MaxStep (maximális időlépés) A megoldónak javasolt kezdeti időlépés. A megoldó által használható maximális időlépés.

MATLAB ODE PÉLDA ode/ode.m ode/ode_plot.m ode/vdp.m ode/vdp_plot.m ode/vdp100.m %% Inputs % Specify time span t_0 = 0; t_f = 10; % Specify initial value y(t0) y_t_0 = 10; %% Solve dy(t) = t, y(0) = 10 % Function that evaluates dy(t) = t f_1 = @(t, y) t; % Solve the differential equation [t_1, y_1] = ode45(f_1, [t_0, t_f], y_t_0); %% Solve dy(t) = y(t), y(0) = 10 % Function that evaluates dy(t) = y f_2 = @(t, y) y; % Solve the differential equation [t_2, y_2] = ode45(f_2, [t_0, t_f], y_t_0); %% Plot results figure; subplot(2, 1, 1) % Plot solution of dy(t) = t plot(t_1, y_1); subplot(2, 1, 2) % Plot solution of dy(t) = t plot(t_2, y_2); yሶ t = t, y 0 = 10 y t = t2 2 + 10 yሶ t = y t, y 0 = 10 y t = 10e t