Kapitel 1. Numeriska metoder

Relevanta dokument
Kapitel 7. Numerisk derivering och integration

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

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

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

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

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

f (a) sin

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

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

DATORLABORATION FÖR KURSEN ENVARIABELANALYS 2

Lösningsförslag till Tentamen i SF1602 för CFATE 1 den 20 december 2008 kl 8-13

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

Flervariabelanalys och Matlab Kapitel 3

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

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

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.

med tillgång till värden på f: vi anser att vi kan evaluera f för alla x i (a,b) och använder kvadraturformler av typen n

SAMMANFATTNING TATA41 ENVARIABELANALYS 1

Beräkning av integraler

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

Sammanfattning (Nummedelen)

Euler-Mac Laurins summationsformel och Bernoulliska polynom

Frågorna 1 till 6 ska svaras med sant eller falskt och ger vardera 1

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

Tentamen i Envariabelanalys 2

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

Lennart Carleson. KTH och Uppsala universitet

Flervariabelanlys och Matlab Kapitel 3

f(a + h) = f(a) + f (a)h + f (θ) 2 h2, θ [a, a + h]. = f(a+h) f(a)

Interpolation. 8 december 2014 Sida 1 / 20

Kontrollskrivning KS1T

SF1625 Envariabelanalys Lösningsförslag till tentamen

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

Instuderingsfrågor i Funktionsteori

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

Föreläsning 5. Approximationsteori

5B1134 Matematik och modeller Lösningsförslag till tentamen den 29 augusti 2005

TANA17 Matematiska beräkningar med Matlab

Meningslöst nonsens. December 14, 2014

Interpolation Modellfunktioner som satisfierar givna punkter

Laboration 3. Funktioner, vektorer, integraler och felskattning

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

Gripenberg. Mat Grundkurs i matematik 1 Tentamen och mellanförhörsomtagning,

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

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

MAA7 Derivatan. 2. Funktionens egenskaper. 2.1 Repetition av grundbegerepp

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson, Sebastian Pöder

TAIU07 Matematiska beräkningar med Matlab

Prov 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad a) i) Nollställen för polynomet 2x 2 3x 1:

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

Lösandet av ekvationer utgör ett centralt område inom matematiken, kanske främst den tillämpade.

Institutionen för Matematik. SF1625 Envariabelanalys. Modul 5 Integraler

9.3. Egenvärdesproblem

Upphämtningskurs i matematik

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

Tentamen i Beräkningsvetenskap I (1TD393)

Kapitel 4. Iterativ lösning av ekvationer

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

S n = (b) Med hjälp av deluppgift (a) beräkna S n. 1 x < 2x 1? i i. och

För teknologer inskrivna H06 eller tidigare. Skriv GAMMAL på omslaget till din anomyna tentamen så att jag kan sortera ut de gamla teknologerna.

Laboration 3. Funktioner, vektorer, integraler och felskattning

TATA42: Föreläsning 5 Serier ( generaliserade summor )

3.6 De klassiska polynomens ortogonalitetsegenskaper.

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

5B1134 Matematik och modeller Uppgifter från kontrollskrivningar och tentamina under läsåren och

1.6 Lösningar till kapitel 8

Modul 5: Integraler. Det är viktigt att du blir bra på att integrera, så träna mycket.

SF1625 Envariabelanalys

5B1134 Matematik och modeller Lösningsförslag till tentamen den 11 oktober 2004

TANA17 Matematiska beräkningar med Matlab

MVE465. Innehållsförteckning

FÖ: MVE045, Riemann integral, tekniker Zoran Konkoli, HT 2018

gränsvärde existerar, vilket förefaller vara en naturlig definition (jämför med de generaliserade integralerna). I exemplet ovan ser vi att 3 = 3 n n

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

Institutionen för Matematik. SF1625 Envariabelanalys. Lars Filipsson. Modul 1

17.1 Kontinuerliga fördelningar

LABORATION cos (3x 2 ) dx I =

2. (a) Skissa grafen till funktionen f(x) = e x 2 x. Ange eventuella extremvärden, inflektionspunkter

Modul 1 Mål och Sammanfattning

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

Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x).

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

Fourierserier: att bryta ner periodiska förlopp

Kursens Kortfrågor med Svar SF1602 Di. Int.

SF1661 Perspektiv på matematik Tentamen 24 oktober 2013 kl Svar och lösningsförslag. z 11. w 3. Lösning. De Moivres formel ger att

