Ordinära differentialekvationer (ODE) 1 1

Relevanta dokument
Laboration 2 Ordinära differentialekvationer

System av ordinära differentialekvationer

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

Ordinära differentialekvationer

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

Ordinära differentialekvationer fortsättning

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

Matlab övningsuppgifter

Laboration 1, M0039M, VT16

ODE av andra ordningen, och system av ODE

Laboration 2 M0039M, VT2016

Inledande matematik M+TD

Linjära system av differentialekvationer

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

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.

4 Numerisk integration och av differentialekvationer

1.1 MATLABs kommandon för matriser

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

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

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

Mer om funktioner och grafik i Matlab

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

Laboration 6. Ordinära differentialekvationer och glesa system

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

Lösningsförslag till tentamen i SF1683 och SF1629 (del 1) 18 december xy = y2 +1

Mer om funktioner och grafik i Matlab

Linjära system av differentialekvationer

Linjärisering, Jacobimatris och Newtons metod.

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

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

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

TMA226 datorlaboration

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

Omtentamen i DV & TDV

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

= = i K = 0, K =

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Linjära system av differentialekvationer

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

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

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

Veckans teman. Repetition av ordinära differentialekvationer ZC 1, 2.1-3, 4.1-6, 7.4-6, 8.1-3

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

Linjär algebra. 1 Inledning. 2 Matriser. Analys och Linjär Algebra, del B, K1/Kf1/Bt1. CTH/GU STUDIO 1 TMV036b /2013 Matematiska vetenskaper

Flervariabelanalys E2, Vecka 3 Ht08

Rapportexempel, Datorer och datoranvändning

Lösningsförslag till tentamensskrivning i SF1633 Differentialekvationer I. Tisdagen den 7 januari 2014, kl

Introduktion till MATLAB

R AKNE OVNING VECKA 1 David Heintz, 31 oktober 2002

Det är lätt att hitta datorprogram som ritar kurvor av enkla funktionsuttryck,

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

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

MMA132: Laboration 2 Matriser i MATLAB

Funktioner och grafritning i Matlab

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

v0.2, Högskolan i Skövde Tentamen i matematik

z = z 2. z = z 2 z /z 2 = 1 1 z = x + c z(x) = x + c = ln x + c + c 2 y(x) = ln y = 0 y(x) = c 2

Laboration 3 Numerisk Analys

Lösningsförslag till tentamen i SF1629, Differentialekvationer och Transformer II (del 1)

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

Omtentamen i DV & TDV

Lineära system av differentialekvationer

Lösningsförslag till Tentamen, SF1629, Differentialekvationer och Transformer II (del 1) 24 oktober 2014 kl 8:00-13:00.

FEM1: Randvärdesproblem och finita elementmetoden i en variabel.

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

6. Temperaturen u(x) i positionen x av en stav uppfyller värmeledningsekvationen. u (x) + u(x) = f(x), 0 x 2, u(0) = 0 u(2) = 1,

Ordinära differentialekvationer,

TMV225+TMV176 Inledande matematik M, TD Sammanfattning. Läsanvisningar inför tentamen.

Tentamen i Teknisk-Vetenskapliga Beräkningar

MATLAB övningar, del1 Inledande Matematik

Sammanfattning (Nummedelen)

Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x).

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Institutionen för Matematiska Vetenskaper TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA

Matriser och Inbyggda funktioner i Matlab

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

Anteckningar i Matematisk analys i en variabel

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

Institutionen för Matematiska Vetenskaper TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1/TM1, TMA

Tentamensskrivning i Differentialekvationer I, SF1633(5B1206).

Symboliska beräkningar i Matlab

Egenvärdesproblem för matriser och differentialekvationer

TAIU07 Matematiska beräkningar med Matlab

x(t) I elimeringsmetoden deriverar vi den första ekvationen och sätter in x 2(t) från den andra ekvationen:

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Fredag 26 augusti 2005 TID:

Analys av jämviktslägen till differentialekvationer

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Funktionsteori Datorlaboration 2

Modul 1: Funktioner, Gränsvärde, Kontinuitet

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

Inlämningsuppgift 4 NUM131

Modul 1: Funktioner, Gränsvärde, Kontinuitet

Projekt Finit Element-lösare

Lösningsförslag, Tentamen, Differentialekvationer och transformer II, del 2, för CTFYS2 och CMEDT3, SF1629, den 9 juni 2011, kl.

UPG6 Miniprojekt 3: Kastparabler, projektiler, och raketer

LMA515 Matematik, del B Sammanställning av lärmål

Lösningsanvisningar till vissa av de icke obligatoriska workout-uppgifterna i Beräkningsvetenskap II

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Transkript:

