Lennart Edsberg NADA 9 mars 6 D11, M1 Laboration 4 A Numerisk behandling av integraler och begynnelsevärdesproblem Denna laboration ger 1 bonuspoäng. Sista bonusdatum 5 april 6 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 a) Följande integral ska beräknas I = 1 1 x + Gör först följande laborationsförberedande uppgifter: a) I nedanstående figur är integrandens graf uppritad. Uppskatta den sökta integralens värde ur grafen. 1.8 1.6 1.4 y 1. 1.8 1.5 1.5.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 T = T extr (h) I 1 x x x.5 x x x x x.5.796336 x x x x.15.79716 x x x x.65.797366 x x y x c) Räkna ut och fyll i de värden som ska stå i x-positionerna samt i y-positionen. 1.5 =1.4745, =1.41414,.5 =1.581139, 3=1.7351 d) Antag att värdet y tas som approximation till I. Uppskatta trunkeringsfelet, E trunk 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 tabellfelet, E tab? f) Vad blir totalfelet E I? Ge ett slutligt svar på formen I = Ĩ ± E I,därlämpligt antal siffror ges i svaret Ĩ. Skriv sedan ett MATLABprogram som beräknar integralen numeriskt med trapetsregeln (se PP 5:1A). Undersök hur approximationsfelet (trunkeringsfelet), E T, beror avsteglängden, h, genom att plotta felen som funktion avsteglängderna h =1/8, 1/16, 1/3, 1/64.AnvändMATLABs kommando loglog för plottarna. Visa hur vi uppskattar metodens noggrannhetsordning, p, med hjälp avdenna 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 som funktion av h. Vad blir noggrannhetsordningen p nu? För en metods noggrannhetsordning gäller E h = I T (h) Ch p. där C är en konstant, T (h) är det numeriskt uträknade integralvärdet (med trapetsregeln samt trapetsregeln och en extrapolation) och I är det exakta värdet.. Numerisk integrering - adaptivitet Beräkna integralen π x π ( A = e.1 }{{ ) } f(x) numeriskt med MATLAB-funktionen quadl. Sätt toleransen till 1 8 och använd detta integralvärde som referensvärde. Beräkna sedan integralen med trapetsregeln. Börja med antal intervall, n =. Hur mycket och varför skiljer sig integralvärdet beräknat med trapetsregeln från referensvärdet? Dubblera antalet intervall i trapetsregeln tills dess att T quadl T (h) 1 6. Här är T quadl integralvärdet uträknat med quadl och T (h) värdet uträknat med trapetsregeln och steglängden h. Jämför antal funktionsevalueringar (dvs hur många gånger f(x) är beräknat). Vilken avmetoderna har använt flest funktionsevalueringar? Varför? Om du gör anropet [I_t,fnceval]=quadl( fun_name,a,b,tol) när du använder quadl så innehåller variabeln fnceval antalet funktionsevalueringar quadl har använt vid beräkning av resultatet.
3. Numerisk integrering - svängningstid I den här delen skall du räkna ut svängningtiden för en pendel. En pendels svängningstid T beror avutslagsvinkeln ϕ enligt formeln: L T =4 g I(ϕ ) där L är pendelns längd, g är tyngdaccelerationen och I(ϕ )= π/ dϕ 1 k (sin ϕ), k =sinϕ Låt L =1moch g =9.81 m/s. Skrivett program som beräknar svängningstiden T för ϕ - värdena 5,1,...9 grader. För att beräkna integralen I(ϕ ) används Matlabfunktionen quadl. Plotta resultatet, dvs T som funktion av ϕ iengraf. En ofta använd approximation av T är svängningstiden för små svängningar: T s =π Denna approximation är bra för små utslagsvinklar, men relativfelet ökar med ökande utslagsvinkel. Plotta även en graf som visar relativfelet R Ts som funktion avutslagsvinkeln då ϕ 9 grader. 4. Begynnelsevärdesproblem - stabilitet och noggrannhetsordning Givet är följande differentialekvation dy =sin(t) y, y() =, t [, ]. 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 =.1, dvs beräkna approximationer till y(.1), y(.) och y(.3). c) Dela in tidsintervallet [, ] i n ekvidistanta steg h och skrivett MATLABprogram som beräknar lösningen för n = 1, n = 5 och n = 1. 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 =, y() y(; 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 =.1. L g
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 de två numeriska metoderna skall vi nu lösa problemet igen. Dela denna gång in tidsintervallet [, ] i n =4,, 1 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. g) Gör om samma sak med trapetsmetoden. På vilket sätt och varför skiljer sig beteendet hos den numeriska lösningen uträknad med trapetsmetoden från den numeriska lösingen du fick med Euler framåt? Om du vill kan du redovisa så här långt. I så fall visa upp för assistenten vad gruppen har gjort. Namn + pers.nr:... Namn + pers.nr:... har godkänt på deluppgifterna 1-4 i Lab 4, NumProg för M1, vt-6 5. 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 avpartikelns startposition, x() och y() och följande system av differentialekvationer dt =1 R (x y ) (x + y ), dy dt = R xy (x + y ) ( ) a) Laborationsförberedande uppgift: Skrivom systemet på vektorform, dvs du dt = f(u) där u =(x, y) T. Skrivden 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.4, 1. och 1.6. I figuren har strömningskurvan för en partikel som startar i x = 4 och y =1.6 ritats. 3 y 1 4 4 6 x 6. 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), tyngdkraften, en motverkande fjäderkraft och en motverkande dämpningskraft: m d x dt + d ν + kx = F (t) dt ( ) Antag att systemet från början är i vila, dvs x() =, dt () = ( ) Vid tiden t =börjar den externa kraften verka med ett konstant värde F,dvs F (t) =F om t och om t < Simulera massans svängningar genom att lösa begynnelsevärdesproblemet från tiden t =till t = T. Antag följande värden på problemets parametrar: m =1, k =1, F =1och T =1. a) Laborationsförberedande uppgift: Skrivom 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. Skrivavden till en funktionsfil eller hämta den från kurshemsidans MATLABbibliotek. Lös problemet för h =1,.5,.5 och.15 och skrivut motsvarande approximation avx(1). 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(1). 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 [,T] för följande värden på d ν : d ν =.4,.6,.8, 1., 1.5,.,.5, 3..Markerai 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!