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

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

Laboration 1, M0039M, VT16

Ordinära differentialekvationer (ODE) 1 1

Inlämningsuppgift 4 NUM131

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

Laboration 2 Ordinära differentialekvationer

Ordinära differentialekvationer,

TMV151/181 Matematisk analys i en variabel M/Td, 2013 MATLAB NUMERISK LÖSNING AV 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 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Laboration 2 M0039M, VT2016

Matlabövning 1 Funktioner och grafer i Matlab

Vetenskapsdagen 2016 SciLab för laborativa inslag i matematik eller fysik

TANA81: Simuleringar med Matlab

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

Tentamen i Teknisk-Vetenskapliga Beräkningar

Matlabövning 1 Funktioner och grafer i Matlab

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

4 Numerisk integration och av differentialekvationer

Lennart Edsberg Nada,KTH Mars 2003 LABORATIONSHÄFTE NUMERISKA METODER GRUNDKURS 1, 2D1210 LÄSÅRET 02/03. Laboration 3 4. Elmotor med resonant dämpare

Inledning. Kapitel Bakgrund. 1.2 Syfte

TAIU07 Matematiska beräkningar med Matlab

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

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

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

LABORATIONSHÄFTE NUMERISKA METODER GRUNDKURS 1, 2D1210 LÄSÅRET 03/04. Laboration 3 3. Torsionssvängningar i en drivaxel

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Matlab övningsuppgifter

ODE av andra ordningen, och system av ODE

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

Obligatoriska uppgifter i MATLAB

m 1 =40kg k 1 = 200 kn/m l 0,1 =0.64 m u 0 =5.0 mm x p,1 = X 1 sin ωt + C 1 x p,2 = X 2 sin ωt + C 2,

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Omtentamen i DV & TDV

Lösningsförslag, tentamen, Differentialekvationer och transformer II, del 1, för CTFYS2 och CMEDT3, SF1629, den 19 oktober 2011, kl. 8:00 13:00.

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

Laboration 3 Numerisk Analys

Laboration: Grunderna i MATLAB

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

MMA132: Laboration 1 Introduktion till MATLAB

Kurs 2D1213, Laboration 2: Att lösa ordinära differentialekvationer med finita differensmetoden

System av ordinära differentialekvationer

Laboration 6. Ordinära differentialekvationer och glesa system

Newtons metod och arsenik på lekplatser

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.

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

Ordinära differentialekvationer

Exempel ode45 parametrar Miniprojekt 1 Rapport. Problemlösning. Anastasia Kruchinina. Uppsala Universitet. Januari 2016

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

Omtentamen i DV & TDV

AUTONOMA DIFFERENTIALEKVATIONER

Matlabföreläsningen. Lite mer och lite mindre!

Tentamen i Beräkningsvetenskap II, 5.0 hp, Del A

TANA17 Matematiska beräkningar med Matlab

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

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

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

Matematisk Modellering

Föreläsning 6. SF1625 Envariabelanalys. Hans Thunberg, 9 november 2018

Två gränsfall en fallstudie

Övningar i MATLAB. 1. Antag x = 2 och y = 5. Beräkna följande i MATLAB a) yx 3 /(x-y) b) 3x/2y c) 3xy/2 d) x 5 /(x 5-1)

Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1

Linjära system av differentialekvationer

2D1212 NumProg för P1, VT2006 PROJEKTUPPGIFT

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

BEGREPPSMÄSSIGA PROBLEM

Beräkningsuppgift I. Rörelseekvationer och kinematiska ekvationer

Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, Del A

Department of Physics Umeå University 27 augusti Matlab för Nybörjare. Charlie Pelland

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

Tentamen i Miljö och Matematisk Modellering för TM Åk 3, MVE345 MVE maj 2012,

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

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

MATLAB övningar, del1 Inledande Matematik

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Sammanfattning (Nummedelen)

= = i K = 0, K =

Lektion 1. Kurvor i planet och i rummet

Gel esimulering 22 mars 2008

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

Envariabelanalys 5B Matlablaboration

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

de uppgifter i) Under m-filerna iv) Efter samlade i en mapp. Uppgift clear clc Sida 1 av 6

Bose-Einsteinkondensation. Lars Gislén, Malin Sjödahl, Patrik Sahlin

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

SF1626 Flervariabelanalys

Ordinära differentialekvationer,