TMV151/TMV181 Matematisk analys i en variabel M/TD 2009 Ordinära differentialekvationer (ODE) 1 1 I förra datorövningen löste vi begynnelsvärdesproblem av formen u (x) = f(x), x [0, b] (b > 0) u(0) = u 0 Här beror f bara på x Lösningen konstruerades med hjälp av Eulers metod Den kan också skrivas analytiskt med en formel u(x) = u 0 + x 0 f(y)dy enligt differential- och integralkalkylens fundamentalsats (Fundamental Theorem of Calculus) Nu ska vi lösa differentialekvationer av allmän form u (x) = f(x, u(x)), x [0, b] (b > 0) u(0) = u 0 Här beror f både på x och u Det kan också vara ett system av differentialekvationer; då är både u och f kolonnvektorer Vi börjar med att introducera ett viktigt specialfall, nämligen begynnelsevärdesproblemet som hör ihop med de trigonometriska funktionerna cos och sin 11 Trigonometriska funktioner Vi vet att de trigonometriska funktionerna uppfyller D sin(t) = cos(t), D 2 sin(t) = sin(t), sin(0) = 0, D cos(t) = sin(t), D 2 sin(t) = cos(t), cos(0) = 1 (Notera att vi nu går över till att skriva den oberoende variabeln som t istället för x Anledningen till detta är att den ofta är tiden i ett begynnelsevärdesproblem) Det betyder att u(t) = sin(t) löser begynnelsevärdesproblemet u (t) = u(t), t [0, b], (b > 0) u(0) = 0, u (0) = 1, och att u(t) = cos(t) löser begynnelsevärdesproblemet u (t) = u(t), t [0, b], (b > 0) u(0) = 1, u (0) = 0, 1 2007 11 17, Stig Larsson, Matematiska vetenskaper Chalmers tekniska högskola 1

Mer allmänt har vi u (t) = c 2 u(t), t [0, b], (b > 0) u(0) = u 0, u (0) = u 1, med lösningen u(t) = u 0 cos(ct) + u 1 sin(ct) (1) c Verifiera detta genom att derivera och genom att sätta in t = 0! Denna differentialekvation är av andra ordningen För att kunna använda algoritmen från förra labben skriver vi om ekvationen som ett system av två differentialkevationer av första ordningen Vi inför två nya variabler Vi deriverar w 1 = u, w 2 = u w 1 = u = w 2, w 2 = u = c 2 u = c 2 w 1 Begynnelsevillkoren blir w 1 (0) = u 0, w 2 (0) = u 1 Vi ser att w 1 och w 2 löser begynnelsevärdesproblemet w 1 = w 2, w1 (0) = u 0, w 2 = c2 w 1, w 2 (0) = u 1 Vi skriver detta på matrisform: [ ] [ ] [ ] w1 w = 1 w2 = w 2 c 2 = w 1 w 2 [ ] [ ] 0 1 w1 c 2, 0 w 2 [ ] [ ] w1 (0) u0 = w 2 (0) u 1 Med beteckningarna A = [ ] [ ] [ ] 0 1 w1 u0 c 2, w =, w 0 w 0 =, 2 u 1 får vi slutligen w (t) = Aw(t), w(0) = w 0 t [0, b], (2) 12 Allmänt system av ODE Vi har nu diskuterat differentialekvationer u (x) = f(x, u(x)) i några specialfall där f bara beror av x (myprimm): u (x) = f(x) 2

och bara beror av u och även system av denna senare typ u (x) = u(x) u 1(x) = u 2 (x), u 2 (x) = u 1(x) Vi ska nu behandla differentialekvationer där f(x, u) är en allmän funktion av både x och u Till exempel, u (x) = xu(x), x [0, 3]; u(0) = 1, med analytisk lösning u(x) = exp( x 2 /2) Verifiera detta! Här ges alltså f : R 2 R av formeln f(x, s) = xs När vi sätter in i högerledet av differentialekvationen ersätter vi den andra variabeln s med s = u(x) Vi ska även studera system av sådana ekvationer Vi kommer då till ett allmänt system av n stycken differentialekvationer: u 1(t) = f 1 (t, u 1 (t),, u n (t)), u n (t) = f n(t, u 1 (t),, u n (t)), t [a, b], t [a, b], tillsammans med lika många begynnelsevillkor: Vi skriver dessa på matrisform: u 1 (t) u(t) =, u a = u n (t) u 1 (a) = u a1 u n (a) = u an u a1 u an och får följande begynnelsevärdesproblem, f(t, u) = f 1 (t, u 1,,u n ), f n (t, u 1,,u n ) u (t) = f(t, u(t)), u(a) = u a t [a, b], (3) För att lösa detta använder vi samma algoritm som tidigare (Eulers metod) Vi börjar med att dela in intervallet [a, b] i N stycken delintervall av längden h = (b a)/n: a = t 0 < t 1 < t 2 < t i 1 < t i < < t N 1 < t N = b, t i = a + hi, h = (b a)/n = t i t i 1 3

