[go: up one dir, main page]
More Web Proxy on the site http://driver.im/Vés al contingut

Mètode de Simpson

De la Viquipèdia, l'enciclopèdia lliure
El mètode de Simpson es pot obtenir aproximant l'integrand f(x) (en blau) per un polinomi d'interpolació de segon grau P(x) (en vermell).

En càlcul numèric, el mètode de Simpson o regla de Simpson és un mètode d'integració numèrica que dona una aproximació numèrica de la integral definida. Específicament, és la següent aproximació:

Rep el seu nom en honor de Thomas Simpson.[1]

Obtenció

[modifica]

El mètode de Simpson es pot obtenir de diverses maneres.

Polinomi d'interpolació de segon grau

[modifica]

Una forma d'obtenir-la es basa a substituir la funció a integrar per la funció polinòmica de segon grau que té els mateixos valors que als extrems a i b i al mig m = (a+b) / 2. Es pot fer servir la interpolació polinòmica de Lagrange per a trobar una expressió d'aquest polinomi,

Un càlcul fàcil (però pesat) mostra que

[2]

Mitjana aritmètica ponderada dels mètodes trapezial i rectangular

[modifica]

Una altra forma d'obtenir el mètode de Simpson és calculant la mitjana aritmètica ponderada de dues aproximacions més simples: el mètode rectangular

I el mètode trapezial

Els errors d'aquestes aproximacions són

respectivament. D'aquí en resulta que el terme principal de l'error s'anul·la si es pren la mitjana aritmètica ponderada

Aquesta mitjana aritmètica ponderada és exactament el mètode de Simpson.

Emprant una altra aproximació (per exemple, el mètode trapezial amb doble quantitat de punts), és possible d'obtenir una mitjana aritmètica ponderada adequada per eliminar un altre terme de l'error. Aquest és el mètode de Romberg.

Coeficients indeterminats

[modifica]

El tercer mètode comença a partir de la hipòtesi que

Els coeficients α, β i γ es poden determinar imposant que aquesta aproximació sigui exacta pel cas de polinomis de segon grau. Això porta al mètode de Simpson.

Error

[modifica]

L'error en aproximar una integral amb el mètode de Simpson és

on és algun nombre entre i .[3]

L'error és (asimptòticament) proporcional a . En canvi, els procediments d'obtenció emprats anteriorment, suggerien una error proporcional a . El mètode de Simpson guanya un ordre extra perquè els punts en què s'avalua l'integrand, estan distribuïts simètricament en l'interval [a, b].

Mètode de Simpson compost

[modifica]

Si l'interval d'integració és "petit" en algun sentit, llavors el mètode de Simpson donarà una aproximació adequada de la integral exacta. Petit, el que en realitat significa és que la funció a integrar sigui relativament suau sobre l'interval . Per aquest tipus de funcions, una interpolació amb un polinomi de segon grau suau, com el que es fa servir en el mètode de Simpson, donarà bons resultats.

En canvi, sovint el cas és que la funció que s'està intentant integrar no és suau sobre l'interval. Típicament, això significa que la funció és altament oscil·lant o que no té derivades a certs punts. En aquests casos, el mètode de Simpson pot donar resultats molt pobres. Una forma habitual de manejar aquest problema és a base de trencar l'interval en un determinat nombre de subintervals petits. Llavors s'aplica el mèode de Simpson a cada subinterval, i se sumen els resultats per a obtenir una aproximació de la integral sobre l'inteval complet. D'aquesta mena d'aproximació sen diu el mètode de Simpson compost.

Suposeu que l'interval es parteix en subintervals, amb un nombre parell. Llavors, el mètode de Simpson compost dona l'aproximació

on per amb ; en particular, i . La fórmula anterior també es pot escriure com

L'error comès pel mètode de Simpson compost està fitat (en valor absolut) per

on és el pas, donat per [4]

Aquesta formulació parteix l'interval en subintervals de la mateixa longitud. A la pràctica, sovint és avantatjós emprar subintervals de diferents longituds, i concentrar els esforços en els llocs on l'integrand té menys bon comportament. Això porta al mètode de Simpson adaptatiu.

Implementació en Python del mètode de Simpson

[modifica]

Aquí hi ha una implementació del mètode de Simpson en Python.

def metode_de_simpson(f, a, b):
 "Aproxima la integral definida de f des de a fins a b pel mètode de Simpson."
 c = (a + b) / 2.0
 h3 = abs(b - a) / 6.0
 return h3 * (f(a) + 4.0*f(c) + f(b))

# Càlcul de la integral de sin(x) des de 0 fins a 1
from math import sin
print metode_de_simpson(sin, 0, 1)

Aquesta és la versió del mètode de Simpson compost, també en Python.

def metode_de_simpson_compost(f,a,b,n):
 "Aproxima la integral definida de f des de a fins a b amb el mètode de Simpson
 compost, dividint l'interval en n parts."
 dx = (float(b)-a)/n
 i = 0
 fks = 0.0
 while i<=n:
 xk = a+i*dx
 if i==0 or i==n:
 fk = f(xk)
 elif i%2 == 1:
 fk = 4*f(xk)
 else:
 fk = 2*f(xk)
 fks += fk
 i += 1
 return (dx/3)*fks

# Càlcul de la integral de sin(x) des de 0 fins a 1
from math import sin
print metode_de_simpson_compost(sin, 0, 1, 10000)

Integrant sin(x) des de 0 fins a 1 amb el primer codi dona 0.459862189871, el segon dona 0.459697694132 mentre que el verdader valor és 1 − cos(1) = 0.45969769413... La versió composta del mètode dona una aproximació notablement millor.

Notes

[modifica]
  1. Süli and Mayers, §7.2
  2. Atkinson, p. 256; Süli and Mayers, §7.2
  3. Atkinson, equation (5.1.15); Süli and Mayers, Theorem 7.2
  4. Atkinson, pp. 257+258; Süli and Mayers, §7.5

Referències

[modifica]

El mètode de Simpson s'esmenta en molts llibre de text de càlcul numèric:

Enllaços externs

[modifica]