Laboratorium Modelowaia i symulacji 008 r. Wydział Elektryczy Zesół Automatyki (ZTMAiPC) ZERiA LABORATORIUM MODELOWANIA I SYMULACJI Ćwiczeie Rozwiązywaie rówań róŝiczkowych zwyczajych metodą klasyczą. Metoda Eulera.. Cel ćwiczeia Celem ćwiczeia jest zaozaie się z metodami rozwiązywaia liiowych rówań róŝiczkowych zwyczajych (w tym metodami umeryczymi) w języku Matlab.. Wrowadzeie. Rówaiem róŝiczkowym liiowym azywamy rówaie ostaci: && & ( ) ( ) ( m ) a y + a y +... + a y + a y + a0 y = b0 + b + b + bm + & & b m ( m) () w rówaiu tym: wymuszeie y odowiedź Rozwiązaiem rówaia () jest całka będąca sumą całki staowiącej rozwiązaie rówaia róŝiczkowego jedorodego oraz jedej z całek szczególych będącej rozwiązaiem rówaia róŝiczkowego iejedorodego.: y = y + yu () y(t) składowa rzejściowa (swoboda) jest rozwiązaiem rówaia (3): ( ) ( ) a y + a y +... + a && y + a y& + a0 y = 0 (3) yu(t) składowa wymuszoa Rozwiązaie rówaia jedorodego (II rzędu): Będziemy rozatrywać rówaie ostaci: odstawiamy: d y dy a + b + cy = 0 (4) r r r y = e y' = re, y'' = r e (5) mamy: r r r ar e + bre + ce = 0 (6) i dalej: ar + br + c = 0 (7) Rówaie (7) zwae jest rówaiem charakterystyczym. Istieją astęujące wariaty rozwiązaia:. Dwa róŝe ierwiastki (rzeczywiste) r i r Ćwiczeie Rozwiązywaie rówań róŝiczkowych --
Laboratorium Modelowaia i symulacji 008 r.. Jede ierwiastek odwójy r, y = C e r + C e r r, y = ( C + C ) e 3. Dwa ierwiastki zesoloe, srzęŝoe r = α+iβ, r = α-iβ α y = e C cos β + C si β ) ( Stałe C, C wyzacza się dla zadaych waruków oczątkowych. (8) (9) (0) Rozwiązaie rówaia iejedorodego (I rzędu) metoda uzmieiaia stałej. Sosób rozwiązaia rówaia iejedorodego ierwszego rzędu zostaie rzedstawioy a rzykładzie. Rozatrzmy rówaie: dy 3 y = () Krok ierwszy: Rozwiązaie rówaia jedorodego (metoda rozdzieleia zmieych). dy y = 0 () y dy = dy = y l( y ) = l( ) + C (3) Podstawieie: C = l( C ); C 0, daje astęującą całkę ogólą rówaia (): y = C (4) Krok drugi: Uzmieieie stałej C : C = u( y = u( dy du( dy du( (5) = + u( = u( + Krok trzeci: Podstawieie (5) do () du( 3 du( 3 u( + u( = = du( = u ( = + C (6) Krok czwarty: Podstawieie (6) do (5): dy dy = ( + C) + = 3 + C (7) Krok Piąty: Rozwiązaie rówaia () 3 y = 3 + C = 3 + C = + C (8) ( ) Ćwiczeie Rozwiązywaie rówań róŝiczkowych --
Laboratorium Modelowaia i symulacji 008 r. 5 0 C = 3 C = C = -3 5 Y 0-5 -0-5 - -.5 - -0.5 0 0.5.5 X Wykres. Ilustracja rozwiązaia rówaia () dla trzech róŝych wartości wsółczyika C 3. Metoda Eulera Rozatrywać będziemy zagadieia oczątkowe, tz. będziemy chcieli zaleźć rozwiązaie rówaia róŝiczkowego dla zadaej wartości u 0 (t 0 ) w ukcie oczątkowym t 0 : du( t) = f ( u( t), t) dt u ( t = u 0 ) Wrowadźmy ozaczeia: t i = t 0 +i t, u i =u(t i ), f i =f(u i,t i ). Ogólą metodą a rozwiązaie rówaia róŝiczkowego, jest zaisaie go w ostaci całkowej a astęie odcałkowaie i zastosowaie rzybliŝeia a całkę wystęującą o lewej stroie. W metodzie Eulera ochodą zastęuje się ilorazem róŝicowym w rzód oartym a węzłach t i t +. Całka o lewej stroie rzybliŝaa jest w związku z tym iloczyem wartości fukcji w oczątku rzedziału i jego długości. Dla metody Eulera mamy: u + u = f ( u, t ) u+ = u 0 + tf ( u t Wzór rzedstawia zaleŝość omiędzy wartością astęą a orzedią wyzaczaego rozwiązaia. t ozacza krok całkowaia (dyskretyzacji). Uleszoa metoda Eulera (MIDPOINT) Z uwagi a wolą zbieŝość metody Eulera, aby zachować duŝą dokładość obliczeń tą metodą trzeba stosować bardzo mały krok całkowaia. Zwiększa to ilość wykoywaych oeracji a w astęstwie wydłuŝa czas otrzeby a uzyskaie rozwiązaia. Zwiększeiu ulega teŝ wymagaa ilość amięci oeracyjej iezbęda do wykoaia całkowaia. PowyŜsze iedogodości owodują, Ŝe częściej stosuje się uleszoą metodę Eulera (MIDPOINT). Polega oa a wrowadzeiu dodatkowego uktu (środek rzedziału). Odowiedie wzory rzedstawioo oiŝej: t u = u + f ( u, t ) + (0) u = u + t f ( u, t ) + W metodzie tej wartość fukcji dla t +/ oblicza się z dwa razy miejszym krokiem. Są rówieŝ moŝliwe ie modyfikacje metody Eulera. + +, t ) (9) Ćwiczeie Rozwiązywaie rówań róŝiczkowych -3-
Laboratorium Modelowaia i symulacji 008 r. 4. Program ćwiczeia: W ćwiczeiu rozwiązywae będą dwa rówaia róŝiczkowe: a) y& + y = 0 + 0cos t rzy waruku ocz. = () b) & y + y& + 5y = t rzy waruku ocz. = 0, y& (0) = () Zostaą zarezetowae trzy sosoby rozwiązaia tych rówań: - metodą aalityczą - metodą Eulera - rzy wykorzystaiu istiejących w systemie Matlab fukcji wsierających rozwiązywaie rówań róŝiczkowych (ODE Ordiary Differetial Equatios) I. Rozwiązywaie rówaia róŝiczkowego ():. Rozwiązaie rówaia o wsółczyikach stałych met. klasyczą: y& + y = 0 + 0cos t, = a) Rozwiązaie: rozwiązaie ogóle (rówaie jedorode): rówaie charakterystycze: r + = 0 r = całka ogóla (rozwiązaie rówaia jedorodego): y = C e y - składowa swoboda. rzewidujemy całkę szczególą ostaci: A + B cos( t) + C si(t) Po odstawieiu całki szczególej do ostaci ogólej rozwiązywaego rówaia otrzymao: A = 5, B = 5/, C = 5/ Z waruku oczątkowego:, C = -/, więc: t 5 y( t) = e + 5 + (cos t + si t) b) W okie oleceń Matlaba wrowadzić astęujące oleceia: >> t = 0:0.:0 ; % wektor wartości zmieej iezaleŝej >> y = (-/)*e(-.*t)+5+(5/)*(cos(.*t)+... si(.*t)); % wektor rozwiązań >> lot(t, y); % wykres Oisać i skoiować wykres.. Rozwiązaie rówaia róŝiczkowego metodą Eulera: a) W systemie Matlab utworzyć owy m-lik (File New M-file). Wrowadzić astęujący skryt: deltat = 0.; t_euler = 0:deltat:0; y_euler = zeros(size(t_euler)); y_euler(,) = ; for i = :legth(t_euler)- y_euler(,i+) = y_euler(,i) + deltat.*(0+0.*... cos(.*t_euler(,i)) -.*y_euler(,i)); ed t Ćwiczeie Rozwiązywaie rówań róŝiczkowych -4-
Laboratorium Modelowaia i symulacji 008 r. Zaisać skryt w liku euler_y.m, w katalogu odaym rzez rowadzącego. Z liii oleceń Matlaba wisać: >> euler_y ; >> lot(t_euler, y_euler); Oisać i skoiować wykres. Dokoać zmia w skrycie zgodie ze wskazówkami rowadzącego (zmiaa kroku całkowaia, ew. zmiaa całkowaej fukcji, waruku oczątkowego, zmiaa metody ( midoit )) Korzystając ze zaych oleceń umieścić a jedym rysuku i odowiedio oisać wykresy będące rozwiązaiami rówaia () metodą klasyczą i metodą Eulera. 3. Rozwiązaie rówaia róŝiczkowego metodą ODE: Zadaie Dla rówaia () aisać rogram rozwiązujący je metodą ODE II. Rozwiązywaie rówaia róŝiczkowego ():. Rozwiązaie rówaia o wsółczyikach stałych met. klasyczą: & y + y& + 5y = t, = 0, y& (0) = c) Rozwiązaie: Rozwiązaie ogóle (rówaie jedorode): Rówaie charakterystycze: r + r + 5 = 0 WyróŜik rówaia charakterystyczego jest miejszy od zera, a więc rówaie osiada dwa ierwiastki zesoloe, srzęŝoe: r = + j, r = j całka ogóla (rozwiązaie rówaia jedorodego): t y t) = e C cos( t) + C ( si( )) ( t Z uwagi a to, Ŝe o rawej stroie rozwiązywaego rówaia wystęuje liiowa fukcja t rzewidujemy całkę szczególą ostaci: A t + B Podstawiając całkę szczególą do ostaci ogólej, otrzymao astęujące stałe: A =, B =. 5 5 Z waruków oczątkowych: C =/5, C =47/50, więc: y u = t, 5 5 i ostateczie: t 47 y = y + yu = t + e cos( t) + si( t) 5 5 5 50 d) W okie oleceń Matlaba wrowadzić astęujące oleceia: >> t = 0:0.:0; >> y = (/5).*t-(/5)+e(-t).*((/5).*cos(.*t)+... (47/50).*si(.*t)); >> lot(t,y);. Rozwiązaie rówaia róŝiczkowego metodą Eulera: Ćwiczeie Rozwiązywaie rówań róŝiczkowych -5-
Laboratorium Modelowaia i symulacji 008 r. Zadaie Naisać algorytm rozwiązaia rówaia róŝiczkowego () metodą Eulera. Wskazówka Drugą ochodą, rzedstawić w ostaci ilorazu róŝicowego II rzędu. Korzystając ze zaych oleceń umieścić a jedym rysuku i odowiedio oisać wykresy będące rozwiązaiami rówaia () metodą klasyczą i metodą Eulera. 3. Rozwiązaie rówaia róŝiczkowego metodą ODE: Aby wykorzystać ODE aleŝy rówaie -tego rzędu zamieić a układ rówań I rzędu. Dla rówaia II rzędu: & y + y& + 5y = t, = 0, y& (0) = dokouje się zamiay a układ rówań I rzędu wykorzystując astęujące odstawieia y = y, oraz y = y&. Wtedy owyŝsze rówaie moŝa zaisać jako: y& = y y& = 5y y + t Wykorzystując edytor systemu Matlab (File New M-file) zaisać owyŝszy układ rówań w liku rowaie.m w astęujący sosób: fuctio dy = rowaie(t,y) dy=[y();(-5)*y()-*y()+t]; y() ozacza tu ochodą zmieej y rzędu (-), y() ozacza szukaą fukcję y(t). W celu rozwiązaia układu rówań róŝiczkowych -go rzędu aleŝy wisać z liii oleceń Matlaba: >> [t_ode,y_ode]=ode45('rowaie',[0 0],[0;]); >> lot(t_ode, y_ode(:,), t, y) >> leged('ode', 'Rozwiązaie aalitycze'); Pierwszy arametr wywołaia fukcji ode45 azwa fukcji oisującej rozwiązyway układ rówań róŝiczkowych, drugi arametr zakres zmia zmieej iezaleŝej (t), trzeci arametr kolumowy wektor waruków oczątkowych. W wyiku obliczeń zwrócoy zostaie: t wektor wartości zmieej iezaleŝej, dla których wyzaczoo rozwiązaie, y macierz wartości fukcji y(t) oraz y (t). Korzystając z fukcji omocy zaozaj się z iymi metodami rozwiązywaia rówań róŝiczkowych zaimlemetowaymi w Matlabie w ostaci fukcji. Oracowaie srawozdaia W srawozdaiu aleŝy umieścić wykresy rozwiązań omawiaych rówań. Porówać rozwiązaia aalitycze z umeryczymi dla róŝych arametrów (krok całkowaia, metoda Eulera, ODE). Omówić jak zmiaa arametrów rozwiązań umeryczych wływa a dokładość rozwiązaia. Zadaie 3 Naisać skryt w języku Matlab rozwiązujący rówaie róŝiczkowe () wstę teoretyczy (dowola omawiaa metoda). Literatura. B. Mrozek, Z. Mrozek: MATLAB i Simulik: oradik uŝytkowika. Helio, Gliwice, 004.. A. Zalewski, R. Cegieła: Matlab - obliczeia umerycze i ich zastosowaia.wydawictwo Nakom, Pozań, 000. 3. J. Brzózka, L. Dorobczyński: Programowaie w Matlab. Wydawictwo Mikom,Warszawa, 998. Ćwiczeie Rozwiązywaie rówań róŝiczkowych -6-