Tentamen för kursen TME135 Programmering i Matlab för M1

15 februari 2016 Sida 1 / 32

Linjär algebra I, vt 12 Vecko PM läsvecka 4

Armin Halilovic: EXTRA ÖVNINGAR

AB2.8: Laplacetransformation av derivator och integraler. Differentialekvationer

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

Uppgift 1 R-S. Uppgift 2 R-M. Namn:...

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Funktioner och grafritning i Matlab

Transkript:

2 mars 2017 Matematisk analys för ingenjörer Matlabövning 3 Numerisk lösning av differentialekvationer Syftet med denna matlab-övning är att studera differentialekvationer och introducera hur man använder Matlabs rutiner för lösning av differentialekvationer. Läs igenom hela texten i detta pm! Varje uppgift innehåller några frågor, besvara dem! Samla kod i körbara script respektive funktionsfiler. Gör helst en scriptfil per uppgift. Skriv en kort rapport med svar på frågor och valda illustrationer i exv Word. Ladda upp filerna till en mapp Matlab3 i din inlämningsmapp/dropbox på kurssciosidan (MA123G VT15) som dokumentation. Numerisk lösning av ordinära differentialekvationer med begynnelsevärden För att lösa ett begynnelsevärdesproblem, dvs en ordinär differentialekvation (ode) eller ett system av ode tillsammans med begynnelsevärden, kan man i matlab använda en familj av ode-lösare, som har namnen ode45, ode23, ode15s, m fl. Dessa lösare kan handskas med en enda första ordningens ode, ställt på formen = F (t, y) där man vill bestämma y som en funktion av t, men också system av första ordningens ode, 1 = F 1(t, y 1,..., y n ) 2 = F 2(t, y 1,..., y n ). n = F n (t, y 1,..., y n ) där man vill bestämma var och en av y k som en funktion av t. 1

Den ode-lösare som vanligtvis används är ode45, men andra fungerar bättre för vissa typer av differentialekvationer. Ett anrop av ode45 kan göras på följande sätt: [t,y]=ode45(@mindiffekv,[t0 tmax],y0); där differentalekvationen, eller systemet av sådana, definieras i en funktionsfil mindiffekv.m (namnet kan vara vad som helst). [t0 tmax] anger intervallet som differentialekvationen skall beräknas på, och y0 begynnelsevärdena, en vektor med ett värde för var och en av komponenterna, om vi har ett system av differentialekvationer. Resultatet består av två matriser, t som består av ett urval värden för den oberoende variabeln och y vars kolonner är beräknade motsvarande värden för varje komponent. Vill vi rita graferna så kan vi köra plot(t,y) och vi får då en graf för varje komponent av y. Vi har i kurslitteraturen och på föreläsning introducerat Eulers stegmetod, en något primitivare metod för att beräkna approximativa lösningar till ordinära differentialekvationer. Följande kod, kan användas för att beräkna en lösning enligt Eulers stegmetod med steglängden h på intervallet från x0 till xe. t0=... % begynnelsevärde för t (byt ut...) te=... % slutvärde för t y0=... % begynnelsevärde för y h=... % steglängd t=[t0:h:te]; % vi skapar en vektor av alla x-värden y=y0; % vi initierar vektorn y med begynnelsevärdet for n=[1:(length(t)-1)] % Vi loopar igenom punkterna % I nästa rad ersätts F med namnet på den funktion vi definierat. y=[y,y(n)+h*f(t(n),y(n))]; % Vi utöker vektorn y med nästa beräknade värde. end Vi har nu en vektor y svarande mot vektorn t. Vi kan nu t ex rita upp de beräkna värdena som en kurva med plot(t,y, o- ). 2

