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

Relevanta dokument
Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

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

Laboration 3. Funktioner, vektorer, integraler och felskattning

LABORATION cos (3x 2 ) dx I =

Laboration 3. Funktioner, vektorer, integraler och felskattning

Beräkning av integraler

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

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

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Sammanfattning (Nummedelen)

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer

Del I: Lösningsförslag till Numerisk analys,

TAIU07 Matematiska beräkningar med Matlab

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

f (a) sin

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

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

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

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Fallstudie: numerisk integration Baserad på läroboken, Case Study 19.9

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Envariabelanalys 5B1147 MATLAB-laboration Derivator

Tentamen i Beräkningsvetenskap II, 5.0 hp,

DATORLABORATION FÖR KURSEN ENVARIABELANALYS 2

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

4 Numerisk integration och av differentialekvationer

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Runge-Kuttas metoder. Repetition av FN6 (GNM kap 6.

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

SF1625 Envariabelanalys Lösningsförslag till tentamen

Tentamen i Beräkningsvetenskap II, 5.0 hp,

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

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

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

André Jaun, HT-2005 Anteckningar från lektioner i Numeriska Metoder fys-åk2. (Sid 93) Trapetsregeln Adaptiva metoder ODE-metod Förbehandlande metoder

Fel- och störningsanalys

Konvergens för iterativa metoder

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

Numeriska metoder för ODE: Teori

Interpolation Modellfunktioner som satisfierar givna punkter

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

SF1669 Matematisk och numerisk analys II Lösningsförslag till modelltentamen DEL A

Tentamen i Beräkningsvetenskap II, 5.0 hp,

SF1669 Matematisk och numerisk analys II Bedömningskriterier till tentamen Torsdagen den 4 juni 2015

TMA226 datorlaboration

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

Tentamen i Beräkningsvetenskap I, DV, 5.0 hp, OBS: Kurskod 1TD394

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 2

Sekantmetoden Beräkningsmatematik TANA21 Linköpings universitet Caroline Cornelius, Anja Hellander Ht 2018

Ordinära differentialekvationer,

a = a a a a a a ± ± ± ±500

Lennart Carleson. KTH och Uppsala universitet

Uppgift 1 R-S. Uppgift 2 R-M. Namn:...

Lösningsförslag Tentamen i Beräkningsvetenskap I, 5.0 hp,

Tentamen i Teknisk-Vetenskapliga Beräkningar

TANA17 Matematiska beräkningar med Matlab

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

Rapportexempel, Datorer och datoranvändning

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A

SF1544 LABORATION 2 INTEGRATION, MONTE-CARLO OCH BLACK-SCHOLES EKVATION FÖR OPTIONER

TANA19 NUMERISKA METODER

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

Maclaurins och Taylors formler. Standardutvecklingar (fortsättning), entydighet, numerisk beräkning av vissa uttryck, beräkning

Ansvariga lärare: Yury Shestopalov, rum 3A313, tel (a) Problem 1. Använd Eulers metod II (tre steg) och lös begynnelsevärdesproblemet

Fel- och störningsanalys

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

2D1212 NumProg för P1, VT2006 PROJEKTUPPGIFT

F 4 Ch Numerisk integration, forts.; Ch.4 Numerisk derivering.

Lösningar tentamen i kurs 2D1210,

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Flervariabelanalys och Matlab Kapitel 3

v0.2, Högskolan i Skövde Tentamen i matematik

R AKNE OVNING VECKA 2 David Heintz, 13 november 2002

Tentamen i Beräkningsvetenskap II, 5.0 hp,

En vanlig uppgift är att bestämma max resp min för en trigonometrisk funktion och de x- värden för vilka dessa antas.

4. Bestäm eventuella extrempunkter, inflexionspunkter samt horisontella och vertikala asymptoter till y = 1 x 1 + x, och rita funktionens graf.

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

RIEMANNSUMMOR. Den bestämda integralen definieras med hjälp av Riemannsummor. Låt vara en begränsad funktion,, reella tal och. lim.

7 november 2014 Sida 1 / 21

Betygskriterier Matematik D MA p. Respektive programmål gäller över kurskriterierna

Tentamen i Beräkningsvetenskap I (1TD393)

Instuderingsfrågor i Funktionsteori

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Numeriska metoder för ODE: Teori

Tentamen, del 2 DN1240 Numeriska metoder gk II för F

Numeriska metoder för ODE: Teori

Linjärisering och Newtons metod

Flervariabelanlys och Matlab Kapitel 3

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.

4 Fler deriveringsregler

Numerisk lösning till den tidsberoende Schrödingerekvationen.

Bose-Einsteinkondensation. Lars Gislén, Malin Sjödahl, Patrik Sahlin

TANA09 Föreläsning 8. Kubiska splines. B-Splines. Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

x sin(x 2 )dx I 1 = x arctan xdx I 2 = x (x + 1)(x 2 2x + 1) dx

Ordinära differentialekvationer (ODE) 1 1

Matematik 5 Kap 3 Derivator och Integraler

Sidor i boken f(x) = a x 2 +b x+c

Transkript:

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 i numeriska metoder. Approximationsprinciper för analytiska problem. Krav på en numerisk metod: noggrann, effektiv och stabil. Algoritmbegreppet i numeriska metoder. Programmering av numeriska metoder. Numerisk beräkning av derivator Numerisk derivering handlar om hur man approximerar derivator med hjälp av differensformler. I läroboken beskrivs hur detta görs för förstaderivator för 3 olika metoder, Eulers framåtdifferens, Eulers bakåtdifferens och centraldifferens, se läroboken exempel.0, sid 50. Eulers framåtdifferens Eulers bakåtdifferens Centraldifferens f (x) = f (x) = f(x + h) f(x) h f(x) f(x h) h + O(h) + O(h) f f(x + h) f(x h) (x) = + O(h ) h Eulers metoder är av första ordningen, vilket innebär att felet är i stort sett proportionellt mot steget h, medan centraldifferensen är av andra ordningen, dvs felet är proportionellt mot h. För andraderivator finns följande andra ordningens differensformel f f(x + h) f(x) + f(x h) (x) = + O(h ) h Ovanstående approximationer kommer till användning i de föreläsningar som tar upp differentialekvationer, se föreläsning 3-6.

Numeriskt experiment som illustrerar numerisk derivering och felskattning. Vi följer Ex.0 (sid 50-5) i PP s lärobok, men studerar felet som funktion av steglängden h Utgå från programmet sid 50, men ändra så att centraldifferensapproximationen beräknas för fler steglängder och skriv ut felet i stället för differenser och kvoter. En loglog-graf över felets absolutbelopp som funktion av h blir: 0 totalfelet i derivatan som funktion av h 0 0 0 0 0 3 0 4 0 5 0 6 0 7 0 8 0 0 0 0 8 0 6 0 4 0 0 0 För att förklara felkurvans utseende behövs några begrepp ur felkalkylen Antag att f är ett exakt värde och f motsvarande approximativa värde. Absolutfelet e f = f f Relativfelet r f = e f /f Oftast vet man bara övre gränser för e f och r f, dvs e f E f r f R f Ex. Om E f = 0.5 0 6 är f avrundat till 6 korrekta decimaler. Ex. I Matlab gäller att R f = 0 6, dvs tal avrundas till 6 korrekta siffror. Felet i ovanstående derivataapproximation D(h) = (f(x+h) f(x h))/h består av två delar: Approximationsfel (trunkeringsfel) e t = D(h) f (x), där E t = C h Avrundningsfel e a = D(h) D(h), där E a = C /h

Felet e tot, totalfelet, är summan av dessa två fel, dvs e tot = e t + e a och kan ges som en felgräns: E tot = E t + E a = C h + C /h. I grafens högra halva är felkurvan en rät linje. Det beror på att för h > 0 4 är avrundningsfelet försumbart, dvs E tot E t = C h. Tag logaritmen för detta samband så erhålles log(e t ) = log(c ) + log(h), dvs i ett loglog-diagram en rät linje med lutningen. Vi ser alltså att ju mindre h är desto sämre blir approximationen på grund av avrundningsfelens inverkan, vilket strider mot den matematiska definitionen, där h 0 och h kan bli hur nära noll som helst! Numeriskt är det bättre att välja ett måttligt litet värde på h. Numerisk approximation av derivator används mest vid lösning av differentialekvationer, men används också i olika situationer just för att beräkna derivatan av en funktion f(x) approximativt. ) då f(x) given genom en tabell ) då f(x) är krånglig att derivera analytiskt 3) då f(x) bara kan beräknas numeriskt för ett givet x 4) då f(x) är vektorvärd och samtliga derivator f i / x j (jacobianen) ska beräknas i ett program. Numerisk derivering blir då mycket enklare att programmera än att först derivera analytiskt och sedan stoppa in formlerna för derivatorna i koden Numerisk integration, kap 5 i läroboken En bestämd integral b I = f(x)dx a kan inte alltid beräknas analytiskt, eftersom det sällan går att ange den primitiva funktionen F (x) till f(x). Numeriskt beräknas en bestämd integral approximativt med hjälp av en kvadraturformel: I I appr = n ω k f(x k ) k=0 3

