1.7. Differentialekvationer

Storlek: px
Starta visningen från sidan:

Download "1.7. Differentialekvationer"

Transkript

1 1.7. Differentialekvationer Differentialekvationerna spelar en stor roll i naturvetenskaperna. Man kan med fog säga, att en differentialekvation är den primitivaste tänkbara beskrivningen av ett naturfenomen. Alla differentialekvationer har ingalunda en analytisk lösning, och vi måste därför ofta ty oss till en numerisk lösning. Vad menar vi med lösningen till en differentialekvation? Låt oss t.ex. betrakta ekvationen y = x 2 y 2. Intuitivt skulle man tänka sig en kurva y = y(x) i varje punkt (x, y), där kurvans tangent y (x) uppfyller ekvationen ovan. Som vi ser, är det fråga om en rent lokal egenskap. Det finns givetvis inte en enda kurva, som utgör lösning till differentialekvationen, utan istället passerar det en kurva, som utgör en lösning till ekvationen, genom varje punkt (x 0, y 0 ). Denna tanke kan man också åskådliggöra grafiskt genom att man väljer olika punkter i (x, y) planet och beräknar tangenten till kurvan genom punkten enligt ekvationen ovan. Dessa tangentsegment anger den riktning, som lösningskurvan har lokalt, och med en smula fantasi kan man skissera olika lösningskurvor om man har tillräckligt tätt med punkter i planet. Nedan visas ett dylikt riktningsfält för ovanstående differentialekvation (gjord med Matlab-programmet dfield): Introduktion till vetenskapliga beräkningar II, Tom Sundius

2 För att förenkla metoden något, kan man söka efter de kurvor, längs vilka tangenterna har samma riktning (isoklinerna). I vårt exempel finner vi, att isoklinerna är en hyperbelskara: x 2 y 2 = k. Denna grafiska metod är ganska grov, men den kan likväl ge en ganska god föreställning om problemets natur, vilket kan underlätta den numeriska lösningen. Om vi endast önskar beräkna en lösningskurva, som går genom en given punkt är det onödigt att rita hela riktningsfältet. Vi kan då göra på det sätt som visas i figuren nedan. Introduktion till vetenskapliga beräkningar II, Tom Sundius

3 Först uppritas ett segment av en tangent till kurvan, som går genom den givna punkten, därpå en ny tangent som går genom segmentets ändpunkt etc. Vi får på detta sätt den polygonbåge, som visas i figuren. Som vi ser fungerar denna metod inte alltid så bra, beroende på att vi alltid använder föregående tangent för att beräkna nästa punkt på kurvan, vilket leder till ett systematiskt fel, om man inte väljer punkterna mycket tätt. Det vore därför förnuftigare att kasta en blick framåt, beräkna tangenten där, och därpå fortsätta i den riktning, som bestäms av medeltalet av de båda tangentriktningarna. Denna idé ligger till grund för en klass av numeriska metoder för att lösa differentialekvationer, som brukar kallas prediktor-korrektor metoder. Introduktion till vetenskapliga beräkningar II, Tom Sundius

4 Den första som uppfann en numerisk metod för att lösa differentialekvationer av första ordningen var Leonhard Euler 1. Denna metod vidareutvecklades av Cauchy under föreläsningar i École Polytechnique2. Idén är följande: Vi utgår från ekvationen dy dt = f(t, y), under antagande av randvillkoret y(t 0 ) = y 0. Vi antar ytterligare, att f och f y är reella och kontinuerliga funktioner inom rektangeln t t 0 a, y y 0 b, och att sampelpunkterna t k = t 0 + hk är givna. Man kan då definiera en räcka av funktionsvärden y 0, y 1,..., y n med hjälp av rekursionslikheten y i+1 = y i + hf(t i, y i ), (i = 0, 1,..., n 1). Cauchy visade, att under dessa omständigheter kommer den polygonbåge, som definieras av punkterna (t 0, y 0 ), (t 1, y 1 ),... att konvergera mot differentialekvationens lösning. Cauchys konvergensvillkor vidareutvecklades och förbättrades sedermera av Lifschitz (1877). 1 L. Euler: De Integratione Aequationum Differentialium per Approximationem, F. Moigno: Lec cons de calcul différentiel et de intégral, rédigées d aprés les méthodes et les ouvrages publiés ou inédits de M. A. L. Cauchy, 4 vol., Paris, Introduktion till vetenskapliga beräkningar II, Tom Sundius

5 Eulers metod följer av Taylor utvecklingen om vi väljer y(t 0 + h 0 ) y(t 0 ) + h 0 y (t 0 ) = y 0 + h 0 f(t 0, y 0 ), y 1 = y 0 + h 0 f(t 0, y 0 ) som approximation för lösningen vid tiden t 1. Parametern h 0 > 0 kallas steglängden. Vi kan göra ett steg till med steglängden h 1 genom en Taylor utveckling kring punkten t = t 1 : y(t 1 + h 1 ) y(t 1 ) + h 1 y (t 1 ) = y(t 1 ) + h 1 f(t 1, y(t 1 )). Eftersom vi inte känner den exakta lösningen i t = t 1, så kan vi inte beräkna högra membrum av denna ekvation, men om vi använder approximationerna y 1 y(t 1 ) och f 1 = f(t 1, y 1 ) f(t 1, y(t 1 )) så kan vi uttrycka lösningen i t 2 = t 1 + h 1 som y(t 2 ) y 2 = y 1 + h 1 f 1. Vi ser nu den allmänna principen. I varje steg beräknas f i den approximativa lösningspunkten (t n, y n ), och sedan används tangenten till kurvan för att beräkna y n+1 : y n+1 = y n + h n f(t n, y n ). Introduktion till vetenskapliga beräkningar II, Tom Sundius

6 Den upprepade användningen av denna ekvation definierar Eulers metod. Ett enkelt MATLAB program (där h n = h) skulle kunna se ut så här: function y = eultest(fname,h,y0,t0,n) % Invariabler: % fname : namn på funktionen % h : steglängd % y0(t0): begynnelsevärde % n : max antal steg k = 0; tn = t0; yn = y0; while k <= n disp(sprintf( %3.0f %10.7f %10.7f, k, tn,yn)) tn = tn + h; fn = feval (fname,tn, yn); yn = yn + h*fn; k = k + 1; end Introduktion till vetenskapliga beräkningar II, Tom Sundius

7 Problemet med Eulers metod är att h (=intervallets längd) måste väljas litet för att metoden skall fungera. För att belysa detta problem, studerar vi ekvationen dy dx = e y x 2, y(0) = 0 som löses med Eulers metod för t = 0, h, 2h,..., nh = 1 (h = 0.05, 0.1, 0.2 och 0.3). Resultatet visas i nedanstående tabell. Exakt lösn. Eulers approximativa metod x y h = 0.05 h = 0.10 h = 0.2 h = Introduktion till vetenskapliga beräkningar II, Tom Sundius

