Beräkning av integraler a b f(x) dx = {ytan mellan kurvan och x-axeln från a till b} Många tekniska beräkningsproblem kan formuleras som integraler. En del integraler kan beräknas exakt men flertalet kan bara beräknas approximativt med hjälp av numeriska metoder. Med MATLABs symboliska matematik kan man hitta exakta, både obestämda och bestämda integraler: syms x; int(x^2) ger x^3/3 int(x^2,3,6) ger 63 int(x^2,6,3)) ger 63 int(x*sin(x)) ger sin(x)-x*cos(x) int(x*exp(x)*sin(x)) ger (exp(x)*(cos(x)-x*cos(x)+ x*sin(x)))/2 diff(ans) ger (exp(x)*(x*cos(x) - cos(x) + x*sin(x)))/2 + (exp(x)*(cos(x) - x*cos(x) + x*sin(x)))/2 simplify(ans) ger x*exp(x)*sin(x) int(x^2*log(x)) ger (x^3*(log(x) - 1/3))/3 int(exp(-x^2)) ger (pi^(1/2)*erf(x))/2 icke-elementär funktion int(sin(x^3)) ger int(sin(x^3), x) går inte med elementära Yngve Sundblad Föreläsning 5 sid.1, uppdatering SF 1518/19 ht 2015 14 sept.
Numeriska metoder summerar ytor Dela in I strimlor Fälla, klaras normalt av metoderna Beräkna ytor av Beräkna rektanglar, ytor av höjd är parallellvärdet i Trapetser mittpunkter Rektangelregeln (mittpunktsregeln) Trapetsregeln Yngve Sundblad Föreläsning 5 sid.2, uppdatering SF 1518/19 ht 2015 14 sept.
Formler för ytsummeringarna Alla metoder för integralberäkning består av en summa av N stycken funktionsvärden (k går från 1 till N): I = a b f(x) dx k w k f(x k ) och k w k = b-a, sätt in f(x)=1 Enklast är rektangelregeln, där man summerar ytorna av lika breda remsor (h) med höjden funktionsvärdet i mitten: h=b-a/n med x = a + (k-1/2)*h I = a b f(x) dx h * k f(x k ) Man kan visa att trunkationsfelet blir proportionellt mot h. Bättre är trapetsregeln, där man summerar ytorna av parallelltrapetser med två hörn på kurvan, två på x-axeln I = a b f(x) dx h(f(a)/2+f(a+h)+f(a+2h)+f(a+(n-1)h)+f(b)/2) Här kan man visa att trunkationsfelet blir proportionellt mot h 2. Yngve Sundblad Föreläsning 5 sid.3, uppdatering SF 1518/19 ht 2015 14 sept.
Inflytande av osäkerhet i funktionsvärdena Av I = a b f(x) dx k w k f(x k ), k w k = b-a följer att om alla funktionsvärdena är behäftade med samma absoluta osäkerhet, E, vilket är vanligt vid datorbeäkningar så är totala osäkerheten k w k *E = E* k w k = (b-a)*e Yngve Sundblad Föreläsning 5 sid.4, uppdatering SF 1518/19 ht 2015 14 sept.
Trapetsregeln I T(h) = h(f(a)/2+f(a 1 )+f(a 2 )+f(a n-1 )+f(b)/2)), a k =a+k*h, h=(b-a)/n Exempel: 0 2 ( 0.5+2e x sin2x 2 ) dx, med steget 0.2 och 0.1 t=0:0.01:2; f=sqrt(0.5+2*exp(-t).*sin(2*t.^2)); subplot(1,3,1); plot(t,f) for i=1:2 end n=10*i; h=2/n; x=(0:h:2); f=sqrt(0.5+2*exp(-x).*sin(2*x.^2)); T(i)=h*(sum(f)-f(1)/2-f(n+1)/2); subplot(1,3,i+1); plot(x,f) disp(t) ger 1.6426 1.6418, dvs tre decimalers noggrannhet Yngve Sundblad Föreläsning 5 sid.5, uppdatering SF 1518/19 ht 2015 14 sept.
Kurvan exakt och med trapetser Yngve Sundblad Föreläsning 5 sid.6, uppdatering SF 1518/19 ht 2015 14 sept.
Trunkationsfel vid trapetsregeln Euler-Maclaurins formel (1735) för naturliga tal a, b I = a b f(x) dx; S = (f(a+)+f(a+2)+ f(b-1)+f(b)) I S = k=1 p Bk /k! (f (k-1) (b) - f (k-1) (a)) + R p, f (k) är k:te-derivatan, B k är Bernoullitalen, B 0 =1,B 1 =1/2,B 2 =1/6,B 3 =0,B 4 =-1/30,B 5 =0,B 6 =1/42, R p är resttermen efter p termer. Detta går att bevisa med induktion, inte trivialt! Tillämpad på trapetsregeln: I = T(h) - (f (b)-f (a))/12*h 2 + (f (b)-f (a))/720*h 4 + O(h 6 ) Fotnot: B k definieras som koefficienterna i serieutvecklingen av x/(e x 1) = k B k x k /k!, där k går från 0 till Yngve Sundblad Föreläsning 5 sid.7, uppdatering SF 1518/19 ht 2015 14 sept.
Richardsonextrapolation Låt I = a b f(x) dx Eftersom trunkationsfelet i Trapetsmetoden är c*h 2 E trunk = T(h) I c*h 2 T(2h) I 4c*h 2 och varur T(2h)-T(h) 3c*h 2, c*h 2 (T(2h)-T(h))/3 gäller Vi drar denna felskattning från T(h) och får det bättre värdet S(h) = T(h) + (T(h)-T(2h))/3, Simpson/Rombergs metod, fel ~ h 4 Denna extrapolationsmetod kan användas också i andra sammanhang, där man vet hur felet är beroende av steglängden, och kallas richardsonextrapolation. Yngve Sundblad Föreläsning 5 sid.8, uppdatering SF 1518/19 ht 2015 14 sept.
Upprepad richardsonextrapolation S(h)=T(h) + (T(h)-T(2h))/3, fel d*h 4 S(2h)=T(2h) + (T(2h)-T(4h))/3, fel 16d*h 4 varur S (2h)-S (h) 15c*h4, c*h 4 (S(2h)-S(h))/15 B(h)=S(h) + (S(h)-S(2h))/15, fel ~ h 6 Kan användas i triangulärt schema, exempel: Trapetsregeln på integralen 0 2 ( 0.5+2e x sin2x 2 ) dx ger för h=0.05, 0.025 och 0.0125 h T(rapets) S(impson),+ /3 B(oole),+ /15 0.05 1.642000905 0.025 1.642053159 1.642070577 0.0125 1.642066167 1.642070503 1.642070498 1.6420705 med sju säkra decimaler, kanske t.o.m. åtta Yngve Sundblad Föreläsning 5 sid.9, uppdatering SF 1518/19 ht 2015 14 sept.
Simpsons formel Istället för att efter beräkningarna korrigera med ett stegs Richardsonextrapolation kan man bygga in det i metoden och får då Simpsons formel: S(h) = T(h) + (T(h) T(2h))/3 = h/3 (f(a)+4f(a+h)+2f(a+2h)+4f(a+3h)+ 2f(a+(n-2)h)+4f(a+(n-1)h)+f(b)) Här blir alltså felet av storleksordningen h^4. Exempel, vår integral: 0 2 ( 0.5+2e x sin2x 2 ) dx med steg 0.025, n=80; n=80; h=2/n; xodd=(h:2*h:2-h); xeve=(0:2*h:2); fodd=sqrt(0.5+2*exp(-xodd).*sin(2*xodd.^2)); feve=sqrt(0.5+2*exp(-xeve).*sin(2*xeve.^2)); S=h/3*(4*sum(fodd)+2*sum(feve)-feve(1)-feve(n/2+1)) Ger S=1.642070577, samma som Richardson Yngve Sundblad Föreläsning 5 sid.10, uppdatering SF 1518/19 ht 2015 14 sept.
Härledning av Simpson Låt f k = f(a+k*h) T(h) = h*(f 0 + 2 f 1 + 2f 2 + 2f 3 + 2f n-2 + 2f n-1 + f n )/2 T(2h) = 2h*(f 0 + 2 f 2 + 2f 4 + 2f 6 + 2f n-4 + 2f n-2 + f n )/2 Richardsonextrapolation: S(h) = T(h) + (T(h) T(2h))/3 = 4/3 T(h) 1/3 T(2h) S(h) =h*((4/3-2/3)f 0 +8/3f 1 +(8/3-2)f 2 + +(8/3-2)f n-2 +8/3f n-1 +(4/3-2/3)f n )/2 S(h) = h*(f 0 + 4 f 1 + 2f 2 + 4f 3 + 2f n-2 + 4f n-1 + f n )/3 som är Simpsons formel med trunkationsfel d*h 4, d konstant Yngve Sundblad Föreläsning 5 sid.11, uppdatering SF 1518/19 ht 2015 14 sept.
Förbehandling med exempel För att underlätta den numeriska integrationen kan man + dela upp integranden: -10 10 (0.51 + 25e 81(11x+45)^2 dx Första termen ger 10.2 till resultatet, andra 0.44 + dela upp intervallet Samma exempel, andra delen ger bidrag bara kring -45/11, räcker väl för maskinnoggrannhet att räkna i intervallet [-5,-3.5] + kapa av (vid oändligt intervall) 1 e x^2 / x dx, B xe x^2 /(x x) dx 1/(B B) B xe x^2 dx = = e B^2 /(2B B), som är mindre än 10-9 redan för B=4. Yngve Sundblad Föreläsning 5 sid.12, uppdatering SF 1518/19 ht 2015 14 sept.
Förbehandling med exempel, forts + substituera 0 1 e x^2 / x dx, samma integrand men annat intervall. I origo blir det problem, täljaren är 1, nämnaren 0, men inte värre än med x. Substituera x=t 2, {dx=2tdt} varvid integralen blir lätthanterliga 0 2 2e t^4 dt + partialintegrera Samma exempel, 0 1 e x^2 / x dx = (e x^2 *2 x) 0 1 ( 0 1 2xe x^2 *2 x dx) = 2/e + 4 0 1 e x^2 x x dx, utan problem Yngve Sundblad Föreläsning 5 sid.13, uppdatering SF 1518/19 ht 2015 14 sept.
Integrationsmetoder i MATLAB quad bygger på Simpsons formel och är en adaptiv metod, som anpassar steglängden genom att minska den när kurvans krökning är stor. Toleransen är 10-6 om inte annat sägs. Anropas med en s.k. inline-funktion, exemplet 0 3 e x / (1 + 2x 3 ) dx beräknas med 7 decimaler av format long I = quad(inline( exp(x)/(1+2*x^3) ),0,3,0.5e-7) Mer om inline-funktioner och andra funktioner i MATLAB nästa gång. quadl l för Lobatto är en alternativ metod som för starkt varierande integrander ofta ger bättre noggrannhet. Yngve Sundblad Föreläsning 5 sid.14, uppdatering SF 1518/19 ht 2015 14 sept.
Överkurs I NAM (Eriksson), kapitel 5 beskrivs för Numerisk integration 5.2.4 Integration av hermiteinterpolationspolynom och splines 5.2.5 Integration av kubiska bezierkurvor (från kap.4, som inte ingår) 5.4 Gauss-Kronrods metod 5.6 Dubbelintegraler 5.7 Parametrarna i Gausskvadratur Avsnitt i kapitel 5 i Pohl 5.2 Adaptiva metoder 5.3 ODE-metoder Dessa ingå inte i kursen och kommer inte på tentan, men är läsvärda för speciellt intresserade. Yngve Sundblad Föreläsning 5 sid.15, uppdatering SF 1518/19 ht 2015 14 sept.