Numeriske metoder: Euler og Ruge-Kutta Matematikk 3 H 06 Iledig Differesiallikiger spiller e setral rolle i modellerigsproblemer i igeiør viteskap, matematikk, fsikk, aeroautikk, astroomi, damikk, elastisitet, biologi, medisi, kjemi, miljø viteskaper, økoomi og mage adre områder. Imidlertid er det mage differesiallikiger som dukker opp i praksis som ikke ka løses ved matematiske metoder, eller løsigee er så kompliserte at de ikke er praktisk avedbare. For å løse slike differesiallikiger bettes derfor umeriske metoder. Vi skal i det følgede se på oe umeriske metoder for å løse valige differesiallikiger på følgede form ' f (, ) ( ) 0 0 Dee tpe likiger kalles et start verdi problem (iitial value problem). Det som er gitt er e kotiuerlig fuksjo f(, ) for de deriverte til e fuksjo (). Vi øsker ikke å å fie løsige til (), me å berege tallverdier for () slik at vi ka tege () på et itervall [a, b]. -verdiee vi skal bette skal vi berege på følgede måte 3 0 h h h Her er h e skrittlegde vi øsker å forfltte oss lags -akse. Vi ka velge h stor eller lite, for eksempel h = 0., h = 0.5 eller h = 0.0. For et itervall [a, b] bereges gjere h ved skritt og h er skrittlegde. b a h hvor er et tall vi velger. gir atall I vårt start verdi problem kjeer vi 0 som er e startverdi vi ka bette år vi skal berege este verdi som er. Det vi øsker å fie er tallee,, 3,,. For å bestemme -verdier ka vi bette Talor rekker skrevet på følgede måte h h h' ''( )... Hvis h er lite, vil leddee til høre i rekke bli midre og midre. Vi teker oss at disse leddee er så små at vi ka se bort fra dem. Vi får da følgede uttrkk h h'
Numeriske metoder: Euler og Ruge-Kutta Matematikk 3 H 06 Side vi vet at ' f (, ) fra start betigelsee får vi h h f, Vi ka bruke dee formele til å fie, hvis vi kjeer verdier for 0 og 0. 0 h f 0, 0 Euler s metode Metode som vi kom fram til over kalles Euler s metode. Gitt start verdi problemet ' f (, ) ( ) 0 0 Og - verdiee 0 h, h, 3 h, Da ka vi berege -verdier for (t) ved 0 hf 0, 0 hf,. Geerelt ka vi skrive hf,
Numeriske metoder: Euler og Ruge-Kutta Matematikk 3 H 06 Eksempel Vi skal vi se på start verdi problemet ' ( ) ( 0) Dee likige er løselig og løsige er e 0 Side vi kjeer de matematiske løsige har vi mulighete til å sammelike de matematiske løsige med Euler s metode. Først bruker vi Euler s metode med h = 0.. Figure uder viser resultatet av Euler s metode sammeliget med de matematiske løsige på itervallet [0, ]. 3
Numeriske metoder: Euler og Ruge-Kutta Matematikk 3 H 06 Vi misker skrittlegde til h = 0.. Figure uder viser resultatet av Eulers metode sammeliget med de matematiske løsige på itervallet [0, ]. Figure idikerer at tilærmige blir bedre år skrittlegde h gjøres midre. Tabelle uder som sammeliker feile med Euler s metode for oe forskjellige h, bekrefter dette h k Yk Feile = () k 0. 5.800749 0.03955 0. 0.78044 0.08847 0.05 0.770853 0.0096 0.05 40.76686 0.00459 0.05 80.76388 0.0086 Si oe om FEILEN. Av orde h h h h' ''( )... 4
Numeriske metoder: Euler og Ruge-Kutta Matematikk 3 H 06 Mipuktmetode Forbedret Euler Feile i Euler s metode ka være gaske stor. Vi skal derfor se på e forbedret metode. Dee metode har flere av. De kalles mipuktmetode eller Heu s metode. I prisippet er det e Ruge-Kutta metode av orde. Euler s metode ka forbedres. Vi better da to beregiger.. Først bruker vi Euler s metode til å få e tilærmet løsig hf, *. Deretter forbedrer vi dee løsige ved h f, f, * Forbedret Euler er derfor e predictor-corrector metode. I hvert skritt daer vi først e tilærmet løsig med Euler s metode. Deretter korrigerer vi løsige med formele over. Eksempel For 0 Vi skal vi se på start verdi problemet ' ( ) ( 0) Dee likige er løselig og løsige er e 0 Side vi kjeer de matematiske løsige har vi mulighete til å sammelike de matematiske løsige med Euler s metode og forbedret Euler. h k Yk Feil Euler Feil Heu 0. 5.800749 0.03955 0.005804 0. 0.78044 0.08847 0.0039 0.05 0.770853 0.0096 0.00036 0.05 40.76686 0.00459 0.000077 0.05 80.76388 0.0086 0.00009 Vi ser at feile til mipuktmetode (forbedret Euler) er me midre e i Euler s metode. 5
Numeriske metoder: Euler og Ruge-Kutta Matematikk 3 H 06 Ruge-Kutte av orde 4 Euler s metode bettes sjelde i praksis da feile er for stor. E metode som bettes me i praksis er Ruge-Kutta av orde 4. Ruge-Kutta av orde 4 bgger på samme prisipp som forbedret Euler. Me bruker flere skritt for 0,,,..., N do : k hf, k hf h, k k3 hf h, k k4 hf h, k 3 h 6 k k k 3 k 4 Eksempel Ed Output +, + Vi skal vi se på start verdi problemet ' ( ) ( 0) Dee likige er løselig og løsige er e 0 Side vi kjeer de matematiske løsige har vi mulighete til å sammelike de matematiske løsige med Euler s metode, forbedret Euler og Ruge-Kutta orde 4. h k Yk Feil Euler Feil Heu Feil Ruge-Kutta 4 0. 5.800749 0.03955 0.005804 5. 0-6 0. 0.78044 0.08847 0.0039 4. 0-7 0.05 0.770853 0.0096 0.00036 74. 0-9 0.05 40.76686 0.00459 0.000077 5. 0-9 0.05 80.76388 0.0086 0.00009 44. 0-9 Vi ser at feile i Ruge-Kutta metode er me midre e i de adre metodee. 6
Numeriske metoder: Euler og Ruge-Kutta Matematikk 3 H 06 Newtos. lov og modellerig Vi skal se på Newtos. lov og hvorda dee likige ka løses med umeriske metoder. Iledig Newtos. lov F m a d Her er a akselerasjosvektore. Newtos. lov leder ofte til. ordes ordiære differesial likiger der de ukjete er posisjoe som fuksjo av tid. EKSEMPEL E kloss med masse m sklir lags et gulv. Kreftee som virker på klosse i vertikal retig er gravitasjoe med strke mg og ormalkrafte med strke N. Side bevegelses retige er horisotal balaseres ormalkrafte av tgdekrafte; N = mg. I horisotal retig virker friksjoskrafte fra gulvet med strke f N mg f er friksjoe. µ er e friksjoskoeffisiet, ehet: dimesjos løs og luftmotstade med strke l b v b er e luftmotstads koeffisiet, ehet kg / s. V er klosses fart horisotalt. Både friksjo og luftmotstad virker i motsatt retig av bevegelsesretige. 7
Numeriske metoder: Euler og Ruge-Kutta Matematikk 3 H 06 Newtos. lov i -retige gir da: F ma d mg b v m Bruker at farte er derivert av posisjo likig v d, dividerer på m og får følgede differesial d b d g 0 m Dette er e. ordes differesiallikig som er tpisk for ekle sstemer i klassisk mekaikk. Selv om akkurat dee likige ka løses ekelt aaltisk, motiverer dette at vi studerer umeriske løsiger av høere ordes ordiære differesiallikiger. Numerisk løsig av høere ordes ordiære differesiallikiger E ordiær differesiallikig av orde ka alltid skrives om til et sstem av koblede. ordes differesiallikiger. Vi ka derfor bruke teorie for umerisk løsig av. ordes likiger som vi allerede er kjet med. For eksempel Euler s metode, mipuktmetode og Ruge-Kutta. Det eeste e er koblige mellom variable, me fremgagsmåte er essesielt helt lik. EKSEMPEL d u du qt rt. ordes differesiallikig Ifører variabel: du v d u d du dv De opprielige differesiallikige ka å skrives dv t t q v r. ordes differesiallikig 8
Numeriske metoder: Euler og Ruge-Kutta Matematikk 3 H 06 De opprielige differesiallikige er derfor ekvivalet med du. v dv. qt v rt Merk at de første likige i sstemet (.) bare er e defiisjo av de e variabele v. Me (.) er også e bevegelseslikig for variabele u. For å bestemme e uik løsig må ma kjee iitial betigelsee for begge variablee: u u og v v 0 t 0 0 t 0 Ofte settes iitial betigelser på tidspukt t = 0, det vil si t 0 0 Vi skal å diskretere dette ligigssstemet ved bruk av Euler s metode og mipuktmetode. EULER S METODE u v u v du dv t t Begge er på forme: este = forrige + (stigigstall forrige). steg legde Ved å bette likigee (.) og (.) får vi u u v t v v q v r t hvor q q og r r t t 9
Numeriske metoder: Euler og Ruge-Kutta Matematikk 3 H 06 MIDTPUNKTMETODEN Prøve steg u u du t Bruk (.) for du/ v v dv t Bruk (.) for dv/ Euler s metode med e halv steg legde Neste steg du u u t Bruk (.) og deretter prøvesteget dv v v t Bruk (.) og deretter prøvesteget Som Euler s metode, me med stigigstallet evaluert mi mellom forrige og este. Ved å bruke (.) og (.) ka vi fie utrkk for U+ og V+ ved hjelp av U og V. Dette ka være fit for å forstå stabilitete og øaktighete til de umeriske løsige, me er sjelde ødvedig i praksis år metode implemeteres i et script. Da er det lagt mer effektivt å ku defiere de deriverte til u og v ved hjelp av (.) og (.). 0
Numeriske metoder: Euler og Ruge-Kutta Matematikk 3 H 06 Script i MatLab Sammeliger de umeriske løsigee av differesialligige u' (t) t u u(0) = -, basert på Euler og Mipuktmetode med de eksakte løsige u t % f() i diff. likige fuctio f = fuc(t,u) f=t*u^; ed, med iitialbetigelse % Euler u0=-; t0=0; ted=0; =0.9; N=(ted-t0)/; t=t0::ted; u=u0; for =:N u=[u,u()+t()*u()^*]; ed %hold o plot(t,u,'r') % Mipuktmetode u0=-; t0=0; ted=0; =0.9; N=(ted-t0)/; t=t0::ted; u=u0; for =:N s=fuc(t(),u()); % kaller fuksjoe fuc i file fuc.m s=fuc(t()+/,u()+s*/); % kaller fuksjoe fuc i file fuc.m u=[u,u()+s*]; ed plot(t,u) % Her plottes løsigee fra Euler.m og mid.m samme med % de eksakte løsige plot(t,u,'r') % plotter løsige fra Euler-metode hold o plot(t,u,'b') % plotter løsige fra Mipukt-metode t=t0:0.0:ted; % eget grid for de eksakte løsige plot(t, -./(t.^+),'k') % plotter de eksakte løsige som X leged('euler', 'Midpukt', 'Eksakt') label('t') label('u') hold off