MATEMATIKPROV, LÅNG LÄROKURS BESKRIVNING AV GODA SVAR

Trigonometriska formler Integraler och skalärprodukter Fourierserier Andra ortogonala system. Fourierserier. Fourierserier

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

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Enklare matematiska uppgifter

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

MATEMATIKPROV, LÅNG LÄROKURS BESKRIVNING AV GODA SVAR

Tentamen i matematik. f(x) = ln(ln(x)),

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

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Fredag 26 augusti 2005 TID:

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

TMV225+TMV176 Inledande matematik M, TD Sammanfattning. Läsanvisningar inför tentamen.

Tentamen i tmv036c och tmv035c, Analys och linjär algebra C för K, Kf och Bt A =, = det(a λi) = e 2t + c 2. x(t) = c 1. = c 1.

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

Transkript:

Kapitel 1. Numeriska metoder Detta är andra delen av kursen i vetenskapliga beräkningar, där vi till en början kommer att bekanta oss med endel numeriska metoder, som inte ingick i den första delen. Beräkningarna kommer som förut att utföras med Matlab. Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 1

1.1. Beräkning av integraler I fysiken behöver man ofta beräkna integraler av funktioner numeriskt. För att beräkna integraler av elementära funktioner finns det standardmetoder som är kända från analysen, men i fysiken stöter man ofta på funktioner, som inte kan integreras med välkända metoder. Ett exempel härpå är Gauss felfunktion erf(x) = 2 π x 0 e t2 dt som är nära besläktad med den kumulativa normalfördelningen som används i statistiken. Denna integral kan dock inte beräknas med elementära metoder eftersom den primitiva funktionen till e t2 inte kan uttryckas med elementära funktioner. Naturligtvis kunde man kalla funktionen för erf, men hjälper oss inte att beräkna värden av den. För den skull behöver man numeriska metoder. Redan i antiken fanns det praktiskt behov av att beräkna ytor och volymer. Arkimedes uppfann en metod för sådana beräkningar som i hög grad påminner om beräkning av integraler. Den typ av integraler, som man normalt stöter på i fysiken, kallas i matematiken för en Riemann-integral. Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 2

Riemann-integralen baserar sig på Jordanmåttet, och definieras som gränsvärdet av en Riemannsumma, som vi skall se nedan. Om vi för enkelhetens skull antar att vi önskar beräkna integralen över funktionen f(x) mellan gränserna x = a och x = b, så kan vi tänka oss detta intervall för enkelhetens skull delat i n lika stora delintervall av längden h = (b a)/n. Delningspunkterna kan då betecknas x k = a + kh, (k = 0, 1,..., n), dvs h = x k x k 1. En Riemannsumma kan då definieras som S = n f(c k )(x k x k 1 ), c k [x k 1, x k ] k=1 Varje term i denna summa är alltså ytan av en rektangel med höjden f(c k ) och bredden h, och summan kan uppfattas som en approximation till en yta som begränsas av x-axeln, funktionens ordinator i intervallets ändpunkter, och funktionskurvan mellan ordinatorna. En funktion sägs vara Riemannintegrerbar, ifall Riemannsumman konvergerar mot ett bestämt gränsvärde, då delningen tätnar. Ofta brukar man välja c k så, att det antingen är funktionens maximivärde (supremum) M k inom intervallet [x k, x k 1 ] eller minimivärde (infimum) m k inom detta intervall. Vi får då en övre Darbouxsumma U = n k=1 M k(x k x k 1 ), respektive en undre Darbouxsumma L = n k=1 m k(x k x k 1 ). Då delningen tätnar, kommer den övre summan att uppifrån närma sig ett gränsvärde, som kallas Darboux övre integral, och den undre summan närmar sig nedifrån ett gränsvärde, som kallas Darboux undre integral. Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 3

Om båda integralerna sammanfaller, så kallas det gemensamma gränsvärdet Darboux integral, som då sammanfaller med Riemanns integral. Riemannsummor kan också använda för att numeriskt beräkna en integral. Som ett exempel skall vi ta 1 0 ex dx. Fördenskull delar vi upp intervallet [0, 1] på n delintervall av längden h = 1/n. Den undre Darbouxsumman blir då L = = 1 n n m k (x k x k 1 ) = k=1 n k=1 e (k 1)/n 1 n = 1 n n (e 1/n ) k 1 (e 1/n ) n 1 e 1/n 1 = (e 1) 1/n e 1/n 1, (1) eftersom funktionen är monotont växande och serien är geometrisk. Om delningen förtätas gränslöst, dvs man låter n, så blir Darbouxsummans gränsvärde e 1, vilket är integralens värde. k=1 Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 4

