Kapitel 8. Lösning av ordinära differentialekvationer

Relevanta dokument
Ansvariga lärare: Yury Shestopalov, rum 3A313, tel (a) Problem 1. Använd Eulers metod II (tre steg) och lös begynnelsevärdesproblemet

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.

SF1625 Envariabelanalys Lösningsförslag till tentamen

1.7. Differentialekvationer

TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

f(x + h) f(x) h f(x) f(x h) h

SF1625 Envariabelanalys Tentamen Måndagen den 11 januari 2016

Omtentamen i DV & TDV

Del I: Lösningsförslag till Numerisk analys,

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Tentamen i matematik. f(x) = ln(ln(x)),

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

SF1664 Tillämpad envariabelanalys med numeriska metoder Lösningsförslag till tentamen DEL A

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

y + 1 y + x 1 = 2x 1 z 1 dy = ln z 1 = x 2 + c z 1 = e x2 +c z 1 = Ce x2 z = Ce x Bestäm den allmänna lösningen till differentialekvationen

Approximation av funktioner

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

v0.2, Högskolan i Skövde Tentamen i matematik

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

Lösningar till Matematisk analys

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

Ordinära differentialekvationer,

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

Kapitel 7. Numerisk derivering och integration

Laboration 2 Ordinära differentialekvationer

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Differentialekvationer. Repetition av FN5 (GNM kap 6.

Matlab övningsuppgifter

Sammanfattning (Nummedelen)

ODE av andra ordningen, och system av ODE

KTH 2D1240 OPEN vt 06 p. 1 (5) J.Oppelstrup

SVAR: Det är modell 1 som är rimlig för en avsvalningsprocess. Föremålets temperatur efter lång tid är 20 grader Celsius.

AUTONOMA DIFFERENTIALEKVATIONER

Institutionen för Matematik, KTH Lösningar till tentamen i Analys i en variabel för I och K (SF1644) 1/ e x h. (sin x) 2 1 cos x.

Kapitel 4. Iterativ lösning av ekvationer

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

Lösningsförslag, preliminär version 0.1, 23 januari 2018

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

Ordinära differentialekvationer,

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Lösningar till Tentamen i Beräkningsvetenskap II, 5.0 hp, Del A. 1. (a) ODE-systemet kan skrivas på formen

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson, Sebastian Pöder

Komplettering: 9 poäng på tentamen ger rätt till komplettering (betyg Fx).

Kapitel 9. Partiella differentialekvationer

TATA42: Föreläsning 3 Restterm på Lagranges form

Vetenskapliga beräkningar III 139

LABORATION cos (3x 2 ) dx I =

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

Interpolation Modellfunktioner som satisfierar givna punkter

Laboration 1, M0039M, VT16

x sin(x 2 )dx I 1 = x arctan xdx I 2 = x (x + 1)(x 2 2x + 1) dx

För startpopulationer lika med de stationära lösningarna kommer populationerna att förbli konstant.

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

Visa att vektorfältet F har en potential och bestäm denna. a. F = (3x 2 y 2 + y, 2x 3 y + x) b. F = (2x + y, x + 2z, 2y 2z)

Differentialekvationer av första ordningen

Tentamensskrivning i Differentialekvationer I, SF1633(5B1206).

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer

Tentamen i tmv036c och tmv035c, Analys och linjär algebra C för K, Kf och Bt A =, = det(a λi) = e 2t + c 2. x(t) = c 1. = c 1.

Kap Dubbelintegraler.

Studietips inför kommande tentamen TEN1 inom kursen TNIU23

R LÖSNINGG. Låt. (ekv1) av ordning. x),... satisfierar (ekv1) C2,..., Det kan. Ekvationen y (x) har vi. för C =4 I grafen. 3x.

Partiella differentialekvationer av första ordningen

d dx xy ( ) = y 2 x, som uppfyller villkoret y(1) = 1. x, 0 x<1, y(0) = 0. Bestäm även y( 2)., y(0) = 0 har entydig lösning.

R AKNE OVNING VECKA 2 David Heintz, 13 november 2002

Tentamen i matematik. f(x) = 1 + e x.

Numeriska metoder, grundkurs II. Dagens program. Gyllenesnittminimering, exempel Gyllenesnittetminimering. Övningsgrupp 1

Numeriska metoder för ODE: Teori

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A. e 50k = k = ln 1 2. k = ln = ln 2

Matematik 3c Kap 2 Förändringshastighet och derivator

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