8 I figuren nedan har den exakta kurvan, samt de beräknade kurvorna för h = 0.1 och h = 0.2 ritats med MATLAB som funktion av t: Tabellen och figuren visar, att felet är starkt beroende av steglängden. En kortare steglängd ger noggrannare resultat, men samtidigt ökar antalet funktionsberäkningar, vilket förlänger räknetiden. Felet i Eulers metod kan vi studera genom att välja en konstant steglängd h och anta, att y n 1 är exakt. Genom att subtrahera y n = y n 1 + hf n 1 från Taylor utvecklingen y(t n ) = y n 1 + hy (t n 1 ) + h2 2 y (θ), Introduktion till vetenskapliga beräkningar II, Tom Sundius

9 där t n 1 θ t n, får vi y(t n ) y n = h2 2 y (θ), som kallas det lokala avkortningsfelet. Detta fel kan man förstå så, att punkten (t n, y n ) befinner sig på en viss lösningskurva y n (t), som satisfierar differentialekvationen y (t) = f(t, y(t)). Med nästa steg kommer vi över till en ny lösningskurva, och hoppets storlek är lika med det lokala avkortningsfelet. Om felet är proportionellt mot h k+1, brukar man säga, att metoden är av ordningen k; därför är Eulers metod av ordningen 1. Det finns också ett globalt fel, som är den verkliga skillnaden mellan den beräknade lösningen y n för t = t n, och den sanna lösningen y(t n ): g n = y(t n ) y n. Metodens stabilitet inverkar också på beräkningen. Om vi t.ex. tillämpar Eulers metod på differentialekvationen y (t) = 10y(t), så blir iterationsformeln y n+1 = (1 10h)y n. För att inte felet skall växa under iterationsprocessen, så måste vi fordra att 1 10h < 1, alltså t.ex. h < 1/5. Om detta kriterium är uppfyllt, så är metoden stabil. Om däremot h > 1/5, så kommer ett fel δ i utgångsvillkoren att leda till ett fel av storleken (1 10h) n δ vid den n:te iterationen. För att förstå stabilitetsbegreppet bättre, skall vi studera en variant av Eulers metod, som kallas Eulers baklänges metod. Introduktion till vetenskapliga beräkningar II, Tom Sundius

10 Om vi utgår från approximationen y(t n+1 + h) y(t n+1 ) + y (t n+1 )h = y(t n+1 ) + f(t n+1, y(t n+1 ))h och sätter h = h n = t n t n+1, så får vi y(t n ) y(t n+1 ) h n f(t n+1, y(t n+1 )). Om vi substituerar y n istället för y(t n ), och y n+1 istället för y(t n+1 ), så får vi formeln y n+1 = y n + h n f(t n+1, y n+1 ), som beskriver iterationerna i Eulers baklänges metod. Eulers baklänges metod är en implicit metod eftersom den ger en implicit definition för y n+1. Om t.ex. y = ay så har vi 1 y n+1 = y n + h n ay n+1 = 1 h n a y n, så att metoden är stabil för alla positiva steglängder, om a < 0. Eulers vanliga metod är en explicit metod, eftersom y n+1 definierats explicit med hjälp av tidigare beräknade storheter. Implicita metoder har i allmänhet bättre stabilitet än explicita metoder. Introduktion till vetenskapliga beräkningar II, Tom Sundius

11 I Eulers metod använder man i varje steg endast ett värde av funktionen f(t, y). I en Runge Kutta metod räknar man ut flere funktionsvärden, innan man gör ett steg framåt. En metod som använder två funktionsberäkningar (dvs är av andra ordningen) kan t.ex. skrivas k 1 =hf(t n, y n ) k 2 =hf(t n + αh, y n + βk 1 ) y n+1 =y n + ak 1 + bk 2, där α, β, a och b är parametrar, som kan bestämmas så, att felet är av storleksordningen O(h 3 ). En Taylor utveckling av y(t n+1 ) = y(t n + h) ger Emedan y (t n ) =f(t n, y n ) f y(t n+1 ) = y(t n ) + y (t n )h + y (t n ) h2 2 + O(h3 ). y (t n ) = f t + f y dy dt = f(t n, y n ) t + f(t n, y n ) f(t n, y n ) f t + f y f, y Introduktion till vetenskapliga beräkningar II, Tom Sundius

12 (totala derivatan!) så får vi Å andra sidan är varför y(t n+1 ) = y(t n ) + fh + (f t + f y f) h2 2 + O(h3 ). k 2 =hf(t n + αh, y n + βk 1 ) = h(f(t n, y n ) + αh f t + βk f 1 y + O(h2 )) =h(f + αhf t + βk 1 f y + O(h 2 )), y n+1 = y n + ak 1 + bk 2 = y n + (a + b)fh + b(αf t + βff y )h 2 + O(h 3 ). Det lokala avrundningsfelet antas vara O(h 3 ), dvs y(t n+1 ) y n+1 = O(h 3 ). Härav följer a + b =1 2bα =1 2bβ =1, Introduktion till vetenskapliga beräkningar II, Tom Sundius

13 som har ett oändligt antal lösningar, men den enklaste är a = b = 1/2 och α = β = 1. Med detta val får vi Runge Kutta metoden av andra ordningen: k 1 =hf(t n, y n ) k 2 =hf(t n + h, y n + k 1 ) y n+1 =y n + (k 1 + k 2 )/2. Ofta används Runge Kutta metoder av högre ordning. Den kändaste är Runge Kutta metoden av fjärde ordningen: k 1 =hf(t n, y n ) k 2 =hf(t n + h 2, y n k 1) k 3 =hf(t n + h 2, y n k 2) k 4 =hf(t n + h, y n + k 3 ) y n+1 =y n (k 1 + 2k 2 + 2k 3 + k 4 ) Introduktion till vetenskapliga beräkningar II, Tom Sundius

14 Denna metod behöver fyra f beräkningar per steg. Här är en MATLAB funktion som gör ett Runge Kutta steg av angiven ordning: function [tn, yn, fn] = RKsteg(fname, tc,yc,fc,h,k) % Invariabler: % fname : sträng som innehåller namnet på en funktion av formen % f(t,y), där t är ett tal och y en kolumnvektor % yc : en approximativ lösning av y (t) = f(t,y(t)) i t=tc. % fc : f(tc,yc). % h : steglängden. % k : ordningen av Runge-Kutta metoden (1<=k<=4) % Utvariabler: % tn : tc+h, yn är en approximativ lösning i t=tn,och % fn : f(tn,xn). if k==1 k1 = h*fc; yn = yc +k1; elseif k==2 k1 = h*fc; Introduktion till vetenskapliga beräkningar II, Tom Sundius

15 k2 = h*feval(fname,tc+(h/2),yc+(k1/2)); yn = yc + (k1+k2)/2; elseif k==3 k1 = h*fc; k2 = h*feval(fname,tc+(h/2),yc+(k1/2)); k3 = h*feval(fname,tc+h,yc-k1+2*k2); yn = yc + (k1 + 4*k2 +k3)/6; elseif k==4 k1 =h*fc; k2 = h*feval(fname,tc+(h/2),yc+(k1/2)); k3 = h*feval(fname,tc+(h/2),yc+(k2/2)); k4 = h*feval(fname,tc+h,yc+k3); yn = yc + (k1 + 2*k2 + 2*k3 +k4)/6; end tn = tc + h; fn = feval(fname,tn,yn); MATLAB har två inbyggda Runge Kutta funktioner, ode23 och ode45 (rekommenderas), som kombinerar Runge Kutta metoder av andra och tredje ordningen, resp. fjärde och femte ordningen. Introduktion till vetenskapliga beräkningar II, Tom Sundius

