• No results found

Första ordningens differentialekvationer. Orientering om system av differentialekvationer / högre ordningens ekvationer

N/A
N/A
Protected

Academic year: 2022

Share "Första ordningens differentialekvationer. Orientering om system av differentialekvationer / högre ordningens ekvationer"

Copied!
16
0
0

Loading.... (view fulltext now)

Full text

(1)

• Första ordningens differentialekvationer

• Orientering om system av differentialekvationer / högre ordningens ekvationer

• Mer om kurvanpassning

• Orientering om beräkningar med Python (numpy)

Föreläsning 3

(2)

Första ordningens differentialekvationer

• Ofta har man differentialekvationer på formen

y’(t) = f(t, y(t))

y(t

1

) = y

1

• Lösning består av en funktion som beskriver hur ett system utvecklas

• Svårt att finna analytiska lösningar för godtyckliga ekvationer

• Vi tar därför i stället fram en numerisk uppskattning och får en serie punkter som funktionen går igenom

(3)

0 1 2 3 4 5

–1 –2 –3 –4

0 1 2

–1

Riktningsfält

• Derivatadelen kan ses som ett riktningsfält (”vägvisare”)

• Riktningsfältet + startvärdet ger lösningen

y’(t) = –2·y(t)

y(0) = 4

(4)

0 1 2 3 4 5

–1 –2 –3 –4

0 1 2

–1

Riktningsfält

• Derivatadelen kan ses som ett riktningsfält (”vägvisare”)

• Riktningsfältet + startvärdet ger lösningen

y’(t) = –2·y(t)

y(0) = 4

(5)

Eulers metod

Utgå från positionen givet av startvärdet och ”stega” fram lösningen på riktningsfältet i små steg (storlek dt). Jfr Leibniz’ notation:

y’(t) = → dy = dt ⋅ y’(t)

1. Starta från begynnelsevärdet (t1,y1): tc = t1, yc = y1 2. Bestäm nästa position strax till höger:

yc = yc + dt * f(tc,yc) tc = tc + dt

(Detta är Matlab-tilldelningar, inte ekvationer…) 3. Upprepa steg 2 så länge tc < T (slutvärdet)

dy dt

(6)

Exempel (se film 3.3)

• Vi löser differentialekvationen y'(t) = –sin(t)

y(0) = 2 för t = 0..4

(7)

Inbyggda funktioner i Matlab

[t y] = ode45(function,[start end],startValue);

[t y] = ode23(function,[start end],startValue);

Subtil skillnad mellan funktionerna – mindre skillnader i

antal steg och hur stegstorleken varieras (ej fixt steg).

(8)

Exempel (se tillhörande video)

• Vi löser samma differentialekvation som tidigare med ode23 och ode45, och noterar hur få steg de tar, och ändå lyckas komma mycket nära den analytiska lösningen

(9)

Om ode23 och ode45

”ode23 is a three-stage, third-order, Runge-Kutta method.

ode45 is a six-stage, fifth-order, Runge-Kutta method. ode45 does more work per step than ode23, but can take much

larger steps.

For differential equations with smooth solutions, ode45 is often more accurate than ode23.”

Cleve Moler, Ordinary Differential Equation Solvers ODE23 and ODE45,

https://blogs.mathworks.com/cleve/2014/05/26/ordinary-differential-equation-solvers-ode23-and-ode45/

Se även FMNN10 (Numeriska metoder för differentialekvationer), obl. F3/Pi3, valfri I4.

(10)

System av differentialekvationer

• ode23/ode45 kan även lösa system av differentialekvationer

• parametern y i f(t,y) ersätts då med en

kolonnvektor och vi returnerar en kolonnvektor av y´- värden för alla de ingående funktionerna

• ode23/ode45 löser alla funktionerna på samma gång och returnerar en y-matris med lösningar för alla

funktionerna

Detaljerna lämnas som övning åt intresserade eller som inläsning vid behov

(11)

Högre ordningens differentialekvationer

• Högre ordningens differentialekvationer kan skrivas om till system av första ordningens ekvationer

y’’+7y’–3y = 0

y(0) = 0, y’(0) = 1

• Inför y1 = y, y2 = y’, vilket ger:

y1’ = y2

y2’ = 3y1–7y2

y1(0) = 0, y2(0) = 1

Detaljerna lämnas som övning åt intresserade eller som inläsning vid behov

(12)

Att anpassa en kurva till en datamängd

Se film 3.1–3.2

t y

0 6.24

1 4.61

2 3.48

3 2.55

4 2.06

5 1.42

6 1.21

7 0.69

8 0.62

9 0.39

10 0.37

(13)

Sammanfattning kurvanpassning

polyfit(x,y,n)

anpassa ett n-tegradspolynom till punkterna

polyfit(x,y,1)

anpassa linje enligt minsta-kvadrat-metoden

Ibland kan man överföra problemet till linjär form för att sedan anpassa en linje enligt minsta-kvadrat-metoden

ex:

y(x) = a ⋅ c

x

!"

log y(x) = log a + x·log c

Vi kan nu hitta värden för log a och log c med hjälp av polyfit.

(14)

Beräkningar med Python

• Matlab välbeprövat, utvecklat under lång tid, använt av många

… men licenskostnaden kan avskräcka

• Ett fritt alternativ: Python med paketet numpy (ofta tillsammans med scipy, matplotlib, …)

• Python är ett generellt scriptspråk

• Kan användas interaktivt, precis som Matlab

• Kan använda scriptfiler, precis som Matlab

• Generell programmering ungefär som Java

• Begriplig syntax (för en Java-/Matlab-programmerare)

(15)

numpy

• Ett paket för Python

(måste ofta installeras separat)

• Numeriska beräkningar / scientific computing

• Synsätt och standardfunktioner tydligt inspirerat av Matlab

Läs mer på

https://numpy.org

import numpy

import matplotlib.pyplot as plt

x = numpy.linspace(0, 10) y1 = numpy.sin(x)

y2 = numpy.cos(x)

plt.plot(x, y1, 'r-') plt.plot(x, y2, ’g.') plt.show()

(16)

References

Related documents

Tolkning av definitionen: Ett mindre fel (   ) i startvärden påverkar inte mycket själva lösningen. Med andra ord, mindre fel i startvärdena påverkar inte lösningen.. En

Anmärkning: Till skillnad från begynnelsevärdesproblem kan ett randvärdesproblem ha oändligt många lösningar trotts att alla koefficientfunktioner är kontinuerliga som vi ser i

Notera att vi har inte derivator i Wronskis matris för ett förstaordningens DE system (till skillnad från Wronskis matris för en DE av n:te ordningen).. b) Ange den allmänna

Med kritiska punkter till en ekvation av högre ordningen menar vi kritiska punkter för tillhörande system av

Den hastighet med vilken vattnet läcker ut är proportionell mot kvadratroten av höjden av vat- tenpelaren (avståndet från vattenytan till botten). Hur lång tid tog det

H¨ ar kan man antingen t¨ anka sig att f¨ orsta anv¨ anda reduktion av ordning f¨ or att f˚ a fram y 2 och sedan variation av parametrar f¨ or att f˚ a fram en partikul¨

– Flytta en term till andra sidan och

Detta ger samband mellan konstanterna och genom att