1.2. Kvadraturregler I allmänhet är det lättare att beräkna integraler numeriskt med hjälp av s.k. kvadraturregler än med Riemannsummor. I detta fall använder man en vägd summa av funktionsvärden (som kallas noder) inom det givna intervallet för att approximera integralen. Vikterna motsvarar då intervallängderna i Riemannsumman. En m punkters kvadraturregel Q för den bestämda integralen I = b a f(x)dx är en approximation, som har formen Q = (b a) m w k f(x k ), k=1 där x k kallas för abskissor och w k är vikterna. Regeln är definierad, då abskissor och vikter är angivna. Effektiviteten för en kvadraturregel mäts med antalet funktionsberäkningar som krävs. En sex-punkters formel är således dubbelt dyrare än en tre-punkters formel. Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 5

Vi skall börja med att studera formler av Newton Cotes typ. De kännetecknas av att man integrerar en polynomisk interpolant p(x) för integranden f(x). Detta betyder, att av p(x) f(x) följer b a f(x)dx b a p(x)dx. Newton Cotes kvadraturregler får man genom att integrera polynom, som interpolerar integranden i punkter på lika avstånd från varandra. Newton Cotes m-punktsformel definieras av Q (m) NC = b a p m 1 (x)dx, där p m 1 (x) interpolerar f(x) i punkterna x i = a + i 1 (b a), i = 1 : m. m 1 Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 6

Om m = 2, får vi trapetsregeln Q (2) NC = b a [ f(a) + f(b) f(a) b a Om m = 3 och c = (a + b)/2, så får vi Simpsons regel: Q (3) NC = b a [ = b a 6 f(a) + [ f(a) + 4f ] (x a) dx = (b a) [ 1 2 f(a) + 1 2 f(b)]. (2) f(c) f(a) (x a) + c a ( ) a + b 2 f(b) f(c) b c f(c) f(a) c a (x a)(x c) b a ] dx ] + f(b). (3) Av dessa exempel framgår, att kvadraturformeln kan uttryckas som en lineärkombination av funktionsvärden på jämnt avstånd från varandra innanför integrationsintervallet. Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 7

Ett enkelt sätt att finna vikterna i en dylik kvadraturformel får man genom att fordra, att den skall stämma exakt för x potenserna x i, i = 0 : m 1. Om vi t.ex. vill beräkna koefficienterna i fyrpunktsformeln: 1 0 f(x)dx af(0) + bf ( ) 1 3 + cf ( ) 2 3 + df(1), så ställer vi upp ekvationssystemet 1 0 1 0 1 0 1 0 dx = 1 = a + b + c + d xdx = 1 2 = 0 + b 3 + 2c 3 + d x 2 dx = 1 3 = 0 + b 9 + 4c 9 + d x 3 dx = 1 4 = 0 + b 27 + 8c 27 + d. (4) Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 8

Genom att lösa detta ekvationssystem finner man formeln 1 0 f(x)dx 1 8 [ f(0) + 3f ( ) 1 3 + 3f ( ) 2 3 ] + f(1). För enkelhetens skull kan vi skriva ett litet MATLAB program, som tabulerar de vanligaste Newton Cotes koefficienterna: function w=wnc(m); Invariabel: m heltal mellan 2 och 8 Utvariabel: w kolumnvektor med m element som innehåller vikterna för m-punktsregeln. if m==2 w = [1 1] /2; elseif m==3 w = [1 4 1] /6; elseif m==4 w = [1 3 3 1] /8; Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 9

elseif m==5 w = [7 32 12 32 7] /90; elseif m==6 w=[19 75 50 50 75 19] /288; elseif m==7 w=[41 216 27 272 27 216 41] /840; elseif m==8 w=[751 3577 1323 2989 2989 1323 3577 751] /17280; end Som vi ser, är viktsvektorerna symmetriska kring intervallets mittpunkt, så att w(1 : m) = w(m : 1 : 1). Den numeriska integrationen kan sedan utföras med hjälp av formeln Q (m) NC = (b a) m i=1 w i f i = (b a)[w 1 w m ] f(x 1 ). f(x m ) som visar att kvadraturformeln kan beräknas som skalärprodukten av viktsvektorn och en vektor innehållande funktionsvärden. En MATLAB-rutin, som beräknar en integral med hjälp av Newton Cotes kvadratur, kan alltså skrivas Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 10