1. (a) Beräkna gränsvärdet (2p) e x + ln(1 x) 1 lim. (b) Beräkna integralen. 4 4 x 2 dx. x 3 (x 1) 2. f(x) = 3. Lös begynnelsevärdesproblemet (5p)

Instuderingsfrågor i Funktionsteori

Komplettering: 9 poäng på tentamen ger rätt till komplettering (betyg Fx).

Konvergens för iterativa metoder

= ye xy y = xye xy. Konstruera även fasporträttet med angivande av riktningen på banorna. 5. Lös systemet x

R AKNE OVNING VECKA 1 David Heintz, 31 oktober 2002

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A

Sammanfattning av ordinära differentialekvationer

EXISTENS AV EN UNIK LÖSNING TILL FÖRSTAORDNINGENS BEGYNNELSEVÄRDESPROBLEM

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

MA2001 Envariabelanalys 6 hp Mikael Hindgren Tisdagen den 9 januari Skrivtid:

Projekt Finit Element-lösare

DATORLABORATION FÖR KURSEN ENVARIABELANALYS 2

Lennart Carleson. KTH och Uppsala universitet

Omtentamen i DV & TDV

(2xy + 1) dx + (3x 2 + 2x y ) dy = 0.

ÖVN 2 - DIFFERENTIALEKVATIONER OCH TRANSFORMMETODER - SF1683. Inofficiella mål

Armin Halilovic: EXTRA ÖVNINGAR

Numerisk Analys, MMG410. Lecture 13. 1/58

OH till Föreläsning 15, Numme K2, God programmeringsteknik

dy dx = ex 2y 2x e y.

DN1212 för M: Projektrapport. Krimskramsbollen. av Ninni Carlsund

SAMMANFATTNING TATA41 ENVARIABELANALYS 1

Transkript:

Kapitel 8. Lösning av ordinära differentialekvationer Eftersom endast ett mindre antal differentialekvationer kan lösas analytiskt, är numeriska lösningsmetoder ofta av stor betydelse. Nära besläktade med differentialekvationerna är differensekvationerna, som vi först skall studera. Vetenskapliga beräkningar III, Tom Sundius 2008 1

8.1. Differensekvationer Med en differensekvation förstår man i allmänhet en ekvation, som innehåller en oberoende variabel x, en beroende variabel y samt dessutom ett antal differenser y, 2 y,... Analogin med differentialekvationerna är dock inte helt fullständig, vilket inses av följande exempel. Antag t.ex. att vi har differentialekvationen Den motsvarande differensekvationen vore då y + 2y = x. y + 2y = x. Om vi substituerar y = y(x + 1) y(x), så finner vi emellertid ekvationen som är mer praktisk att använda. y(x + 1) + y(x) = x, Vetenskapliga beräkningar III, Tom Sundius 2008 2

I allmänhet kan varje differensekvation omskrivas i en form som enbart beror av x, y(x), y(x + 1),..., y(x + n). Detta beror av operatoridentiteten E 1. För att visa hur en differensekvation av första ordningen kan lösas, skall vi studera ovanstående exempel. När vi löser en differentialekvation av formen y + 2y = x, behandlar vi som bekant först den homogena ekvationen y + 2y = 0 och löser den med en lämplig ansats. På samma sätt kan vi behandla differensekvationen y(x + 1) + y(x) = x. Vi gör substitutionen i den homogena ekvationen y = r x, y(x + 1) + y(x) = 0, Vetenskapliga beräkningar III, Tom Sundius 2008 3

varvid vi får som leder till r x (r + 1) = 0, r = 1 samt y = C( 1) x (C = konstant). För att få den fullständiga ekvationens lösning, gissar vi att y = ax + b, som vid substitution ger a(x + 1) + b + ax + b = x, eller alltså a = 1 2, b = 1 4. Den partikulära lösningen är således y = x 2 1 4, och den fullständiga lösningen blir då y = C( 1) x + x 2 1 4. Vetenskapliga beräkningar III, Tom Sundius 2008 4

Som ett exempel på en differensekvation av andra ordningen skall vi välja den rekursiva formeln y n+1 = y n + y n 1 y 0 = 0, y 1 = 1. Denna formel definierar Fibonacci talen, som upptäcktes av Leonardo Fibonacci (från Pisa, c. 1170-1250) i början av 1200-talet 1. Om vi gör substitutionen y = r n, finner vi den karaktäristiska ekvationen som har lösningen r 2 r 1 = 0, r = 1 ± 5. 2 Differensekvationens lösning kan alltså skrivas [ ] n [ ] n 1 + 5 1 5 y n = C 1 + C 2. 2 2 1 Talserien härrör sig från problemet: Hur många par av kaniner kan ett enda par producera på ett år om a) varje par föder ett nytt par varje månad, som blir produktivt från och med den andra månaden, och b) inga dödsfall inträffar? Vetenskapliga beräkningar III, Tom Sundius 2008 5

