Dagens föreläsning
Matlab – Föreläsning 3
DIFFERENTIALEKVATIONER, MER OM KURVANPASSNING, INFÖR PROVET
• Första ordningens differentialekvationer
• Orientering om system av differentialekvationer/högre
ordningens ekvationer
• Mer om kurvanpassning
• Inför provet
Första ordningens differentialekvationer
Riktningsfält
• Ofta har man differentialekvationer på formen
Derivatadelen ger ett riktningsfält
y’(t) = f(t,y(t))!
!
!
!y(t1) = y1!
• 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
y’(t) = -2·y(t)!
y(0) = 4!
Numerisk lösning
Eulers metod
Riktningsfältet + startvärdet ger lösningen
y’(t) = -2·y(t)!
Utgå från positionen givet av startvärdet och ”surfa” fram
lösningen på riktningsfältet i små steg (storlek h)
y(0) = 4!
1. Starta från begynnelsevärdet (t1,y1): tc = t1, yc = y1!
2. Bestäm nästa position strax till höger:
!yc = yc + h·f(tc,yc)
!
!tc = tc + h!
3. Upprepa steg 2 så länge tc < T (slutvärdet)
Inbyggda funktioner
System av differentialekvationer
• Matlab
• ode23/ode45 kan även lösa system av differentialekvationer
– [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).
• Octave
– t = linspace (start, end, steps);
y = lsode ("function name", startValue, t);!
• 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
Högre ordningens differentialekvationer
Anpassa en kurva till en datamängd
• Högre ordningens differentialekvationer kan skrivas om till
system av första ordningens ekvationer
x
y
0,0
1,0582
!y’’+7y’–3y = 0!
1,0
1,4378
!y(0) = 0, y’(0) = 1!
2,0
2,2419
3,0
2,3039
4,0
3,7277
5,0
3,4545
6,0
4,0380
7,0
4,8556
8,0
5,0198
• 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
!
Sammanfattning kurvanpassning
• polyfit(x,y,n)
– anpassa ett n-tegradspolynom till punkterna
• interp1(x,y,xc,’spline’)
• polyfit(x,y,1)
– interpolera med spline-polynom
– 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
– exempel: y(x) = a·cx »»» log a + log c·x
Vi kan nu hitta värden för log a och log c mha polyfit.
Inför provet
• Kan göras denna vecka eller nästa vecka
• Säg till laborationshandledaren när ni vill göra provet
• Hjälpmedel:
– Dator med Matlab (ej Octave – saknar vissa funktioner)
– Penna (papper)
• 30 minuter
• 8 frågor – högst två felaktiga svar
• Provet kan göras högst 2 ggr/laborationstillfälle
Att läsa på – kapitel 1
Att läsa på – kapitel 2
• Grundläggande beräkningar och de vanligaste funktionerna
• Integralberäkning
• Definiera egna funktioner
• Nollställesberäkning
• Skapa, sätta samman och manipulera matriser och vektorer
• Beräkning av max- och minvärde för en funktion
• Vanliga operationer på matriser/vektorer som invers,
transponat, rank, determinant, och egenvärden
• Matrismanipulering – speciellt att ta ut och manipulera delar
av en matris
• Lösa linjära ekvationssystem med entydig lösning
• Polynomhantering – hur hanterar Matlab polynom, de
viktigaste polynomfunktionerna som roots, poly, polyval,
polyfit
• Grundläggande plottning av en funktion/mätdata – inga
finesser
Att läsa på – kapitel 3
• Lösning av första ordningens differentialekvationer
• Grundläggande kurvanpassning
– anpassning av polynom
– interpolering m h a polynom (splines)
– linjärisering av funktion så att man kan använda
funktionerna för anpassning av polynom
© Copyright 2025