Matlab – Föreläsning 3 Dagens föreläsning Första ordningens
Transcription
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