16 Kapitel 2. Fortran programmering Härefter skall vi övergå till att studera programmering i Fortran, som är det äldsta programmeringsspråket för vetenskapliga beräkningar, som fortfarande används vid krävande numeriska beräkningar. Vi börjar med en kort översikt av programmeringens historia. Introduktion till vetenskapliga beräkningar II, Tom Sundius

17 2.1. Programmeringsspråk Ursprungligen programmerades datorerna på det enda språk de förstod, nämligen binärkod. Som ett exempel på en dylik maskinkod visas nedan ett litet program för en PC-kompatibel dator, som har till uppgift att filtrera bort den åttonde biten i en textfil: 1CED:0100 B407 MOV AH,07 1CED:0102 CD21 INT 21 1CED: F AND AL,7F 1CED: C2 MOV DL,AL 1CED:0108 B406 MOV AH,06 1CED:010A CD21 INT 21 1CED:010C 3C1A CMP AL,1A 1CED:010E 75F0 JNZ CED:0110 CD20 INT 20 De nio första kolumnerna till vänster i ovanstående listning anger adressen i minnet där den maskinkodade instruktionen (kolumn 11-14) har lagrats. Instruktionen är angiven i hexadecimalkod, som har 16 som bas. Längst till höger står den motsvarande symboliska instruktionskoden, uttryckt på assembler språket. Introduktion till vetenskapliga beräkningar II, Tom Sundius

18 Assemblerspråket är maskinberoende, och ursprungligen bara ett sätt att symboliskt uttrycka de maskinkodade instruktionerna (senare infördes bl.a. också makroinstruktioner i de olika assemblerspråken, för att underlätta programmeringen). På grund av att ett program som skrivits på ett assemblerspråk inte kan överföras till en annan dator, och assemblerprogrammen dessutom oftast är långa och invecklade, insåg man redan tidigt vikten av att uppfinna högre programmeringsspråk, som var enklare att använda, och dessutom också möjliggjorde överföring av program mellan olika datorer. Det första av dessa programmeringsspråk var FORTRAN (namnet var en akronym för IBM Mathematical FORmula TRANslation System), som utvecklades av IBM under ledning av John Backus år 1954 för den nya datorn IBM 704, som hade hårdvara för flyttalsberäkningar. Ursprungligen var det meningen att använda språket på bara en dator, men då IBMs kunder fick höra om det, ville alla ha det. FORTRAN-språket är uppbyggt av enkla engelska ord och matematiska termer. För att ett program skrivet på FORTRAN skulle kunna förstås av datorn, måste det översättas till maskinkod, som är det enda språk som datorn kan förstå. För den skull måste man utveckla ett särskilt program, en kompilator. Den första programmeringshandboken för FORTRAN kom ut 1956, och den följdes av en kompilator året därpå. År 1958 kom IBM ut med en ny förbättrad version av språket, som kallades FORTRAN II, och som kunde användas på IBMs nya datorer (709, 650, 1620 och 7070). Språkets stora framgång ledde till att också andra datortillverkare började skriva FORTRAN-kompilatorer för sina datorer. Introduktion till vetenskapliga beräkningar II, Tom Sundius

19 Man började snart inse behovet av en allmänt erkänd standard för språket, som skulle göra det lättare att överföra program mellan olika datorer. IBM gick ett steg i denna riktning genom FORTRAN IV, som blev färdig 1962, och som var i det närmaste datoroberoende. Det amerikanska standardiseringsinstitutet (ANSI) färdigsställde den första standarden för FORTRAN år 1966 (som ibland kallas FORTRAN 66), och en ny standard, FORTRAN 77, blev godkänd år Trots alla sina brister (som under årens lopp bättrats på) är FORTRAN fortfarande ett av de populäraste språken för vetenskapliga beräkningar. År 1990 gjordes en uppskattning, enligt vilken 70 % av alla program var skrivna på COBOL ( COmmon Business Oriented Language, det vanligaste språket i affärsvärlden), och ca 60 % av återstoden var skrivna på FORTRAN, resten var skrivna på andra språk. En ny standard, Fortran 90, publicerades i augusti 1991, och har så många utvidgningar och förbättringar, att den i viss mån kan karaktäriseras som ett nytt språk (observera även, att namnet skrivs med små bokstäver). Att Fortran kanhända nu upplever en renässans visas också av att en förbättrad standard, Fortran 2003, har blivit färdig. Bl.a. kritiken mot FORTRAN som programmeringsspråk ledde till att en kommitté, där även John Backus ingick, år 1960 publicerade en beskrivning av ett nytt algoritmiskt språk ALGOrithmic Language, Algol 60, och man hoppades, att det skulle innebära en en förnyelse av den vetenskapliga programmeringstekniken. Bland annat skulle det vara lätt att läsa ALGOL-program, så att man skulle kunna använda detta språk för att beskriva olika räknemetoder. Introduktion till vetenskapliga beräkningar II, Tom Sundius

20 Algol innehöll både små och stora bokstäver, samt speciella matematiska symboler, såsom + - = > <. Tecknet angav en speciell heltalsdivision, och := betecknade substitution, såsom x := 5. Av någon anledning blev dock inte Algol så populärt som man hade väntat sig, även om det implementerades på många datorer och användes långt in på 1970 talet. Idéerna som låg till grund för Algol blev dock inspirationskälla för andra språk, såsom C och Pascal. Pascal utvecklades av Niklaus Wirth i Zürich år Språket gavs avsiktligt från början en systematisk och logisk uppbyggnad, så att det skulle vara lättare att skriva bra program. Också en effektiv kompilator (översättningsprogram) planerades. Pascal-kompilatorer introducerades på många datorer, och det inlärdes ofta som första programmeringsspråk. För verkligt krävande numeriska uppgifter är Pascal dock inte lika effektivt som Fortran, och numera även C. En intressant vidareutveckling av Pascal är Modula-2, som Niklaus Wirth introducerade år Detta språk understöder den moderna objektorienterade programmeringstekniken, och närmar sig också i vissa fall maskinkoden, liksom C. C-språket konstruerades av Dennis Ritchie i AT& T år Det utvecklades ur ett äldre språk, som kallades BCPL. Detta språk bildade även grunden för en föregångare till C-språket, som kallades B efter första bokstaven i BCPL. C-språket fick sitt namn efter andra bokstaven i BCPL, och definierades i boken The C Programming Language, skriven av Kernigan och Ritchie år utkom också en ANSI-standard. Introduktion till vetenskapliga beräkningar II, Tom Sundius

