Matlab – Föreläsning 3 Dagens föreläsning Första ordningens

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