där koefficienterna ω k kallas vikter och punkterna x k kallas noder. I de metoder för numerisk integration som ingår i denna kurs, trapetsregeln och Simpsons formel, gäller att noderna ligger ekvidistant inom intervallet [a, b], dvs x k = a + kh, k = 0,,,..., n, där h är steglängden, given av h = (b a)/n. Förutom metoderna ska vi titta på approximationsfelet (trunkeringsfelet), definierat av e t = I appr I Det visar sig med hjälp av enkla numeriska experiment, att övre gränsen för detta fel, E t, beror av steglängden h enligt E t = ch p där p-värdet beror på vilken metod som anänds. Heltalet p kallas metodens noggrannhetsordning. Jämför med det numeriska experimentet för derivataberäkningen! Om log(e t ) plottas som funktion av log(h) så erhålles en rät linje med lutningen p. Trapetsregeln bygger på den geometriska tolkningen av en bestämd integral, nämligen att I är ytan av den figur som begränsas av x-axeln, funktionen y = f(x) samt de vertikala linjerna x = a och x = b.. Trapetsregeln. f n 0.9 f f n 0.7 0.5 f... T n f 0 T 0.3 T 0. 0 0...4.6 x 0 x x x n x n 4

Intervallet [a, b] delas in i n delintervall [x 0, x ], [x, x ],..., [x n, x n ] alla med längden h. I varje delintervall [x k, x k+ ] approximeras den krökta kurva som grafen av f(x) utgör, med en rät linje mellan (x k, f(x k )) och (x k+, f(x k+ )). Genom att summera ytorna för de n parallelltrapets som uppstår erhålles en approximation till den yta som I motsvarar: I appr = n k= T k = h f(x 0) + f(x ) som också kan skrivas I appr = T (h) = h( f(x 0) +h f(x ) + f(x ) +...+h f(x n ) + f(x n ) + f(x ) +... + f(x n ) + f(x n) ) där T (h) är trapetsvärdet svarande mot steglängden h. Exempel Beräkna approximativt 0 e x dx. 0. y=exp( x*x) 0. 0 0 0.5.5 0 0 0.5.5 0. 0 0 0.5.5 0. 0 0 0.5.5 En grov uppskattning av integralens värde erhålles för h =, dvs hela den krökta kurvan på intervallet [0, ] approximeras med en rät linje. T () = ( + e 4 ).083 5