21 C har en mycket koncis syntax, antagligen beroende på att det utvecklats på datorer med långsamma teletype-terminaler. C är ett mycket effektivt språk, men med C är det också lätt att göra programmeringsfel (som kan vara svåra att finna). Genom objekt-orienterad programmering (OOP) som nu är på modet, har ett antal nya begrepp, såsom klasser, objekt, metoder, etc. introducerats i programmeringen. Det första språket som innehöll sådana begrepp var Simula. C ++, som numera anses vara ett av de populäraste programmeringsspråken utvecklades av Stroustrup, och standardiserades Där har man försökt kombinera Simulas funktionalitet med C- språkets effektivitet. BASIC (Beginner s All-purpose Symbolic Instruction Code), som utvecklades i Dartmouth College år 1965 av John Kemeny och Thomas Kurtz, är ett språk, som har varit populärt på grund av den låga inlärningströskeln, samt genom att det kan tjäna som inkörningsport till FORTRAN. Ursprungligen fanns BASIC enbart som ett tolkande program, dvs instruktionerna översattes var för sig, istället för att hela programmet skulle översättas på en gång. Detta gjorde utförandet av programslingor särskilt långsamma. Genom att BASIC alltid förekom på de första mikrodatorerna under 1970 talet ökades intresset för programmering märkbart. Efter denna kortfattade inledning skall vi diskutera hur man i allmänhet förfar, när man skall skriva ett program på ett högnivåspråk såsom Fortran eller Pascal. Först brukar man specificera problemet, så att man får klart för sig vad programmmet bör göra. Utgående från specifikationen väljer man de metoder och algoritmer som man skall använda i programmet. Introduktion till vetenskapliga beräkningar II, Tom Sundius

22 Följande steg är att koda (skriva) programmet (i praktiken skrivs programmet in i en fil med hjälp av en editor), varpå det är klart för kompilering (dvs översättning) till maskinkod. Under kompileringen granskas programmets syntax, dvs att man följt språkets regler vid kodningen. Om kompilatorn upptäcker några fel (kompileringsfel), bör dessa rättas innan man kan gå vidare. Det översatta programmet kallas ofta relokerbart, eftersom programmets startadress ännu inte blivit bestämd, utan alla adresser i koden är relativa. Först när programmet laddas, räknas startadressen ut. Kompileringen äger vanligen rum i flera faser. Innan syntaxgranskningen och den egentliga översättningen påbörjas, uppställer kompilatorn tabeller över symboler som används i programmet och ordnar dem i kategorier. Numera är det också viktigt med optimering av programkoden. Det är oftast möjligt att antingen optimera programmets snabbhet, eller det utrymme i minnet det upptar. Vilket man väljer, beror på vad programmet skall användas till. Kompilatorer på moderna superdatorer kan dessutom vektorisera koden, eller göra det möjligt att köra delar av den parallellt, varigenom programmet blir snabbare. För att underlätta programmeringen av massivt parallella datorer har man gjort en utvidgning av Fortran-språket (High Performance Fortran, HPF). När programmet har översatts, skall det länkas, dvs objektfilerna (som innehåller relokerbar kod) kombineras med varandra och eventuellt med yttre biblioteksfiler. Många kompilatorer, särskilt på UNIX-datorer, innehåller en linkoption, som ofta är underförstådd, men på många datorer måste man starta ett särskilt länkningsprogram. Detta kan vara nödvändigt isynnerhet om programmet består av flere moduler. Introduktion till vetenskapliga beräkningar II, Tom Sundius

23 Tidigare, när datorernas minne ofta var mycket begränsat, kunde länkningsprogrammet också dela upp den exekverbara filen på flere delar, eller överlagringar (overlays), som lästes in i minnet efterhand som de behövdes. Detta behöver man numera sällan bekymra sig, eftersom många datorer har virtuellt minne, dvs primärminnet innehåller vanligen endast en del av programmet, men laddar vid behov automatiskt ner ytterligare sidor (innebär ett sätt att uppdela minnet). När programmet är färdigt översatt, bör det testas. Detta sker oftast med användning av särskilda testdata. Fel, som upptäckts under testkörningen, kallas exekveringsfel, och de är ofta svårare att hitta än syntaxfelen. Detta skede i programutvecklingen brukar kallas felsökningen (eng. debug ). När man rättat felen, upprepas testningen på nytt, tills inga fel längre visar sig. Då programmet till sist fungerar, brukar man dokumentera det (ett steg som stundom blir bortglömt). Förr skrevs program ofta som stora helheter, vilket ledde till att felsökningen försvårades när programmen växte. Numera programmerar man oftast modulärt, vilket innebär, att programmet delas upp i delar, som testas var för sig. Slutligen sammanfogas delarna (modulerna) till en helhet, som undergår den slutliga testningen. Detta gör det mycket lättare att skriva stora program. Modulerna kan göras ganska små, de kan t.ex. bestå av en eller ett par subrutiner. Modulär programmering leder till separat kompilering, som numera är möjlig med de flesta kompilatorer. Många UNIX-datorer använder dessutom prekompilatorer, som har till uppgift att behandla särskilda kompilatordirektiv, som finns i programtexten. Introduktion till vetenskapliga beräkningar II, Tom Sundius

Kapitel 8. Lösning av ordinära differentialekvationer

Kapitel 8. Lösning av ordinära differentialekvationer Kapitel 8. Lösning av ordinära differentialekvationer Eftersom endast ett mindre antal differentialekvationer kan lösas analytiskt, är numeriska lösningsmetoder ofta av stor betydelse. Nära besläktade

Läs mer

Ordinära differentialekvationer,

Ordinära differentialekvationer, Sammanfattning metoder Ordinära differentialekvationer, del 2 Beräkningsvetenskap II n Eulers metod (Euler framåt, explicit Euler): y i+1 = y i + h i f (t i, y i ) n Euler bakåt (implicit Euler): y i+1

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Numeriska metoder för ODE: Teori

Numeriska metoder för ODE: Teori Numeriska metoder för ODE: Teori Lokalt trunkeringsfel och noggrannhetsordning Definition: Det lokala trunkeringsfelet är det fel man gör med en numerisk metod när man utgår från det exakta värdet vid

Läs mer

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

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod TANA21+22/ 30 september 2016 LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER 1 Inledning Vi skall studera begynnelsevärdesproblem, både med avseende på stabilitet och noggrannhetens beroende av steglängden. Vi

Läs mer

Ordinära differentialekvationer,

Ordinära differentialekvationer, (ODE) Ordinära differentialekvationer, del 1 Beräkningsvetenskap II It is a truism that nothing is permanent except change. - George F. Simmons ODE:er är modeller som beskriver förändring, ofta i tiden

Läs mer

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/vt11 Studentportalen http://www.studentportalen.uu.se Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se

Läs mer

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering λ Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/mafykht11/ λ Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga

Läs mer

Program & programmering

Program & programmering Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,

Läs mer

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor på boken Lunell: Datalogi-begreppen och tekniken Obs! Andra frågor än dessa kan komma på tentan! 1. Konvertera talet 186 till

Läs mer

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

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18. Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.1 Delkapitlet introducerar en del terminologi och beteckningar som används.

Läs mer

Approximation av funktioner

Approximation av funktioner Vetenskapliga beräkningar III 8 Kapitel Approximation av funktioner Vi skall nu övergå till att beskriva, hur man i praktiken numeriskt beräknar funktioner I allmänhet kan inte ens elementära funktioner

Läs mer

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

