Lennart Edsberg NADA 3 april 007 D11, M1 Laboration 4 A Numerisk behandling av integraler och begynnelsevärdesproblem Denna laboration ger 1 bonuspoäng. Sista bonusdatum 7 april 007 Efter den här laborationen skall du kunna integrera numeriskt och förstå begreppet nogrannhetsordning. Du skall också känna igen problemtypen begynnelsevärdesproblem för ordinära differentialekvationer och kunna lösa denna typ av problem med differensmetoder. Du skall kunna analysera noggrannhetsordning och bestämma stabilitetsegenskaper både teoretiskt och experimentellt. Läsanvisningar: PP kap 5 och 6, MATLABprogram i Ex 5., 5.3, 5.6, 6.6 och 6.9 1. Numerisk integrering - noggrannhetsordning Följande integral ska beräknas I = 1 1 x +dx A. Gör först följande laborationsförberedande uppgifter a)-f): a) I nedanstående figur är grafen för integranden, dvs y = x + uppritad. Uppskatta den sökta integralens värde ur grafen. 1.8 1.6 1.4 y 1. 1 0.8 1.5 1 0.5 0 0.5 1 1.5 x b) Beräkna integralens värde analytiskt, dvs exakt. I nedanstående tabell har ett antal trapetsvärden som approximerar I redan beräknats:
h T (h) E T = T (h) I T (h) T extr (h) E Textr = T extr (h) I 1 x x x 0.5 x x x x x 0.5.796336 x x x x 0.15.797160 x x x x 0.065.797366 x x y x c) Räkna ut och fyll i för hand de värden som ska stå i x-positionerna samt i y-positionen. Använd värdena 1.5 =1.4745, =1.41414,.5 =1.581139, 3=1.73051 d) Antag att värdet y tas som approximation till I. Ange det uppskattade trunkeringsfelet, E T med den tumregel som anges i PP 5:1B. Ger denna uppskattning en över- eller underskattning av det verkliga felet? e) Antag att f i -värdena beräknats med 6 korrekta decimaler innan de sattes in i trapetsregeln. Vad blir avrundningsfelet E a i T (h) (även kallat tabellfelet, E tab )? f) Vad blir totalfelet E tot? Ge ett slutligt svar på formen I = Ĩ ± E tot, därlämpligt antal siffror ges i svaret Ĩ. B. Skriv sedan ett MATLABprogram som beräknar integralen numeriskt med trapetsregeln (se PP 5:1A). Undersök hur approximationsfelet (trunkeringsfelet), E t, beror av steglängden, h, genom att plotta felen som funktion av steglängderna h =1/8, 1/16, 1/3, 1/64.Använd MATLABs kommando loglog för ploten. Visa hur vi uppskattar metodens noggrannhetsordning, p, medhjälp av denna plot. Vad blir p? Utöka sedan programmet så att integralen beräknas med trapetsregeln och en extrapolation (se PP 5:1B). Plotta i samma diagram som ovan felet E Textr som funktion av h. Vad blir noggrannhetsordningen p nu? För en metods noggrannhetsordning gäller e t = I T (h) Ch p. där C är en konstant, T (h) är det numeriskt uträknade integralvärdet (med trapetsregeln eller trapetsregeln och en extrapolation) och I är det exakta värdet.. Numerisk integrering - svängningstid I den här uppgiftsdelen skall du räkna ut svängningtiden för en pendel. En pendels svängningstid T beror av utslagsvinkeln ϕ 0 enligt formeln: L T =4 g I(ϕ 0) där L är pendelns längd, g är tyngdaccelerationen och I(ϕ 0 )= π/ 0 dϕ 1 k (sin ϕ), k =sinϕ 0 Låt L =1m och g =9.81 m/s. Skriv ett program som beräknar svängningstiden T för ϕ 0 - värdena 5,10,...90 grader. För att beräkna integralen I(ϕ 0 ) används Matlabfunktionen quadl. Plotta resultatet, dvs T som funktion av ϕ 0 iengraf.
En ofta använd approximation av T är svängningstiden för små svängningar: L T =π g Denna approximation är bra för små utslagsvinklar, men relativfelet ökar med ökande utslagsvinkel. Plotta även en graf som visar relativfelet R T som funktion av utslagsvinkeln då 0 ϕ 0 90 grader. 3. Begynnelsevärdesproblem - stabilitet och noggrannhetsordning Givet är följande differentialekvation dy =sin(t) y, y(0) = 0, t [0, 10]. dt I denna deluppgift ska ovanstående differentialekvation lösas numeriskt med Eulers framåtmetod (explicit metod) och trapetsmetoden (implicit metod). Uppgiften går ut på att undersöka hur trunkeringsfelet avtar med steglängden h (för små värden på h), dvs noggrannheten hur den numeriska lösningen uppför sig för stora h-värden (stabilitet) a) Laborationsförberedande uppgift:lös först differentialekvationen exakt (analytiskt) och redovisa lösningen på papper. Denna lösning betecknas y(t). b) Laborationsförberedande uppgift:formulera Eulers metod för den givna differentialekvationen och räkna 3 steg framåt med steget h =0.1, dvs beräkna approximationer till y(0.1), y(0.) och y(0.3). c) Dela in tidsintervallet [0, 10] i n ekvidistanta steg h och skriv ett MATLABprogram som beräknar lösningen för n = 100, n = 500 och n = 1000. i) Plotta i samma graf den exakta lösningen y(t) samt de de tre numeriska lösningarna, y(t; h). ii) Plotta även i ett loglog-diagram felet vid t =10, y(10) y(10; h), som funktion av h. Vilken noggrannhetsordning hos Eulers framåtmetod kan utläsas ur diagrammet? d) Laborationsförberedande uppgift:formulera trapetsmetoden för den givna differentialekvationen och räkna 3 steg framåt med steget h =0.1. e) Gör samma beräkningar som i c) men för trapetsmetoden och rita motsvarande plottar. Vilken noggrannhetsordning har trapetsmetoden? Givet en steglängd h, vilken av metoderna producerar den mest noggranna lösningen? f) För att studera stabilitetsegenskaperna hos Eulers framåtmetod skall vi nu lösa problemet igen. Dela denna gång in tidsintervallet [0, 10] i n =0, 10 och 5 ekvidistanta steg. Beräkna den numeriska lösningen med Euler framåt för de olika steglängderna och plotta den numeriska lösningen tillsammans med den exakta lösningen i samma graf. Fundera på vad du ser och försök att förklara varför den numerisk lösningen uppför sig som den gör.
4. Begynnelsevärdesproblem - Partikelflöde förbi en cylinder, adaptiv metod En långsträckt cylinder med radien R =befinner sig i en inkompressibel vätska som strömmar i positiv x-riktning med hastigheten 1. Cylinderns axel är vinkelrät mot flödesriktningen. Det hela kan betraktas som ett tvådimensionellt problem i rummet. Läget, x(t) och y(t) för en flödespartikel vid tiden t bestäms av partikelns startposition, x(0) och y(0) och följande system av differentialekvationer dx dt =1 R (x y ) (x + y ), dy dt = R xy (x + y ) ( ) a) Laborationsförberedande uppgift:skriv om systemet på vektorform, dvs du dt = f(u) där u =(x, y) T. Skriv den MATLABfunktion som svarar mot högerledet i ( ). b) Beräkna med hjälp av ode45 och rita strömningskurvor för tre flödespartiklar som vid beräkningens början befinner sig vid x = 4 och vid y-positionerna 0.4, 1.0 och 1.6. I figuren har strömningskurvan för en partikel som startar i x = 4 och y =1.6 ritats. Använd axis( equal ). 3 y 1 0 4 0 4 6 x 5. Begynnelsevärdesproblem - Några lösningar till svängningsekvationen, konstantstegsmetod Följande differentialekvation, svängningsekvationen, är en matematisk modell av en massa m, som utför svängningar x(t) under inverkan av en extern kraft F (t), en motverkande fjäderkraft och en motverkande dämpningskraft: m d x dt + d dx ν + kx = F (t) dt ( ) Antag att systemet från början är i vila, dvs dx x(0) = 0, dt (0) = 0 Vid tiden t =0börjar den externa kraften verka med ett konstant värde F 0,dvs F (t) =F 0 om t 0 och 0 om t < 0 Simulera massans insvängningsförlopp genom att lösa begynnelsevärdesproblemet från tiden t =0 till t = T. Antag följande värden på problemets parametrar: m =1, k =1, F 0 =1och T =10. ( )
a) Laborationsförberedande uppgift:skriv om begynnelsevärdesproblemet ( ) som ett system på vektorform av första ordningen. Skriv sedan den MATLABfunktion som svarar mot systemets högerled. b) Sätt d ν =1. Använd funktionen RKsteg i läroboken avsnitt 6:D för att lösa differentialekvationen. Skriv av den till en funktionsfil eller hämta den från kurshemsidans MATLABbibliotek. Lös problemet för h =1, 0.5, 0.5 och 0.15 och skriv ut motsvarande approximation av x(t ). Genomför felskattning enligt tumregeln i bokens avsnitt 6:D och bedöm vilken steglängd som behövs för att få 4 decimalers noggrannhet i x(t ). c) Använd den steglängd du fått fram i a) för att beräkna och i en och samma graf rita lösningarna x(t) på intervallet [0,T] för följande värden på d ν : d ν =0.4, 0.8, 1.5,.0, 3.0. Markera i grafen vilken kurva som svarar mot resp d ν -värde. Hur många timmar ungefär har den här laborationen tagit? En fråga på kursutvärderingen i slutet av kursen kommer att gälla tidsåtgång och laborationsomfång. Tänk redan nu igenom vad som är bra och vad som kan förbättras!