En första differentialekvation Låt oss implementera detta på ekvationen eller på funktionsform, om y = f(t), = y3 + sin t, f (t) = (f(t)) 3 + sin t. Kopiera filen testdiff1.m från kurssajten på scio till din egen matlab-mapp, och sätt denna mapp som arbetsmapp (current directory) i matlab (om den inte redan är det). Ta en titt på filen med edit testdiff1 för att se vad den gör. För att med ode45 beräkna till exempel en lösning med begynnelsevärdet y(0) = 2 på intervallet [0, 20] för t. skriver vi i matlabfönstret [t y]=ode45(@testdiff1,[0,20],2); Vi kan sedan rita ut den beräknade funktionens graf med plot(t,y) Uppgift 1. Beräkna en lösning till ekvationen ovan på intervallet [0, 20], med begynnelsevärdet y 0 = f(0) = 2, med hjälp av Eulers stegmetod och två olika steglängder. Rita upp båda graferna i samma koordinatsystem och jämför. Redovisa kod och graf. Uppgift 2. Beräkna lösning till samma problem med hjälp av ode45. Rita grafen för denna lösning i samma koordinatsystem som lösningarna från förra uppgiften. En annan differentialekvation Spara nu en kopia av testdiff1.m under ett lämpligt namn. Modifiera filen för att istället lösa en logistisk differentialekvation = y(1 y) med några olika begynnelsevärden på y då t = 0. Pröva själv ut ett lämpligt intervall för t. Uppgift 3. Beräkna med ode45 lösning för några olika begynnelsevärden och rita graferna i samma koordinatsystem. Redovisa kod och graf. 3

Andra ordningens differentialekvationer dämpad fjädring ODE-lösarna i matlab handskas bara med första ordningens differentialekvationer, och system av sådana. Hur kan vi då använda dem för andra (och högre) ordningens differentialekvationer. Jo, vi kan överföra en andra ordningens differentialekvation till två första ordningens, genom att införa en ny variabel för förstaderivatan. Om vi exempelvis har differentialekvationen y (t) + g(t)y (t) + h(t)y(t) = u(t) y (t) = u(t) g(t)y (t) h(t)y(t) så kan vi införa v(t) = y (t) och får då systemet { y (t) = v(t) (denna ekvation definierar v som y.) v (t) = u(t) g(t)v(t) h(t)y(t) (notera att vi ersatt y med v och y med v,) Mer generellt, ett andra ordningens begynnelsevärdesproblem y = F (t, y, y ), y(0) = y 0, y (0) = v 0 är ekvivalent med ett system av två första ordningens ode med begynnelsevärden, y = v, v = F (t, y, v), y(0) = y 0, v(0) = v 0. Vi vill beskriva och beräkna följande system: En korg med viss massa m hänger fjädrat med stötdämpning från ett hjul som följer en bana med konstant hastighet horisontellt. Banans höjd är variabel, och beskrivs av funktionen p(t). Vi låter det vertikala läget för massans tyngdpunkt vid tiden t betecknas med y = y(t) Differentialekvationen som definierar systemet är y (t) = k m (q(t) q 0) + c m q (t) där q(t) = p(t) y(t) är avståndet mellan banan och massans tyngdpunkt, och q 0 är denna längd då systemet är i vila. Parametrarma k och m är en fjäderkoefficient respektive en dämpningskoefficient. 4

Vi kan skriva om systemet som y (t) = k m (p(t) y(t) q 0) + c m (p (t) y (t)) eller y (t) = c m y (t) k m y(t) + k m p(t) + c m p (t). Om vi beskriver banans form (dvs p(t) med hjälp av derivatan p (t) = g(t), och inför v(t) = y (t) har vi systemet v (t) = c m v(t) k m y(t) + k m (p(t) q 0) + c m g(t) y (t) = v(t) p (t) = g(t) där g(t) är en given funktion. Filen suspd.m innehåller en definition av p (t), och används av suspensioneq12.m som i sin tur definierar differentialekvationssystemet. Funktionen som definieras i den givna filen suspd.m är en styckvis konstant funktion. Uppgift 4. Simulera systemet under lämplig tidsperiod med hjälp av ode45. Observera att du behöver ge en vektor av begynnelsevärden bestående av tre komponenter, [v(0),y(0),p(0)]. Ett lämpligt val i detta fall kan vara [0,0,1]. Plotta korgens och hjulets höjd, y respektive p i samma koordinatsystem. (Om t är tidsvektorn och x är den beräknade lösningen från ode45, så kan man rita det med plot(t,x(:,1),t,x(:,3), eller med plot(t,x) då man också får med korgens vertikala hastighet.) Pröva några olika värden på dämpningskoefficienten (ändra i suspensioneq.m) och notera skillnader i systemets beteende, särskild vad gäller svängningar. Hur påverkar en ändring av fjäderkoefficienten systemets beteende? Om du har tid, experimentera gärna också med de andra parametrarna och med suspd för att ändra banprofilen. 5