Med hjälp av villkoret y 0 = 0 finner vi ekvationen 0 = C 1 + C 2, och villkoret y 1 = 1 ger ekvationen [ ] [ ] 1 + 5 1 5 y 1 = 1 = C 1 + C 2. 2 2 Lösningen till dessa ekvationer är C 1 = 1 5 = C 2, som efter substitution ger den slutliga lösningen y n = 1 {[ ] n 1 + 5 5 2 [ ] n } 1 5, 2 en formel som kan kontrolleras genom att beräkna talen ur rekursionslikheten. Observera sambandet med det gyllene snittet! Med hjälp av binomialserien kan vi också skriva lösningen i formen y n = 1 2 n 1 [( ) n 1 + ( ) n 5 + 3 ( ) n 5 2 +... + 5 ( ) ] n 5 k +... 2k + 1 Vetenskapliga beräkningar III, Tom Sundius 2008 6

Ett annat exempel på differensekvationer är y n = py n+1 +qy n 1 med p+q = 1 och y 0 = 1, y N = 0. Om vi sätter y n = r n får vi den karaktäristiska ekvationen r = pr 2 + q = pr 2 p + 1, vars lösning är r = 1, r = 1 p 1 = q p. Differensekvationens lösning kan då uttryckas y n = C 1 + C 2 (q/p) n då p q. C 1 och C 2 fås ur randvillkoren och den fullständiga lösningen är y n = pn n q n q N p N q N. Om q = p = 1 2, så är lösningen y n = (C 1 + nc 2 )r n 1 = 1 n/n. Vetenskapliga beräkningar III, Tom Sundius 2008 7

8.2. Differentialekvationer Differentialekvationerna spelar en stor roll i naturvetenskaperna. Man kan med fog säga, att en differentialekvation är den primitivaste tänkbara beskrivningen av ett naturfenomen. Som vi redan nämnt, har ingalunda alla differentialekvationer en analytisk lösning, och vi måste därför ofta ty oss till en numerisk lösning. De enklaste av de problem, som vi skall behandla, kallas initialvärdesproblem. Ett initialvärdesproblem av första ordningen kan i allmänhet uttryckas y = f(x, y); y(x 0 ) = y 0. Utgångsvillkoren är då angivna i en enda punkt (x 0 ), och problemet blir att beräkna funktionsvärden i punkterna x n = x 0 + nh, där n = 1, 2,..., och h en lämplig konstant. I randvärdesproblemen anges utgångsvillkoren i flere punkter, såsom t.ex. y = f(x, y, y ); y(a) = y a, y(b) = y b. Vetenskapliga beräkningar III, Tom Sundius 2008 8

Vad menar vi med lösningen till en differentialekvation? Låt oss t.ex. betrakta ekvationen y = x 2 y 2. Intuitivt skulle man tänka sig en kurva y = y(x) i varje punkt (x, y), där kurvans tangent y (x) uppfyller ekvationen ovan. Som vi ser, är det fråga om en rent lokal egenskap. Det finns givetvis inte en enda kurva, som utgör lösning till differentialekvationen, utan istället passerar det en kurva, som utgör en lösning till ekvationen, genom varje punkt (x 0, y 0 ). Denna tanke kan man också åskådliggöra grafiskt genom att man väljer olika punkter i (x, y) planet och beräknar tangenten till kurvan genom punkten enligt ekvationen ovan. Dessa tangentsegment anger den riktning, som lösningskurvan har lokalt, och med en smula fantasi kan man skissera olika lösningskurvor om man har tillräckligt tätt med punkter i planet. Nedan visas ett dylikt riktningsfält för ovanstående differentialekvation. Vetenskapliga beräkningar III, Tom Sundius 2008 9

För att förenkla metoden något, kan man söka efter de kurvor, längs vilka tangenterna har samma riktning (isoklinerna). I vårt exempel finner vi, att isoklinerna är en hyperbelskara: x 2 y 2 = k. Denna grafiska metod är ganska grov, men den kan likväl ge en ganska god föreställning om problemets natur, vilket kan underlätta den numeriska lösningen. Vetenskapliga beräkningar III, Tom Sundius 2008 10