Vi beräknar nu en approximativ lösning enligt U(t 0 ) = u a U(t i ) = U(t i 1 ) + hf(t i 1, U(t i 1 )) Genom att förbinda punkterna (t i, U(t i )) med räta linjer får vi en graf och funktionen U(t) blir definierad också mellan beräkningsnoderna t i Man kan visa att U(t) konvergerar mot en unik lösning u(t) till (3) då antalet delintervall N Beviset är upplagt enligt samma princip som för bisektionsalgoritmen och fixpunktsiterationen men är ganska långt och lite för svårt och utlämnas därför Observera att u(t) normalt inte går att skriva i termer av kända ( elementära ) funktioner Implementering i Matlab Algoritmen är t0 = a initiera: U(t 0 ) = u a while t i < b uppdatera: t i = t i 1 + h U(t i ) = U(t i 1 ) + hf(t i 1, U(t i 1 )) Övning 1 Skriv ett program myodem med anropet [t,u]=myode(f,i,ua,h) som löser begynnelsevärdesproblemet (3) Använd programskalet myodem I Matlab sparas U(t i ) som i:te kolonnen U(:,i) i matrisen U, den blir av typ n (N + 1) Matrisen skapas kolonnvis Till exempel blir initieringen U(:,1)=u0 När beräkningen är klar bör du transponera matriserna t och U bland annat för att plottning ska fungera smidigt Det finns nu två sätt att plotta lösningen Antag för enkelhets skull att vi har ett system av två ekvationer, dvs n = 2 1 Vi kan plotta de två lösningskurvorna y = U 1 (t), y = U 2 (t) med kommandot plot(t,u) 2 Vi kan plotta U 2 mot U 1 med kommandotplot(u(:,1),u(:,2)) Sådana kurvor med olika startpunkter bildar ett fasporträtt för differentialekvationssystemet Prova programmet på följande begynnelsevärdesproblem För varje exempel måste du skriva en funktionsfil av typen function y=funk(t,u) Plotta den numeriska lösningen tillsammans med den analytiska lösningen (om du känner den analytiska) (a) u (x) = x 2, x [1, 3], u(1) = 1 4

u (t) = cu(t), t [0, 2], (b) u(0) = u 0 (c) u = c 2 u, t [0, 10] u(0) = u 0, u (0) = u 1 (d) u (x) = xu(x), x [0, 3], u(0) = 1 analytisk lösning: u(x) = exp( x 2 /2) u + 4u + 13u = e t, t [0, 10] (e) u(0) = 1, u (0) = 2 Facit (a) function y=funka(t,u) y=t^2; >> [x,u]=myode(@funka,[1,3],1,1e-3) >> plot(x,u), hold on >> fplot(@(x)(1+(x^3-1)/3),[1,3], r ) (b) function y=funkb(t,u) c=1; y=c*u; >> u0=1, c=1 >> [t,u]=myode(@funkb,[0,2],u0,1e-3) >> plot(t,u), hold on >> fplot(@(t)exp(c*t),[0,2], r ) (c) function y=funkc(t,u) c=1; 5

A=[0 1;-c^2 0]; y=a*u; >> u0=0, u1=1, c=1 >> [t,u]=myode(@funkc,[0,10],[u0;u1],1e-3) >> figure(1) >> plot(t,u), hold on >> fplot(@(t)(u0*cos(c*t)+u1*sin(c*t)/c),[0,10]) >> figure(2) >> plot(u(:,1),u(:,2)) >> axis equal (d) function y=funkd(t,u) y=-t*u; >> [x,u]=myode(@funkd,[0,3],1,1e-3) >> plot(x,u) (e) function y=funke(t,u) y(1,1)=u(2); y(2,1)=-13*u(1)-4*u(2)+exp(-t); >> [t,u]=myode(@funke,[0,10],[1;2],1e-3) >> plot(t,u) Övning 2 Vi betraktar population av bytesdjur (kaniner) som lever tillsammans med en population rovdjur (rävar) Låt u 1 (t) respektive u 2 (t) beteckna antalet kaniner respektive rävar vid tiden t En enkel matematisk modell för populationernas utveckling ges av Volterra-Lotka-ekvationerna: u 1 (t) = au 1(t) bu 1 (t)u 2 (t) u 2(t) = cu 2 (t) + du 1 (t)u 2 (t) (4) Koefficienterna a, b, c, d är positiva Termen au 1 (t) representerar netto-födelsedödstalet i en ensam kaninpopulation Termen cu 2 (t) är motsvarande för rävarna Termen bu 1 (t)u 2 är antalet kaniner som blir uppätna per tidsenhet Termen du 1 (t)u 2 (t) är antalet rävar per tidsenhet som överlever på grund av tillgång på föda Observera teckenkombinationen i ekvationerna Vad blir lösningen om populationerna är ensamma (b = d = 0)? Lös Volterra-Lotka-ekvationerna med ditt program myodem Lämpliga värden är a = 5, b = 1, c = 2, d = 1 6

Facit Med b = d = 0 får vi u 1 (t) = u 01 exp(at), u 2 (t) = u 02 exp( ct), dvs kaninpopulationen exploderar och rävarna dör ut Matlab funktionsfil: function y=volterra(t,u) a=5; b=1; c=2; d=1; y=zeros(2,1); y(1)= a*u(1)-b*u(1)*u(2); y(2)=-c*u(2)+d*u(1)*u(2); Matlab kommandon: >> [t,u]=myode(@volterra,[0 50],[5;3],1e-2); >> figure(1) >> plot(t,u) >> figure(2) >> plot(u(:,1),u(:,2)) 7