f(x + h) f(x) h f(x) f(x h) h NUMPROG, D för M, vt 008 Föreläsning N: Numerisk derivering och integrering Inledning: numerisk lösning av analytiska problem Skillnader mellan matematisk analys och numeriska metoder. Grundläggande begrepp

Läs mer

Numeriska metoder, grundkurs II. Dagens program. Gyllenesnittminimering, exempel Gyllenesnittetminimering. Övningsgrupp 1

Numeriska metoder, grundkurs II. Dagens program. Gyllenesnittminimering, exempel Gyllenesnittetminimering. Övningsgrupp 1 Numeriska metoder, grundkurs II Övning 5 för I Dagens program Övningsgrupp 1 Johannes Hjorth hjorth@nada.kth.se Rum :006, Roslagstullsbacken 5 08-790 69 00 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/d0/numi07

Läs mer

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem Lennart Edsberg NADA 3 april 007 D11, M1 Laboration 4 A Numerisk behandling av integraler och begynnelsevärdesproblem Denna laboration ger 1 bonuspoäng. Sista bonusdatum 7 april 007 Efter den här laborationen

Läs mer

Numeriska metoder för ODE: Teori

Numeriska metoder för ODE: Teori Numeriska metoder för ODE: Teori Vilka metoder har vi tagit upp? Euler framåt Euler bakåt Trapetsmetoden y k+ = y k + hf(t k, y k ), explicit y k+ = y k + hf(t k+, y k+ ), implicit y k+ = y k + h (f(t

Läs mer

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Differentialekvationer. Repetition av FN5 (GNM kap 6.

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Differentialekvationer. Repetition av FN5 (GNM kap 6. Denna föreläsning DN1212 Numeriska metoder och grundläggande programmering FN6 09-03-17 Hedvig Kjellström hedvig@csc.kth.se Repetition av FN5 (GNM kap 6.1-2B) Differentialekvationer Standardform för begynnelsevärdesproblem

Läs mer

Sammanfattning av föreläsning 11. Modellbygge & Simulering, TSRT62. Föreläsning 12. Simulering. Föreläsning 12. Numeriska metoder och Simulering

Sammanfattning av föreläsning 11. Modellbygge & Simulering, TSRT62. Föreläsning 12. Simulering. Föreläsning 12. Numeriska metoder och Simulering Sammanfattning av föreläsning 11 Modellbygge & Simulering, TSRT62 Föreläsning 12. Simulering Reglerteknik, ISY, Linköpings Universitet Index för en DAE Antalet derivationer som behövs för att lösa ut ż

Läs mer

Laboration 2 Ordinära differentialekvationer

Laboration 2 Ordinära differentialekvationer Matematisk analys i en variabel, AT1 TMV13-1/13 Matematiska vetenskaper Laboration Ordinära differentialekvationer Vi skall se på begynnelsevärdesproblem för första ordningens differentialekvation u =

Läs mer

Programmering i maskinspråk (Maskinassemblering)

Programmering i maskinspråk (Maskinassemblering) Programmering i maskinspråk (Maskinassemblering) Programutveckling i assemblerspråk Begreppet assemblerspråk introduceras i häftet Ext-20. En del korta programavsnitt skrivs med assemblerspråk i övningsuppgifterna

Läs mer

Grundkurs i programmering - intro

Grundkurs i programmering - intro Grundkurs i programmering - intro Linda Mannila 4.9.2007 Dagens föreläsning Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc. Hur arbetar en dator? Hur vi får datorn att förstå

Läs mer

Omtentamen i DV & TDV

Omtentamen i DV & TDV Umeå Universitet Institutionen för Datavetenskap Gunilla Wikström (e-post wikstrom) Omtentamen i Teknisk-Vetenskapliga Beräkningar för DV & TDV Tentamensdatum: 2006-06-05 Skrivtid: 9-15 Hjälpmedel: inga

Läs mer

Programmering i maskinspråk (Maskinassemblering)

Programmering i maskinspråk (Maskinassemblering) Ext-15 (2013-08-26) sida 1 Programmering i maskinspråk (Maskinassemblering) Programutveckling i assemblerspråk Begreppet assemblerspråk introduceras i arbetsboken (ARB) kapitlen 14-16. En del korta programavsnitt

Läs mer

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering SF1518,SF1519,numpbd15 LABORATION 2 Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering - Genomför laborationen genom att göra de handräkningar och MATLAB-program som begärs. Var noga med

Läs mer

Lösningar till Tentamen i Beräkningsvetenskap II, 5.0 hp, Del A. 1. (a) ODE-systemet kan skrivas på formen

Lösningar till Tentamen i Beräkningsvetenskap II, 5.0 hp, Del A. 1. (a) ODE-systemet kan skrivas på formen Lösningar till Tentamen i Beräkningsvetenskap II, 5.0 hp, 2013-03-18 Del A 1. (a) ODE-systemet kan skrivas på formen z (t) = f(t, z), där z(t) = x(t) y(t) u(t) v(t), f(t, z) = u(t) v(t) kx(t)/ ( x2 (t)

Läs mer

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs KTH Matematik Tentamen del 1 SF154, 1-3-3, 8.-11., Numeriska metoder, grundkurs Namn:... Bonuspoäng. Ange dina bonuspoäng från kursomgången läsåret HT15/VT1 här: Max antal poäng är. Gränsen för godkänt/betyg

Läs mer

Imperativ programmering

Imperativ programmering Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk

Läs mer

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

Läs mer

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering och Python Grundkurs i programmering med Python Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?

Läs mer

Exempel ode45 parametrar Miniprojekt 1 Rapport. Problemlösning. Anastasia Kruchinina. Uppsala Universitet. Januari 2016

Exempel ode45 parametrar Miniprojekt 1 Rapport. Problemlösning. Anastasia Kruchinina. Uppsala Universitet. Januari 2016 Problemlösning Anastasia Kruchinina Uppsala Universitet Januari 2016 Anastasia Kruchinina Problemlösning 1 / 16 Exempel ode45 parametrar Miniprojekt 1 Rapport Anastasia Kruchinina Problemlösning 2 / 16

Läs mer

SF1625 Envariabelanalys Tentamen Måndagen den 11 januari 2016

SF1625 Envariabelanalys Tentamen Måndagen den 11 januari 2016 SF625 Envariabelanalys Tentamen Måndagen den januari 206 Skrivtid: 08:00-3:00 Tillåtna hjälpmedel: inga Examinator: Lars Filipsson Tentamen består av nio uppgifter som vardera ger maximalt fyra poäng.

Läs mer

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach Föreläsning 1: Intro till kursen och Kursens hemsida http://www.it.uu.se/edu/course/homepage/prog1/esvt10 Studentportalen http://www.studentportalen.uu.se Kursmaterial Kursbok Kursprogramvara Tips: Installera

Läs mer

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

TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer Johan Thim 0 januari 207 Introduktion En differentialekvation (DE) i en variabel är en ekvation som innehåller både

Läs mer

Sammanfattning (Nummedelen)

Sammanfattning (Nummedelen) DN11 Numeriska metoder och grundläggande programmering Sammanfattning (Nummedelen Icke-linjära ekvationer Ex: y=x 0.5 Lösningsmetoder: Skriv på polynomform och använd roots(coeffs Fixpunkt x i+1 =G(x i,

Läs mer

AUTONOMA DIFFERENTIALEKVATIONER

AUTONOMA DIFFERENTIALEKVATIONER Armin Halilovic: EXTRA ÖVNINGAR, SF676 AUTONOMA DIFFERENTIALEKVATIONER Stabilitet Fasporträtt AUTONOMA DE: Det är speciellt enkelt att rita ett riktningsfält för en ekvation av typen y F( y) (ekv) (eller

Läs mer

4 Numerisk integration och av differentialekvationer

4 Numerisk integration och av differentialekvationer Matematik med Matlab M1 och TD1 1999/2000 sid. 27 av 47 4 Numerisk integration och av differentialekvationer Redovisning redovisas som tidigare med en utdatafil skapad med diary 4.1 Numerisk av ekvationer.

Läs mer

TDIU01 (725G67) - Programmering i C++, grundkurs

TDIU01 (725G67) - Programmering i C++, grundkurs TDIU01 (725G67) - Programmering i C++, grundkurs Introduktion till kursen och programmering Eric Elfving Institutionen för datavetenskap 2 september 2014 Översikt Kursinformation Personal Kursmål Upplägg

Läs mer

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

Matematisk analys för ingenjörer Matlabövning 3 Numerisk lösning av differentialekvationer 2 mars 2017 Matematisk analys för ingenjörer Matlabövning 3 Numerisk lösning av differentialekvationer Syftet med denna matlab-övning är att studera differentialekvationer och introducera hur man använder

Läs mer

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP DIFFERENTIALEKVATIONER INLEDNING OCH GRUNDBEGREPP Differentialekvation (DE) är en ekvation som innehåller derivator av en eller flera okända funktioner ORDINÄRA DIFFERENTIAL EKVATIONER i) En differentialekvation

Läs mer

SF1625 Envariabelanalys Lösningsförslag till tentamen

SF1625 Envariabelanalys Lösningsförslag till tentamen SF1625 Envariabelanalys Lösningsförslag till tentamen 216-6-1 1. Derivera nedanstående funktioner med avseende på x och ange för vilka x derivatan existerar. Endast svar krävs. A. f(x) = arctan 1 x B.

Läs mer

Newtons metod och arsenik på lekplatser

Newtons metod och arsenik på lekplatser Newtons metod och arsenik på lekplatser Karin Kraft och Stig Larsson Beräkningsmatematik Chalmers tekniska högskola 1 november 2004 Introduktion Denna övning ingår i Lärardag på Chalmers för kemilärare

Läs mer

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A SF625 Envariabelanalys Lösningsförslag till tentamen 206-0- DEL A. Betrakta funktionen f som ges av f(x) = x 2 arctan x. A. Bestäm definitionsmängden till f. B. Bestäm de intervall där f är växande respektive

Läs mer

ENKEL Programmering 3

ENKEL Programmering 3 ENKEL Programmering 3 Figurer i långa rader Titta på de olika figurerna i de olika raderna. Kan du se att de olika figurerna i varje rad är placerade enligt ett visst mönster? Kan du lista ut vilken figur

Läs mer

0.31 = f(x 2 ) = b 1 + b 2 (x 3 x 1 ) + b 3 (x 3 x 1 )(x 3 x 2 ) = ( ) + b 3 ( )(

0.31 = f(x 2 ) = b 1 + b 2 (x 3 x 1 ) + b 3 (x 3 x 1 )(x 3 x 2 ) = ( ) + b 3 ( )( Lösningar till Tentamen i Beräkningsvetenskap II, 5.0 hp, 2012-03-09 Del A 1. (a) För att anpassa ett polynom som går genom tre punkter behövs ett andragradspolynom. Newtons interpolationsansats ger f(x)

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

LABORATION cos (3x 2 ) dx I =

LABORATION cos (3x 2 ) dx I = SF1518,SF1519,numpbd14 LABORATION 2 Trapetsregeln, ekvationer, ekvationssystem, MATLAB-funktioner Studera kapitel 6 och avsnitt 5.2.1, 1.3 och 3.8 i NAM parallellt med arbetet på denna laboration. Genomför

Läs mer

Matlab övningsuppgifter

Matlab övningsuppgifter CTH/GU TMA976-28/29 Matematiska vetenskaper Matlab övningsuppgifter Inledning Vi skall först se hur man beräknar numeriska lösningar till differentialekvationer. Därefter skall vi rita motsvarigheten till

Läs mer

FÖRSÄTTSBLAD TILL TENTAMEN. ELLER (fyll bara i om du saknar tentamenskod): Datum: 16 januari Bordsnummer:

FÖRSÄTTSBLAD TILL TENTAMEN. ELLER (fyll bara i om du saknar tentamenskod): Datum: 16 januari Bordsnummer: FÖRSÄTTSBLAD TILL TENTAMEN Din tentamenskod (6 siffror): ELLER (fyll bara i om du saknar tentamenskod): Personnummer: - Datum: 16 januari 2013 Kursens namn (inkl. grupp): Beräkningsvetenskap I (1TD393)

Läs mer

4.3. Programmering i MATLAB

4.3. Programmering i MATLAB 4.3. Programmering i MATLAB MATLAB används ofta interaktivt, dvs ett kommando som man skriver, kommer genast att utföras, och resultatet visas. Men MATLAB kan också utföra kommandon som lagrats i filer,

Läs mer

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering KTH Matematik Tentamen del 2 SF1511, 2018-03-16, kl 8.00-11.00, Numeriska metoder och grundläggande programmering Del 2, Max 50p + bonuspoäng (max 4p). Rättas ast om del 1 är godkänd. Betygsgränser inkl

Läs mer

Inledande programmering med C# (1DV402) Introduktion till C#

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i

Läs mer

TATA42: Föreläsning 3 Restterm på Lagranges form

TATA42: Föreläsning 3 Restterm på Lagranges form TATA4: Föreläsning 3 Restterm på Lagranges form Johan Thim 9 mars 9 Lagranges form för resttermen Vi har tidigare använt resttermen på ordo-form med goda resultat. Oftast i samband med gränsvärden, extrempunktsundersökningar

Läs mer

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem Lennart Edsberg NADA 9 mars 6 D11, M1 Laboration 4 A Numerisk behandling av integraler och begynnelsevärdesproblem Denna laboration ger 1 bonuspoäng. Sista bonusdatum 5 april 6 Efter den här laborationen

Läs mer

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP Armin Halilovic: EXTRA ÖVNINGAR DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP Differentialekvation (DE) är en ekvation som innehåller derivator av en eller flera okända funktioner. ORDINÄRA DIFFERENTIALEKVATIONER

Läs mer

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

Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, Del A Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, 010-06-07 Skrivtid: 14 00 17 00 (OBS! Tre timmars skrivtid!)

Läs mer

Numeriska metoder för ODE: Teori

Numeriska metoder för ODE: Teori Numeriska metoder för ODE: Teori Målen för föreläsningen Stabilitet vid diskretisering av ODE med numeriska metoder Definition: Den analytiska lösningen till en ODE är begränsad. En numerisk metod för

Läs mer

KTH 2D1240 OPEN vt 06 p. 1 (5) J.Oppelstrup

KTH 2D1240 OPEN vt 06 p. 1 (5) J.Oppelstrup KTH 2D1240 OPEN vt 06 p. 1 (5) Tentamen i Numeriska Metoder gk II 2D1240 OPEN (& andra) Fredag 2006-04-21 kl. 13 16 Hjälpmedel: Del 1 inga, Del 2 rosa formelsamlingen som man får ta fram när man lämnar

Läs mer

3.3. Symboliska matematikprogram

3.3. Symboliska matematikprogram 3.3. Symboliska matematikprogram Vi skall nu övergå till att behandla de vanligaste matematikprogrammen, och börja med de symboliska. Av dessa kan både Mathematica och Maple användas på flere UNIX-datorer.

Läs mer

TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA671

TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA671 Institutionen för Matematik LINJÄR ALGEBRA OCH NUMERISK ANALYS F Göteborg --9 TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F, TMA67 OBS! NYA KURSEN DAG: Tisdag 9 januari TID: 8.45 -.45 SAL: V Ansvarig:

Läs mer

Laboration 1, M0039M, VT16

Laboration 1, M0039M, VT16 Laboration 1, M0039M, VT16 1 Förberedelser Ove Edlund, Staffan Lundberg LTU (1) Gör dig bekant med Matlab-manualen finns för nedladdning på Fronter. (2) Läs igenom laborationens teoridel, avsnitt 2 nedan.

Läs mer

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

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration 10 februari 2017 Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration Syfte med övningen: Introduktion till ett par numeriska metoder för lösning av ekvationer respektive

Läs mer

D 1 u(x, y) = e x (1 + x + y 2 ), D 2 u(x, y) = 2ye x + 1, (x, y) R 2.

D 1 u(x, y) = e x (1 + x + y 2 ), D 2 u(x, y) = 2ye x + 1, (x, y) R 2. Differentialekvationer I Modellsvar till räkneövning 4 De frivilliga uppgifterna U1 och U2 påminner om nyttiga kunskaper, och räknas inte för extrapoäng (fråga vid behov). U1. Sök en potentialfunktion

Läs mer

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

Laboration 1 i SF1544: Öva på Matlab och konstruera en optimal balk Avsikten med denna laboration är att: Laboration 1 i SF1544: Öva på Matlab och konstruera en optimal balk Avsikten med denna laboration är att: - snabbt komma igång med träning på matlabprogrammering (uttnyttja gärna alla schemalagda laborationstillfällen,

Läs mer

Tentamen del 1 SF1511, , kl , Numeriska metoder och grundläggande programmering

Tentamen del 1 SF1511, , kl , Numeriska metoder och grundläggande programmering KTH Matematik Tentamen del SF5, 28-3-6, kl 8.-., Numeriska metoder och grundläggande programmering Namn:... Personnummer:... Program och årskurs:... Bonuspoäng. Ange dina bonuspoäng från kursomgången HT7-VT8

Läs mer

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen (18 januari 2015 F1.1 ) Föreläsning 1: Introduktion till kursen Lärare: Anna, Carl, Johan, Tom och ca 20 assistenter Registrering / avregistrering Undervisningsformer: föreläsningar och laborationer Kursmaterial

Läs mer

SF1664 Tillämpad envariabelanalys med numeriska metoder Lösningsförslag till tentamen DEL A

SF1664 Tillämpad envariabelanalys med numeriska metoder Lösningsförslag till tentamen DEL A SF1664 Tillämpad envariabelanalys med numeriska metoder Lösningsförslag till tentamen 015-01-1 DEL A 1. Låt f(x) = xe 1/x. A. Bestäm definitionsmängden till f. B. Beräkna de fyra gränsvärdena lim x ± f(x)

Läs mer

EXISTENS AV EN UNIK LÖSNING TILL FÖRSTAORDNINGENS BEGYNNELSEVÄRDESPROBLEM

EXISTENS AV EN UNIK LÖSNING TILL FÖRSTAORDNINGENS BEGYNNELSEVÄRDESPROBLEM EXISTENS AV EN UNIK LÖSNING TILL FÖRSTAORDNINGENS BEGYNNELSEVÄRDESPROBLEM Vi betraktar ett begnnelsevärdesproblem IVP, initial-value problem) av första ordningen som är skrivet på normal form IVP1) Man

Läs mer

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP Armin Halilovic: EXTRA ÖVNINGAR, SF676 Differentialekvationer Inledning DIFFERENTIALEKVATIONER INLEDNING OCH GRUNDBEGREPP Differentialekvation (DE) är en ekvation som innehåller derivator av en eller flera

Läs mer

de uppgifter i) Under m-filerna iv) Efter samlade i en mapp. Uppgift clear clc Sida 1 av 6

de uppgifter i) Under m-filerna iv) Efter samlade i en mapp. Uppgift clear clc Sida 1 av 6 Inlämningsuppgift 2, HF1006.. (MATLAB) INLÄMNINGSUPPGIFT 2 (MATLAB) Kurs: Linjär algebra och analys Del2, analys Kurskod: HF1006 Skolår: 2018/19 Redovisas under en av de tre schemalaggs gda redovisningstillfällen

Läs mer

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2 Numerisk Analys - Institutionen för Matematik KTH - Royal institute of technology 218-5-28, kl 8-11 SF1547 TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2 Rättas endast om del 1 är godkänd. Betygsgräns

Läs mer

Editering, Kompilering och Exekvering av Javaprogram

Editering, Kompilering och Exekvering av Javaprogram UMEÅ UNIVERSITET Institutionen för informatik B.1, Programmeringens grunder, 5 poäng Editering, Kompilering och Exekvering av Javaprogram Introduktion Syftet med kursmomentet Programmeringens grunder (B.1)

Läs mer

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

) + γy = 0, y(0) = 1, Institutionen för Matematik, KTH Tentamen del Numeriska metoder SF545 8.00-.00 / 04 Inga hjälpmedel är tillåtna (ej heller miniräknare). Råd för att undvika poängavdrag: Skriv lösningar med fullständiga

Läs mer

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP DIFFERENTIALEKVATIONER INLEDNING OCH GRUNDBEGREPP Differentialekvation (DE) är en ekvation som innehåller derivator av en eller flera okända funktioner ORDINÄRA DIFFERENTIALEKVATIONER i) En differentialekvation

Läs mer

DN1212 för M: Projektrapport. Krimskramsbollen. av Ninni Carlsund

DN1212 för M: Projektrapport. Krimskramsbollen. av Ninni Carlsund Författare: Ninni Carlsund DN1212-projekt: Krimskramsbollen Kursledare: Ninni Carlsund DN1212 för M: Projektrapport Krimskramsbollen av Ninni Carlsund. 2010-04-29 1 Författare: Ninni Carlsund DN1212-projekt:

Läs mer

DN1212 Numeriska Metoder och Grundläggande Programmering DN1214 Numeriska Metoder för S Lördag , kl 9-12

DN1212 Numeriska Metoder och Grundläggande Programmering DN1214 Numeriska Metoder för S Lördag , kl 9-12 DN Numeriska Metoder och Grundläggande Programmering DN Numeriska Metoder för S Lördag 007--7, kl 9- Skrivtid tim Maximal poäng 5 + bonuspoäng från årets laborationer (max p) Betygsgänser: för betyg D:

Läs mer

Tentamen i Teknisk-Vetenskapliga Beräkningar

Tentamen i Teknisk-Vetenskapliga Beräkningar Umeå Universitet Institutionen för Datavetenskap Gunilla Wikström Tentamen i Teknisk-Vetenskapliga Beräkningar Tentamensdatum: 005-03- Skrivtid: 9-5 Hjälpmedel: inga Om problembeskrivningen i något fall

Läs mer

NUMPROG, 2D1212, vt Föreläsning 9, Numme-delen. Stabilitet vid numerisk behandling av diffekvationer Linjära och icke-linjära ekvationssystem

NUMPROG, 2D1212, vt Föreläsning 9, Numme-delen. Stabilitet vid numerisk behandling av diffekvationer Linjära och icke-linjära ekvationssystem NUMPROG, 2D1212, vt 2005 Föreläsning 9, Numme-delen Stabilitet vid numerisk behandling av diffekvationer Linjära och icke-linjära ekvationssystem Då steglängden h är tillräckligt liten erhålles en noggrann

Läs mer

Omtentamen i DV & TDV

Omtentamen i DV & TDV Umeå Universitet Institutionen för Datavetenskap Gunilla Wikström (e-post wikstrom) Omtentamen i Teknisk-Vetenskapliga Beräkningar för DV & TDV Tentamensdatum: 2005-06-07 Skrivtid: 9-15 Hjälpmedel: inga

Läs mer

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP DIFFERENTIALEKVATIONER INLEDNING OCH GRUNDBEGREPP Differentialekvation (DE) är en ekvation som innehåller derivator av en eller flera okända funktioner ORDINÄRA DIFFERENTIALEKVATIONER i) En differentialekvation

Läs mer

Institutionen för Matematik, KTH Lösningar till tentamen i Analys i en variabel för I och K (SF1644) 1/ e x h. (sin x) 2 1 cos x.

Institutionen för Matematik, KTH Lösningar till tentamen i Analys i en variabel för I och K (SF1644) 1/ e x h. (sin x) 2 1 cos x. Institutionen för Matematik, KTH Lösningar till tentamen i Analys i en variabel för I och K (SF644) /6 29. Bestäm med derivatans definition d dx ex. Derivatans definition är f (x) = lim h h ( f(x + h)

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A SF1625 Envariabelanalys Lösningsförslag till tentamen 215-1-27 DEL A 4 1. Betrakta funktionen f som ges av f(x) = 1 + x + (x 2). 2 A. Bestäm definitionsmängden till f. B. Bestäm alla intervall där f är

Läs mer

Ordinära differentialekvationer (ODE) 1 1

Ordinära differentialekvationer (ODE) 1 1 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

Läs mer

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik IT OCH PROGRAMMERING I SKOLAN Jan Erik Moström Peter Vinnervik VILKA ÄR VI OCH VAD KOMMER VI ATT PRATA OM? Jan Erik Moström - undervisar på institutionen för datavetenskap Peter Vinnervik - doktorand vid

Läs mer

Om existens och entydighet av lösningar till ordinära differentialekvationer

Om existens och entydighet av lösningar till ordinära differentialekvationer Om existens och entydighet av lösningar till ordinära differentialekvationer Anders Källén 11 maj 2016 1 Introduktion I det här kapitlet ska vi diskutera vad vi allmänt kan säga om lösningar till ett system

Läs mer

Innehålls förteckning

Innehålls förteckning Programmering Uppsats i skrivteknik Axxell Företagsekonomi i informationsteknik 19.3.2015 Respondent: Tomas Björklöf Opponent: Theo Wahlström Handledare: Katarina Wikström Innehålls förteckning 1. Inledning...3

Läs mer

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Linjära system 7. (a) Falskt. Kondition är en egenskap hos problemet oberoende av precisionen i beräkningarna. (b) Falskt. Pivotering påverkar

Läs mer

Objektorienterad programmering, allmänt

Objektorienterad programmering, allmänt Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 juni 2005 1 Vilka egenskaper vill vi att program ska ha? Förslag (en partiell lista): De ska... gå snabbt att skriva vara

Läs mer

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha? Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 mars 2005 1. Korrekthet 2. Robusthet 3. Utökbarhet 4. Återanvändbarhet 5. Kompatibilitet

Läs mer

R AKNE OVNING VECKA 2 David Heintz, 13 november 2002

R AKNE OVNING VECKA 2 David Heintz, 13 november 2002 RÄKNEÖVNING VECKA 2 David Heintz, 3 november 22 Innehåll Uppgift 29.4 2 Uppgift 29. 3 3 Uppgift 29.2 5 4 Uppgift 3. 7 5 Uppgift 3. 9 6 Uppgift 3.2 Uppgift 29.4 Prove that ln( + x) x for x >, and that ln(

Läs mer

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen i Beräkningsvetenskap II, 5.0 hp, Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap II, 5.0 hp, 2012-03-09 Skrivtid: 14 00 17 00 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat

Läs mer

Två gränsfall en fallstudie

Två gränsfall en fallstudie 19 november 2014 FYTA11 Datoruppgift 6 Två gränsfall en fallstudie Handledare: Christian Bierlich Email: christian.bierlich@thep.lu.se Redovisning av övningsuppgifter före angiven deadline. 1 Introduktion

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator Viktiga begrepp Den här ordlistan är till för dig som går kursen Om Programmering. Eftersom detta är en grundläggande kurs har vi i vissa fall gjort en del förenklingar. En del begrepp är svåra att förenkla,

Läs mer

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664 LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664 Tillämpad envariabelanalys med numeriska metoder för CFATE1 den 1 mars 214 kl 8.-1. 1. Bestäm värdemängden till funktionen f(x) = 2 arctan x + ln (1 + x 2 ), där

Läs mer

Absolutstabilitet. Bakåt Euler Framåt Euler

Absolutstabilitet. Bakåt Euler Framåt Euler Absolutstabilitet Introduktion För att en numerisk ODE-metod ska vara användbar måste den vara konvergent, dvs den numeriska lösningen ska närma sig den exakta lösningen när steglängden går mot noll. Det

Läs mer

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar. Värmdö Gymnasium Programmering A 110123 Lektion C1 Grunder Att programmera handlar mycket om att lära sig att analysera det problem eller den funktion man vill att programmet ska ha, och översätta det

Läs mer

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

Assemblerprogrammering del 1

Assemblerprogrammering del 1 Assemblerprogrammering del 1 Dagens föreläsning behandlar: Kompendiet kapitel 9 Arbetsboken kapitel 15 Ur innehållet: Assemblerspråket Programmerarens bild Assemblering/disassemblering Funktion: Översätter

Läs mer

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20 Numerisk Analys - Institutionen för Matematik KTH - Royal institute of technology 2016-05-31, kl 08-11 SF1547+SF1543 TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20 Uppgift 1 Man vill lösa ekvationssystemet

Läs mer