Om vi endast önskar beräkna en lösningskurva, som går genom en given punkt är det onödigt att rita hela riktningsfältet. Vi kan då göra på det sätt som visas i figuren nedan. Först uppritas ett segment av en tangent till kurvan, som går genom den givna punkten, därpå en ny tangent som går genom segmentets ändpunkt etc. Vi får på detta sätt den polygonbåge, som visas i figuren. Som vi ser fungerar denna metod inte alltid så bra, beroende på att vi alltid använder föregående tangent för att beräkna nästa punkt på kurvan, vilket leder till ett systematiskt fel, om man inte väljer punkterna mycket tätt. Punkterna på den beräknade kurvan kommer sålunda alltmer att släpa efter den rätta lösningskurvans punkter. Vid varje steg följer lösningen en tangentlinje till en lösningskurva genom en viss punkt och producerar en ny punkt, som inte ligger på denna lösningskurva. Vetenskapliga beräkningar III, Tom Sundius 2008 11

I nästa steg följer lösningen tangenten till den lösningskurva som passerar genom denna felaktiga punkt osv. Även om alla lösningskurvor beter sig på samma sätt, blir kurvorna som ligger under den rätta lösningskurvan allt mindre branta, och avvikelsen tilltar. Det vore därför förnuftigare att kasta en blick framåt, beräkna tangenten där, och därpå fortsätta i den riktning, som bestäms av medeltalet av de båda tangentriktningarna. Denna idé ligger till grund för en klass av numeriska metoder för att lösa differentialekvationer, som brukar kallas prediktor-korrektor metoder. Vetenskapliga beräkningar III, Tom Sundius 2008 12

8.3. Prediktor korrektormetoder Den första som uppfann en numerisk metod för att lösa differentialekvationer av första ordningen var Leonhard Euler 2. Hans metod vidareutvecklades av Cauchy under föreläsningar i École Polytechnique3. Idén är följande: Vi utgår från ekvationen dy dx = f(x, y), under antagande av randvillkoret y(x 0 ) = y 0. Vi antar ytterligare, att f och f y är reella och kontinuerliga funktioner inom rektangeln x x 0 a, y y 0 b, och att sampelpunkterna x k = x 0 + hk är givna. Man kan då definiera en räcka av funktionsvärden y 0, y 1,..., y n med hjälp av rekursionslikheten (eller differensekvationen) y i+1 = y i + hf(x i, y i ), (i = 0, 1,..., n 1). 2 L. Euler: De Integratione Aequationum Differentialium per Approximationem, 1768-1769 3 F. Moigno: Leçons de calcul différentiel et de intégral, rédigées d aprés les méthodes et les ouvrages publiés ou inédits de M. A. L. Cauchy, 4 vol., Paris, 1840-1861 Vetenskapliga beräkningar III, Tom Sundius 2008 13

Cauchy visade, att under dessa omständigheter kommer den polygonbåge, som definieras av punkterna (x 0, y 0 ), (x 1, y 1 ),... att konvergera mot differentialekvationens lösning. Cauchys konvergensvillkor vidareutvecklades och förbättrades sedermera av Rudolf Lipschitz (1877) 4. Problemet med Eulers metod är att h (=steglängden) måste väljas liten för att metoden skall fungera. För att belysa detta problem, skall vi studera ett exempel: dy dx = e y x 2, y(0) = 0. Vi skall lösa denna ekvation med Eulers metod för x = 0, h, 2h,..., nh = 1, och väljer h = 0.05, 0.1, 0.2 och 0.3. 4 R.O.S. Lipschitz, Lehrbuch der Analysis, Vol II (1877). Vetenskapliga beräkningar III, Tom Sundius 2008 14

Resultatet visas i nedanstående tabell. Av jämförelsen med de exakta värdena framgår, att det finns ett systematiskt fel, vars storlek beror av h (jfr föregående avsnitt). Metoden måste därför modifieras, om den skall bli praktiskt användbar. Exakt lösn. Eulers approximativa metod x y h = 0.05 h = 0.10 h = 0.2 h = 0.3 0.0 0.0 0.1 0.09498 0.09694 0.09900 - - 0.2 0.17977 0.18261 0.18557 0.19200-0.3 0.25389 0.25672 0.25964-0.27300 0.4 0.31667 0.31872 0.32077 0.32505-0.5 0.36731 0.36786 0.36833 - - 0.6 0.40488 0.40329 0.40152 0.39756 0.39333 0.7 0.42839 0.42407 0.41942 - - 0.8 0.43686 0.42923 0.42119 0.40395-0.9 0.42929 0.41782 0.40582 - - 1.0 0.40477 0.38895 0.37264 0.33749 - Vetenskapliga beräkningar III, Tom Sundius 2008 15

