Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer Michael Hanke, Johan Karlander 2 april 2008 1 Beskrivning och mål Matematiska modeller inom vetenskap och teknik utgörs nästan uteslutande av differential- eller integralekvationer. Det är därför nödvändigt att ha metoder för att effektivt lösa dessa ekvationer. En stor del av den matematiska expertisen har ända sedan Newton och Leibniz introducerade differentialkalkylen varit inriktad på att förstå och lösa just differentialekvationer. Tyvärr är det endast för några få ekvationer det existerar en analytisk eller sluten lösning och för verkliga problem behöver vi därför nästan alltid använda numeriska metoder. Denna laboration går ut på att lösa ordinära differentialekvationer med hjälp av numeriska metoder. Det kommer visa sig att även till synes enkla problem kan vara mycket svåra att lösa numeriskt. Målet med laborationen är att: föstå principerna för numeriska metoder för randvärdesproblem i en dimension, kunna välja, och uppskatta egenskaperna för, olika numeriska algoritmer så att du slutligen kan förstå och lösa standardproblem noggrannt och kritiskt granska resultaten. 2 Förberedelser 1. Studera användningen av några av MATLABs verktyg för icke-linjära ekvationer (fzero, roots) och numerisk integration (quad, quadl)! (Kapitel 10.1, 10.2, 11.1.1 i Användarhandledningen eller i online-dokumentationen) 1
2. Repetera de matematiska grunderna för ordinära differentialekvationer från tidigare kurser! 3. Läs relevanta delar i föreläsningsanteckningarna! 3 Problem 3.1 Teoretiska frågor 1. Sant eller falskt: En liten residual f(x) garanterar en noggrann lösning till ett system av icke-linjära ekvationer. 2. Vad skulle du säga om konvergenshastigheten för en iterativ metod om efterföljande iterationer har felen (a) 10 2, 10 4, 10 8, 10 16,... (b) 10 2, 10 4, 10 6, 10 8,... 3. Vilket av följande beteenden är möjliga vid användning av Newtons metod för lösning av icke-linjära ekvationer? (a) Metoden konvergerar linjärt (b) Metoden konvergerar kvadratiskt (c) Metoden konvergerar inte alls 4. Vilken speciell egenskap skiljer ett randvärdesproblem från ett initialvärdesproblem för en ordinär differentialekvation? 5. Har ett randvärdesproblem för en ODE alltid en unik lösning? 6. När en differensmetod används för att omvandla ett randvärdesproblem för en differentialekvation till ett system av algebraiska ekvationer, vilken egenskap bestämmer om systemet blir linjärt eller icke-linjärt? 7. Finita differens- och finita elementmetoder för randvärdesproblem omvandlar originalsystemet till ett system av algebraiska ekvationer. Varför kräver oftast det resulterande linjära systemet mindre än O(N 3 ) operationer att lösa? 8. Vilken kvadratur, Newton-Côtes eller Gauss, gäller för varje av följande beskrivningar: 2
(a) Lättare att beräkna noder och vikter; (b) Lättare att använda för ett generellt intervall [a, b]; (c) Noggrannade för samma antal noder; (d) Har maximalt gradtal för antalet noder; (e) Noder är lätta att återanvända då ordningen ändras; 3.2 Icke-linjära ekvationssystem Uppgifterna i detta kapitel innehåller lösning av icke-linjära ekvationssystem med ökande svårighetsgrad. 1. Sambandet mellan tryck p, specifik volym v och temperatur T för en gas ges av van der Waals tillståndsekvation, (p + a v 2 ) (v b) =RT där R är en universell konstant och a och b är konstanter som beror på vilken gas som modelleras. Vi har R =0.082054, och för koldioxid, a =3.592 and b =0.04267. Beräkna den specifika volymen v givet temperaturen T = 300 och trycken p =1, 10 och 100. Jämför dina resultat med ideala gaslagen, pv = RT. Denna kan vid behov användas som en startgissning till den iterativa metoden för van der Waalsekvationen. 2. Härledningen av den Gaussiska tvåpunktskvadraturen för noderna t 1,t 2 och vikterna w 1,w 2, på intervallet [ 1, 1], leder till följande system av ickelinjära ekvationer: w 1 + w 2 = 2, w 1 t 1 + w 2 t 2 = 0, w 1 t 2 1 + w 2t 2 2 = 2/3, w 1 t 3 1 + w 2 t 3 2 = 0. Lös detta system för de obekanta t 1,t 2,w 1,w 2. Hur många lösningar kan du hitta? Obs: För att en lösning här skall vara meningsfull måste t i [ 1, 1]. Om detta gäller är lösningen dessutom unik. 3
3.3 Bratuproblemet Bratuproblemet är randvärdesproblemet u = λe u, 0 <t<1 med λ>0 och randvillkoren u(0) = u(1) = 0. Beroende på parametern λ har detta problem två, en eller ingen lösning. För λ =1 finns exakt två lösningar varav den ena är enkel att beräkna medan den andra är svår. Din uppgift är att beräkna lösningarna för λ =1med olika numeriska metoder. 1. Använd finita differensmetoden med n ekvidistanta inre noder! Låt h = 1/(n +1)och t i = ih för i =0,...,n+1. Det resulterande systemet blir icke-linjärt för de diskreta approximationerna y i. Plotta de olika lösningarna för n =1, 3, 7, och 15! 2. Försök att hitta den andra lösningen! Tips: Båda lösningar har positiv lutning vid t =0. 3.4 Det magiska talet π Det reella talet π =3.141592653...är ett av de mest fascinerande talen i naturvetenskapen. Ända sedan antikens dagar har man fösökt att precist och effektivt beräkna detta tal. En ide är att använda den definita integralen 1 1 0 4 dx = π. 1+x2 I detta problem skall du försöka att approximera denna integral med numerisk kvadratur. 1. Använd de sammansatta mittpunkts-, trapets- och Sipsonkvadraturerna för att beräkna π för olikasteglängderh. Försökatt beskrivafelet somenfunktion av h för varje metod, och jämför metodernas noggrannhet (baserat på det riktiga värdet för π). Finns det ett minsta värde h för vilket en minskning av h inte leder till ett noggrannare resultat? Om så, varför? Anmärkningar: 1 Detta är varken den snabbaste eller bästa metoden! 4
(a) En approximativ sekvens av steglängder kan vara: 1/2,1/4,1/8,1/16 osv. (b) Vi räknar med ett fel som beter sig asymptotiskt som e(h) ch p. Med andra ord, kvadraturen är av ordning p. Ordningen kan beräknas på följande sätt: Antag att vi har beräknat två approximationer med fel e(h) och e(h/q) för steglängderna h respektive h/q. Då gäller att p log e(h)/e(h/q). log q 2. Beräkna π med samma metod men med MATLABs inbyggda rutiner för adaptiv kvadratur och med olika feltoleranser. Hur tillförlitliga är de inbyggda rutinernas feluppskattningar? 3. Upprepa de föregående stegen för integralen 1 0 x log xdx = 4 9. Observera att integranden är obestämd (0 )vidx =0. Beräkna gränsvärdet och använd detta istället. 3.5 Adaptiv kvadratur För sammansatta kvardraturregler har vi ett fel på formen I(f,h) =I(f)+ch p + O(h r ), r > p. För den sammansatta trapetsregeln T (f,h) vetviattp =1, r =4och att c beror på andraderivatan av f. På samma sätt som för adaptiv stegkontroll för ordinära differentialekvationer är det frestande att använda ett mindre h på delintervall där andraderivatan är stor för att reducera det totala antalet funktionsutvärderingar. Eftersom andraderivatan av f inte är känd måste en automatisk feluppskattning användas. Antag att en sådan automatisk feluppskattning e est (h) är tillgänglig för någon kvadraturformel I(f,h). En adaptiv strategi kan då använda sig av divideand-conquer-strategin: Beräkna I(f,a,b) som en approximation till b f(x)dx. a Beräkna feluppskattningen e est (h). 5
Om e est (h) tol, returnera resultatet som den approximativa integralen. I annat fall, dela upp integralen i b a f(x)dx = (a+b)/2 a f(x)dx + b (a+b)/2 f(x)dx och använd divide-and-conquer-strategin med halverad tolerans på båda integraler separat. Returnera I(f,a,(a + b)/2) + I(f,(a + b)/2,b). Det absoluta felet för det slutgiltiga resultatet är mindre än den önskade toleransen. Observera att detta är en rekursiv algoritm! Din uppgift är nu följande: 1. Implementera en adaptiv numerisk integrationsmetod genom att använda trapesregeln med steghalvering. Gör det också för Simpsons metod (p =4 och r =6). 2. Testa din implementation, MATLABs kvadraturrutiner quad och quadl, samt den sammansatta Simpsonkvadraturen med humps funktionen (på 0 x 3) för olika toleranser med avseende på antalet funktionsutvärderingar! Hur många funktionsutvärderingar behöver Simpsonkvadraturen för att erhålla samma noggrannhet? 4 Utvärdering 1. Laborationen kan göras i grupper om två. 2. En labbrapport skall lämnas in i mitten av period 4. Denna skall inkludera beskrivning, svar och kod (sådan att jag kan köra den på min dator) till uppgifterna. 6