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

Relevanta dokument
TANA19 NUMERISKA METODER

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Ordinära differentialekvationer,

k 1 B k 2 C ges av dx 1 /dt = k 1 x 1 x 1 (0) = 100 dx 2 /dt = k 1 x 1 k 2 x 2 x 2 (0) = 0 dx 3 /dt = k 2 x 2 x 3 (0) = 0

Laboration 1, M0039M, VT16

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

Ordinära differentialekvationer,

Laboration 6. Ordinära differentialekvationer och glesa system

Laboration 3. Funktioner, vektorer, integraler och felskattning

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

Laboration 3. Funktioner, vektorer, integraler och felskattning

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

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

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

Matematisk analys för ingenjörer Matlabövning 3 Numerisk lösning av differentialekvationer

0.31 = f(x 2 ) = b 1 + b 2 (x 3 x 1 ) + b 3 (x 3 x 1 )(x 3 x 2 ) = ( ) + b 3 ( )(

Numeriska metoder för ODE: Teori

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Sammanfattning av föreläsning 11. Modellbygge & Simulering, TSRT62. Föreläsning 12. Simulering. Föreläsning 12. Numeriska metoder och Simulering

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Runge-Kuttas metoder. Repetition av FN6 (GNM kap 6.

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering

Sammanfattning (Nummedelen)

4 Numerisk integration och av differentialekvationer

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

Repetitionsfrågor: 5DV154 Tema 4: Förbränningsstrategier för raketer modellerade som begynnelsevärdesproblem

LABORATION cos (3x 2 ) dx I =

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

Laboration 2 Ordinära differentialekvationer

2 Matrisfaktorisering och lösning till ekvationssystem

TANA17 Matematiska beräkningar med Matlab

Numeriska metoder för ODE: Teori

Numeriska metoder för ODE: Teori

Föreläsning 8, Numme i2,

TAIU07 Matematiska beräkningar med Matlab

Ordinära differentialekvationer (ODE) 1 1

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

2D1250 Tillämpade numeriska metoder II

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

Laboration 2 M0039M, VT2016

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

DN1212 Numeriska Metoder och Grundläggande Programmering DN1214 Numeriska Metoder för S Lördag , kl 9-12

Introduktion till MATLAB

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

Matlab övningsuppgifter

) + γy = 0, y(0) = 1,

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Institutionen för matematik KTH. Tentamensskrivning, , kl B1210 och 5B1230 Matematik IV, för B, M, och I.

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen del 1 SF1511, , kl , Numeriska metoder och grundläggande programmering

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

Facit Tentamen i Beräkningsvetenskap I (1TD393) STS ES W K1

Attila Szabo Niclas Larson Gunilla Viklund Mikael Marklund Daniel Dufåker. GeoGebraexempel

Tentamen i Beräkningsvetenskap II, 5.0 hp,

TANA19 NUMERISKA METODER

Laboration 1 i SF1544: Öva på Matlab och konstruera en optimal balk Avsikten med denna laboration är att:

Tentamen i Beräkningsvetenskap II, 5.0 hp,

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

(a) Skriv en matlabsekvens som genererar en liknande figur som den ovan.

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

Linjärisering, Jacobimatris och Newtons metod.

TMV151/181 Matematisk analys i en variabel M/Td, 2013 MATLAB NUMERISK LÖSNING AV ORDINÄRA DIFFERENTIALEKVATIONER

1. Bestäm definitionsmängden och värdemängden till funktionen f(x,y) = 1 2x 2 3y 2. Skissera definitionsmängden, nivålinjerna och grafen till f.

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.

NUMPROG, 2D1212, vt Föreläsning 9, Numme-delen. Stabilitet vid numerisk behandling av diffekvationer Linjära och icke-linjära ekvationssystem

Newtons metod. 1 Inledning. CTH/GU LABORATION 3 MVE /2014 Matematiska vetenskaper

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

Tentamen, del 2 DN1240 Numeriska metoder gk II för F

SF1544 LABORATION 2 INTEGRATION, MONTE-CARLO OCH BLACK-SCHOLES EKVATION FÖR OPTIONER

Omtentamen i DV & TDV

Linjärisering och Newtons metod

TMA226 datorlaboration

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

SF1633, Differentialekvationer I Tentamen, torsdagen den 7 januari Lösningsförslag. Del I

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

Tentamen i Teknisk-Vetenskapliga Beräkningar

Envariabelanalys 5B1147 MATLAB-laboration Derivator

Laboration 3. Ergodicitet, symplektiska scheman och Monte Carlo-integration

SF1545 Laboration 1 (2015): Optimalt sparande

BEGREPPSMÄSSIGA PROBLEM

Tentamen i Beräkningsvetenskap II, 5.0 hp,

D 1 u(x, y) = e x (1 + x + y 2 ), D 2 u(x, y) = 2ye x + 1, (x, y) R 2.

Laboration: Grunderna i MATLAB

Numerisk lösning till den tidsberoende Schrödingerekvationen.

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen i Beräkningsvetenskap I, DV, 5.0 hp, OBS: Kurskod 1TD394

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

UPG6 Miniprojekt 3: Kastparabler, projektiler, och raketer

DN1240, numo08 Stefan Knutas, Fredrik Båberg, B.10: Nalle-Maja gungar

Newtons metod. 1 Inledning. 2 Newtons metod. CTH/GU LABORATION 6 MVE /2013 Matematiska vetenskaper

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

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

a = a a a a a a ± ± ± ±500

Laboration 1. 1 Matlab-repetition. 2 Störningsräkning 1. 3 Störningsräkning 2

ODE av andra ordningen, och system av ODE

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

Matematisk analys, laboration I. Per Jönsson Teknik och Samhälle, Malmö Högskola

Transkript:

TANA21+22/ 30 september 2016 LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER 1 Inledning Vi skall studera begynnelsevärdesproblem, både med avseende på stabilitet och noggrannhetens beroende av steglängden. Vi studerar ett exempel av första ordningen och löser sedan ett system av differentialekvationer. 1.1 Mål Målet med denna laboration är att du skall få övning i att använda Eulers metod och Runge-Kuttas klassiska metod. få viss insikt i vad stabilitet innebär. få övning i att hantera system av differentialekvationer. få insikt i hur man praktiskt kan analysera trunkeringsfelets beroende av steglängden. få övning i att använda en av MATLAB:s ode-lösare för att lösa ett praktiskt problem. 2 Eulers metod och Runge-Kuttas metod Vi skall börja med att studera ett första ordningens begynnelsevärdesproblem. Vi skall använda Eulers metod (Euler framåt) och Runge-Kuttas klassiska metod för att lösa ett problem på formen y = f(x,y), x x 0, y(x 0 ) = y 0. Vi låter vårt testproblem vara: y = 5y +2.5 = f(x,y), 0 x x n, y(0) = 1. ( ) exakt lösning: y = e 5x +1 2 Följande enkla funktion (finns att kopiera på kurshemsidan) kan användas för att implementera Eulers metod. function y=myeuler(f,x0,xn,y0,h) y=y0; x=x0; plot(x0,y0,. ) hold on while x < xn-h/2 y=y+h*f(x,y); x=x+h; plot(x,y,. ) disp([x y ]) end hold off Uppgift 2.1 Skapa funktioner Skapa myeuler.m i din hemkatalog. Modifiera också programmet till myrungekutta.m som använder Runge-Kuttas metod och skapa en funktion som beräknar f(x, y) för testproblemet. Det måste vara en funktion av två variabler även om inte båda används. En anynom funktion kan skapas i kommandofönstret: f=@(x,y) -5*y+2.5 1

2.1 Stabilitet Eulers och Runge-Kuttas metoder är exempel på explicita metoder. Dessa kräver i regel relativt korta steglängder för att kunna fungera. Om steglängden, h, är större än en viss kritisk gräns (som är olika för olika differentialekvationer) så avlägsnar sig den numeriska approximationen alltmer från den exakta lösningen då n växer. Vi säger då att metoden är instabil för detta h. I motsatt fall säges metoden vara stabil. Uppgift 2.2 Datorexperiment Undersök vad som inträffar i de två metoderna för h = 0.1, h = 0.45 och h = 0.6. För vilka steglängder är respektive metod stabil? h Euler Runge-Kutta Sätt xn = 5 0.1 0.45 0.6 3 Numerisk simulering av en regulator Vi skall nu studera en numerisk simulering av en regulator för en vattentank. En tank är fylld med vatten enligt figuren nedan. Vid tidpunkt t är vattennivån x(t). Vattentillförseln y(t) styrs av en regulator. Dess egenskaper beror på förstärkningskoefficienterna K P och K I. Målet för regulatorn är att hålla x(t) så nära noll som möjligt. regulator y(t) + x(t) 0 tank Figur 1: Illustration av vattentanken med regulator 2

Vi behöver också införa hjälpvariabeln z(t) = t 0 x(s) ds Regulatorns funktion kan då beskrivas med ett system av ordinära differentialekvationer 1 x (t) = 5 10 5 x(t)+y(t) 10 3, y (t) = K P x(t) y(t) K I z(t)+10 3, t > 0, z (t) = x(t). Vi använder begynnelsevillkoret x(0) = 1, y(0) = 0.001, z(0) = 0. Förstärkningskoefficienterna är K P = 0.1 och K I = 0.001. Om vi inför vektorn v = v(t) enligt: x(t) v(t) = y(t) kan systemet skrivas som v = f(t,v), där f(t,v) = Av +b. z(t) 5 10 5 1 0 10 3 1 Vi har A = K P 1 K I, b = 10 3 och v(0) = 0.001 1 0 0 0 0 Uppgift 3.1 Skapa funktionsfil Skapa en funktionsfil odefun.m som beräknar f(t,v). (Funktion att utgå från finns på kurshemsidan.) 3.1 Experiment med Eulers metod Uppgift 3.2 Stabilitet Använd myeuler för att approximera lösningen fram till t n = 500 och studera figuren. Anrop av myeuler sker med: v=myeuler(@odefun, t0, tn, v0, h) (v0 är startvektorn, som måste vara en kolumnvektor.) Använd steglängderna h = 1.5, 2.1, 2.24 och 2.26. Vilken var den största steglängd, där vi hade stabilitet? Uppgift 3.3 Noggrannhet Använd Eulers metod för att approximera lösningen fram till t n = 100. Använd format short e. Trunkeringsfelet i approximationen med steglängden h kan uppskattas som skillnaden mellan approximationerna med steglängderna 2h och h. Börja med steglängden h = 0.2 och halvera den tills trunkeringsfelet i x(100) är högst 10 5. Vid vilken steglängd uppfylldes noggrannhetskravet? Hur många steg gjordes? Ange värdet av x(100). Ange värdet av trunkeringsfelet i x(100). 1 För en härledning hänvisas till Torkel Glad och Lennart Ljung, Reglerteknik, Studentlitteratur, 1989. 3

3.2 Experiment med MATLAB:s ode23 Vi skall nu jämföra Eulerlösningen för den minsta steglängden ovan med lösningen som fås med MATLAB:s ode23 och standardtolerans. Standardtoleranser innebär att vi får ett absolut fel på ca 10 6. I ode23 uppskattas lokala felet i varje steg. Utifrån det bestäms en lämplig steglängd, som används i nästa steg. Detta innebär att steglängden rättar sig efter funktionens utseende och totala antalet steg kan hållas nere. För att anropa ode23 skriver man: [t,v]=ode23(@odefun,[t0 tn],v0) eller bara ode23(@odefun,[t0 tn],v0) så plottas lösningen automatiskt. Uppgift 3.4 Experiment med ode23 Använd ode23 för att lösa differentialekvationen fram till t n = 100. Använd format long e Rita först graferna, genom att anropa ode23 utan utparametrar. Beräkningspunkterna blir markerade, så det syns att variabel steglängd används. Vilken färg har x(t)-kurvan? Bestäm därefter lösningen genom att anropa ode23 med utparametrar. Ange värdet av x(100). Jämför med den bästa lösningen med Eulers metod. Blev det någon större skillnad mellan lösningarna? Hur många steg användes (fås med size(t))? Jämför med Euler. Vad kan sägas om effektiviteten? Uppgift 3.5 Variation av regulatorns egenskaper. Variera K I genom att använda ytterligare tre värden, K I = 0.01, 0.05, 0.125. Använd ode23 för att lösa differentialekvationen fram till t n = 100 för alla tre fallen. Studera enbart graferna. För vilket av de tre K I -värdena i denna deluppgift fungerar regulatorn bäst? Vad händer när K I ökar? Ange det/de K I som inte ger en fungerande regulator. För vilket K I togs flest steg? Studera lösningskurvan med K I = 0.125, då t går från 0 till 40. Var används korta steglängder? 4

4 Undersökning av trunkeringsfelets beroende av steglängden Vi återvänder till fallet K P = 0.1, K I = 0.001. 4.1 Lokalt trunkeringsfel Om vi använder Eulers metod och gör ett steg med steglängd 2h erhålls en approximation, α, till värdet x(2h). Gör vi ett nytt steg, nu med steglängd h, erhålls en approximation, β, till värdet x(h). Antag att det lokala felet är proportionellt mot h p. Då fås α x(2h) C(2h) p, β x(h) Ch p. p kan enkelt uppskattas med hjälp av α, β, x(2h) och x(h) om vi dividerar sambanden med varandra. Vi känner inte värdena x(0.5) och x(0.25). Vi vet dock att Runge-Kuttas klassiska metod är mycket noggrannare än Eulers metod. Därför kan vi approximera det exakta värdet x(0.5) med värdet som vi får med Runge-Kuttas metod. På samma sätt för x(0.25). Uppgift 4.1 Bestäm p för lokala felet Använd format short e och kör programmet med Eulers metod, h = 0.5 och t n = 0.5. Ta sedan h = 0.25 och t n = 0.25. Vad blir approximationerna α, respektive β? α = β = Approximera nu x(0.5) med Runge-Kuttas metod med steglängd h = 0.5. Approximera x(0.25) med Runge-Kuttas metod med steglängd h = 0.25. Vad blir x(0.5) och x(0.25)? x(0.5) x(0.25) Uppskatta p. 4.2 Globalt trunkeringsfel Låt 4h vara en steglängd. Låt oss beräkna en approximation α till x(100) med någon numerisk metod. Sedan tas steglängderna 2h och h, och beräknas approximationer β respektive γ till x(100). Antag att det globala felet är proportionellt mot h p. Då fås ekvationssystemet Uppgift 4.2 Ange uttryck α x(100)+c(4h) p, β x(100)+c(2h) p, γ x(100)+ch p. Ge ett uttryck för att bestämma p med hjälp av α, β och γ. (Se t.ex. Ex.saml. 9.26) 5

Uppgift 4.3 Bestäm noggrannhetsordningen för Eulers metod (a) Kör programmet med Eulers metod och h = 2, t n = 100. Ta sedan h = 1 och h = 0.5. Vilka värden får approximationerna α, β och γ? α = β = γ = (b) Uppskatta p (som är noggrannhetsordningen för Eulers metod). (c) Stämmer resultatet överens med svaret i Uppgift 4.1? Motivera ditt svar! 5 Frivillig tillämpning: Glödlampan Följande ekvation utgör en modell för temperaturutvecklingen i en glödlampa (y(t) betecknar temperatur i lämplig skala och t är tiden), dy dt = q (y4 1), y(0) = 1 I modellen antas att glödtråden värms enligt Ohms lag och kyls av strålning enligt Boltzmanns T 4 -lag. Strömmen slås på vid t = 0 och slås av vid t = 0.005 så { 10 000, t 0.005 q = 0, t > 0.005 Uppgift 5.1 Beräkning av temperaturen Lös begynnelsevärdesproblemet med matlab-rutinen ode23 (skapa en fil med funktionen för högerledet) och plotta y(t) så man ser hur tråden svalnar. Låt alltså tiden gå en liten stund då lampan är släckt. Ta ut din bild på skrivaren eller gör en skiss. Uppgift 5.2 Steglängdsval Rutinen ode23 använder ju automatisk steglängdskontroll. Kör ode23 utan utparametrar och studera steglängdernas variation. Kommentera. Uppgift 5.3 Studera grafen När man släcker en bilstrålkastare ser man hur glödtråden svalnar och svartnar medan uppvärmning tycks gå mycket fortare. Verifieras detta fenomen av modellen? 6