Det är ganska lätt att skriva ett MATLAB program, som använder Eulers metod: function z=euler(funk,a,b,y0,n) % Eulers metod tillämpad på y =f(x,y) % Funktionsvärdena ges av funk(x) % n integrationssteg, randvillkor y(a)=y0 h = (b-a)/n; x = a + (0:n)*h; y(1) = y0; for i = 1:n y(i+1) = y(i) + h*feval(funk,x(i),y(i)); end z = [x, y ]; Utskriften består således av en tabell över punkter (x i, y i ). Som ett exempel skall vi tillämpa programmet på differentialekvationen y = 3x 2 y med begynnelsevillkoret y(0) = 1, vars exakta lösning är e x3. Om vi börjar med fyra steg och sedan fördubblar antalet steg upp till 512, får vi följande resultat: Vetenskapliga beräkningar III, Tom Sundius 2008 16

>> for k=1:8 m = 4*2^(k-1); s = euler( testde,0,1,1,m); disp(sprintf( %2.0f %6.4f %6.4f,m,s(m+1,2),exp(1)-s(m+1,2))) end 4 1.7676 0.9507 8 2.1181 0.6002 16 2.3726 0.3456 32 2.5312 0.1870 64 2.6207 0.0975 128 2.6684 0.0498 256 2.6931 0.0252 512 2.7056 0.0127 Tabellen innehåller funktionens beräknade värde i punkten x = 1, jämte avvikelsen från det exakta värdet (= e). Som vi ser, avtar felet sakta men säkert. Som vi redan konstaterat, finns det ett systematiskt fel i Eulers metod som beror av h. I själva verket har detta fel två komponenter. Den ena av dem beror på den rätlinjiga approximationen, som används vid varje steg. Dessutom finns det bidrag från tidigare fel. Vetenskapliga beräkningar III, Tom Sundius 2008 17

Tillsammans leder de till att den linjära approximationen inte tangerar den kurva, som vi önskat, utan istället en lösningskurva som passerar genom den nya punkten. Dessa felkomponenter brukar man kalla det lokala och det globala avkortningsfelet. Vid det första steget beräknas funktionsvärdet y 1 = y 0 + hf(x 0, y 0 ), medan funktionens Taylorutveckling ger y(x 1 ) = y 0 + hy 0 + h2 2 y (θ) = y 0 + hf(x 0, y 0 ) + h2 2 y (θ). Härav följer att det lokala avkortningsfelet blir y 1 y(x 1 ) = h2 2 y (θ) Mh 2, där M är en övre gräns för andra derivatan av lösningsfunktionen. Ett liknande lokalt fel uppträder vid varje steg av iterationsprocessen. När vi har beräknat n funktionsvärden i räckan, kommer därför n avkortningsfel att ha inträffat, så att det globala avkortningsfelet blir e = nmh 2 = M(b a)h, som är proportionellt mot h. Vetenskapliga beräkningar III, Tom Sundius 2008 18

I denna felanalys har avrundningsfelet lämnats obeaktat. Avrundningsfelen kommer också att ackumuleras, och kan analyseras på ett liknande sätt som det globala avkortningsfelet. Vi kommer då att finna, att avrundningsfelet har en övre gräns, som är omvänt proportionell mot steglängden h, alldeles som fallet var vid den numeriska beräkningen av derivator. Detta fel är dock i allmänhet mycket mindre än det globala avkortningsfelet, isynnerhet om man använder program som MATLAB, som baserar sig på dubbelprecision. Eulers metod kan härledas genom att man integrerar differentialekvationen mellan två sampelpunkter: y n+1 y n = xn+1 xn f(x, y)dx, samt approximerar integralen genom att anta, att integranden är konstant över hela intervallet: xn+1 xn f(x, y)dx hf(x n, y n ). Iställlet för att approximera integralen på detta sätt skulle vi t.ex. kunna använda någon av integrationsformlerna av Newton Cotes typ, som vi beskrev i avsnitt 7.4. Med hjälp av den symmetriska enpunktsformeln får vi t.ex. y (1) n+1 = y n 1 + 2hf(x n, y n ), som kan antas ge en bättre uppskattning av funktionsvärdet (prediktor formel). Vetenskapliga beräkningar III, Tom Sundius 2008 19