function I = qnc(fname,a,b,m) Invariabler: fname : sträng som innehållet namnet på en funktion f(x) som är definierad över intervallet [a,b]. f ger till resultat en kolumnvektor, om x är en kolumnvektor. a,b : reella skalärer. m : ett heltal mellan 2 och 8. Utvariabel: I : en m-punkts Newton-Cotes approximation för integralen av f(x) mellan a och b. w = wnc(m); x = linspace(a,b,m) f = feval(fname,x); I = (b-a)*(w *f); Följande program kan användas för att testa funktionen: Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 11

Skriptfil: testqnc Testar Newton-Cotes-reglerna. while input ( Annat exempel? (1=ja, 0=nej). ) fname = input( Ange namnet på integranden mellan apostrofer: ); a = input( Ange vänstra ändpunkten: ); b = input( Ange högra ändpunkten: ); s = [ QNC( fname sprintf(,6.3f,6.3f,m),a,b)]; clc disp([ m s]) disp( ) for m=2:8 I = qnc(fname,a,b,m); end end disp(sprintf( 2.0f 20.16f,m,I)) Om programmet tillämpas på sinusfunktionen inom intervallet [0, π/2] fås Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 12

m QNC(sin, 0.000, 1.571,m ) 2 0.7853981633974483 3 1.0022798774922104 4 1.0010049233142790 5 0.9999915654729928 6 0.9999952613861668 7 1.0000000258372352 8 1.0000000158229038 Som vi ser, ökar noggrannheten med antalet punkter i formeln. Man kan visa, att felet i Simpsons regel (m = 3) bestäms ur formeln b a f(x)dx Q (3) NC (b a)5 2880 M 4, där M 4 betecknar övre gränsen av fjärde derivatan f (4) (x) inom intervallet [a, b]. I det allmänna fallet gäller formeln b ( ) b a d+2 f(x)dx = Q (m) NC + c mf (d+1) (θ), m 1 a Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 13