Om intervallet [0, ] delas in i två delintervall, summeras ytan av två trapets: T () = ( + e + e 4 ) 770 Ett första Matlabprogram som beräknar ett trapetsvärde: a=0;b=; n=; h=(b-a)/n; x=[a:h:b]; y=exp(-x.*x); t=h*(sum(y)-(y()+y(end))/) Programmet utökas enkelt till beräkning av trapetsvärden för flera steglängder samt en tabell över trapetsvärden samt felen e t = T (h) I, där I har beräknats med en annan (noggrannare) metod till I = 8 (med fyra korrekta decimaler) a=0;b=; res=[]; for n=[,4,8] end h=(b-a)/n; x=[a:h:b]; y=exp(-x.*x); t=h*(sum(y)-(y()+y(end))/) fel=t-8; res=[res;[n,h,t,fel]] disp( n steg T(h) fel i T(h) ) 6

res Resultatet blir följande tabell n steg T(h) fel i T(h).00 770-0.005 4 0.50 806-0.005 8 0.5 87-0.0004 Ur tabellen framgår att felet approximativt minskar med en faktor 4 då steget minskar med en faktor, dvs e t ch. Man kan fråga sig om avrundningsfelen ger något bidrag till felet i tabellen. Precis som vid derivataberäkningen gäller E tot = E a + E t. Svaret är att avrundningsfelet vid numerisk integration är helt försumbart då Matlab används. Anledningen är att detta fel ges av (se läroboken) E a = (b a)e f. Eftersom E f /f = R f och R f = 0 6 i Matlab erhålles E a = (b a)f 0 6. Om man däremot räknar ut f-värdena för hand med säg 4 korrekta decimaler blir bidraget från avrundningsfelen E a = 0.5 (b a) 0 4 och är då ej försumbart. Trapetsregeln med feltermskorrektion (Richardsonextrapolation), även kallad Simpsons formel, bygger på formeln (se läroboken) ˆT (h) = T (h) + T (h) T (h) 3 Formeln för Simpsons metod blir (härledning utelämnas): I S(h) = h 6 (f(x 0)+4f(x )+f(x )+...+f(x n )+4f(x n )+f(x n )) Denna metod har noggrannhetsordningen 4, dvs e t = S(h) I ch 4. Matlab-funktioner för numerisk integration Den viktigaste funktionen att känna till är quad, som använder Simpsons metod med adaptiv anpassning av steglängden h. Det innebär att 7

steget h inte är konstant på intervallet [a, b] utan varieras med hänsyn till funktionen f(x) beteende över intervallet. Om f(x) varierar lite tas stora steg, om f(x) varierar mycket tas små steg. Anropet av quad (alt quadl) ser ut på följande sätt för den integral som behandlades i exemplet tidigare: int=quad( fun,a,b) där fun är namnet på den funktionsfil som definierar den funktion som ska integreras, och a,b är intervallgränserna. Om inget sägs om noggrannheten, beräknar quad integralen med sex decimalers noggrannhet. Vill man ha annan noggrannhet (tolerans), kan den anges som fjärde parameter i anropet, t ex int=quad( fun,a,b,e-8). Funktionen som ska integreras anges i en användardefinierad funktion, i detta exempel filen fun.m function fx=fun(x); fx=exp(-x.*x); Funktionen kan även definieras som inlinefunktion, dvs fun=inline( exp(-x.*x) ); 8