där c m är en liten konstant, θ [a, b] och d = { m 1, om m är jämnt m, om m är udda. Om vi känner till en övre gräns för derivatan, t.ex. att f (d+1) (x) M d+1 inom intervallet [a, b], så är b ( ) Q(m) NC b a d+2 f(x)dx a c m M d+1. m 1 Här är en MATLAB funktion som räknar ut kvadraturfelet då känner en uppskattning av felet i derivatan: function error = ncerr(a,b,m,derbound) Invariabler: a,b reella tal som satisfierar a<=b m heltal som satisfierar 2<=m<=8 och DerBound en övre gräns för den d:te derivatan av en funktion f(x) definierad på [a,b]. Talet d = m om m är udda, och m-1 om m är jämnt. Utvariabel: error en övre gräns för absoluta felet i en Newton- Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 14

Cotes m-punktsregel, då den tillämpas på integralen av f(x) från a till b. if m==2 d=1; c = -1/12; elseif m==3 d=3; c = -1/90; elseif m==4 d=3; c = -3/80; elseif m==5 d=5; c = -8/945; elseif m==6 d=5; c = -275/12096; elseif m==7 d=7; c = -9/1400; elseif m==8 d=7; c= -8183/518400; end; error = abs( c*derbound*((b-a)/(m-1))^(d+2) ); Rutinen visar, att en (m 1)-punktsregel vanligen är lika bra som motsvarande m-punktsregel. Vi ser detta tydligare genom att köra följande testprogram: Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 15

Skriptfil: shqncerr Program för att studera felet i en Newton-Cotes regel. clc disp( Enkelt fall: integralen från 0 till pi/2 av sin(x) ) disp( ) disp( Antag att DerBound = 1. ) disp( ) disp( m QNC(m) fel felgräns ) disp( ) for m=2:8 numi = qnc( sin,0,pi/2,m); err = abs(numi-1); errbound = errnc(0,pi/2,m,1); s = sprintf( 20.16f 10.3e 10.3e,numI,err,errBound); disp([ sprintf( 2.0f,m) s]) end Resultatet för integralen av sinus mellan 0 och π/2 ser ut så här: Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 16

m QNC(m) fel felgräns 2 0.7853981633974483 2.146e-001 3.230e-001 3 1.0022798774922104 2.280e-003 3.321e-003 4 1.0010049233142790 1.005e-003 1.476e-003 5 0.9999915654729928 8.435e-006 1.219e-005 6 0.9999952613861668 4.739e-006 6.867e-006 7 1.0000000258372352 2.584e-008 3.714e-008 8 1.0000000158229038 1.582e-008 2.277e-008 Felet i kvadraturegeln är beroende av längden på intervallet, som vi sett. Vi minskar därför på felet, om vi kan minska på intervallängden. Detta åstadkoms genom att dela intervallet [a, b] i delintervall. Om vi antar att a = z 1 < z 2 < < z n+1 = b, så kan integralen beräknas som en summa av integraler, tagna över delintervallen: b n zi+1 f(x)dx = f(x)dx. a i=1 z i Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 17

Om vi tillämpar Q (m) NC på var och en av delintegralerna, så får vi en sammansatt kvadraturregel. Om t.ex. i = z i+1 z i och z 1 i+ = (z i + z i+1 )/2, i = 1 : m, så gäller 2 Q = n i=1 i 6 ( ) f(z i ) + 4f(z 1 i+ ) + f(z i+1 ). 2 Om z är en MATLAB vektor, som innehåller delningspunkterna i [a, b], och fname är en sträng, som innehåller namnet på en funktion, så kommer MATLAB programfragmentet I = 0 for i=1:length(z)-1 I = I + qnc(fname,z(i),z(i+1),m); end att ge I värdet av en sammansatt m punkters Newton-Cotes approximation till integralen, som baserar sig på delningspunkterna i z. Man kan också välja delningspunkterna på ett mera automatiskt sätt. Detta utnyttjas vid adaptiv kvadratur, där delningspunkterna väljs tätare, då funktionen varierar snabbare, och glesare, då funktionen varierar långsammare (se t.ex. MATLAB procedurerna quad och quadl). Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 18

I Gauss kvadratur väljs abskissorna på ett sådant sätt, att regeln blir exakt för polynom av största möjliga gradtal. Som ett exempel skall vi bestämma vikterna och abskissorna så att formeln w 1 f(x 1 ) + w 2 f(x 2 ) = 1 1 f(x)dx är exakt för polynom av gradtalet 3 eller mindre. Genom att kräva att regeln skall stämma exakt för de fyra funktionerna 1, x, x 2, x 3 får vi fyra ekvationer med fyra obekanta (jfr vår beräkning av vikterna i en trepunkters Newton-Cotesregel): w 1 + w 2 = 2 w 1 x 1 + w 2 x 2 = 0 w 1 x 2 1 + w 2x 2 2 = 2 3 w 1 x 3 1 + w 2x 3 2 = 0. (5) Detta ekvationssystem kan lösas genom att man multiplicerar den andra ekvationen med x 2 1 och subtraherar den från den fjärde ekvationen. Vi får då w 2 x 2 (x 2 1 x2 2 ) = 0, varav följer x 2 = x 1. Av den andra ekvationen följer då w 1 = w 2, vilket i kombination med den första ekvationen leder till w 1 = w 2 = 1. Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 19

Den tredje ekvationen ger x 2 1 = 1/3, varav följer x 1 = 1/ 3 och x 2 = 1/ 3. Vi finner slutligen 1 1 vilket kallas tvåpunkters Gauss Legendre regeln. En m-punkters Gauss Legendre regel har formen f(x)dx f( 1/ 3) + f(1/ 3), Q (m) GL = w 1f(x 1 ) + + w m f(x m ), där vikterna och abskissorna valts så, att regeln är exakt för polynom av gradtalet 2m 1. Härnedan visas en MATLAB rutin, som ger vikter och abskissor för upptill 4 punkters Gauss Legendre regler: function [w,x] = wgl(m); Invariabel: m heltal som uppfyller villkoret 2 <= m <= 4 Utvariabler: w kolumnvektor med m element som innehåller vikterna för Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 20

en m-punkters Gauss-Legendre regel. x en kolumnvektor med m element som innehåller abskissorna för en m-punkters Gauss-Legendre regel. w = ones(m,1); x = ones(m,1); if m==2 w(1) = 1.000000000000000; w(2) = w(1); x(1) = -0.577350269189626; x(2) = -x(1); elseif m==3 w(1) = 0.555555555555558; w(3) = w(1); w(2) = 0.888888888888889; x(1) = -0.774596669241483; x(3) = -x(1); x(2) = 0.000000000000000; elseif m==4 w(1) = 0.347854845137454; w(4) = w(1); w(2) = 0.652145154862546; w(3) = w(2); x(1) = -0.861136311594053; x(4) = -x(1); x(2) = -0.339981043584856; x(3) = -x(2); end; Introduktion till vetenskapliga beräkningar II, Tom Sundius 2009 21