El mètode de Simpson es pot obtenir de diverses maneres.
Polinomi d'interpolació de segon grau
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,
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
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
L'error en aproximar una integral amb el mètode de Simpson és
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
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
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
Aquí hi ha una implementació del mètode de Simpson en Python.
defmetode_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.0h3=abs(b-a)/6.0returnh3*(f(a)+4.0*f(c)+f(b))# Càlcul de la integral de sin(x) des de 0 fins a 1frommathimportsinprintmetode_de_simpson(sin,0,1)
Aquesta és la versió del mètode de Simpson compost, també en Python.
defmetode_de_simpson_compost(f,a,b,n):"Aproxima la integral definida de f des de a fins a b amb el mètode de Simpsoncompost,dividintl'interval en n parts."dx=(float(b)-a)/ni=0fks=0.0whilei<=n:xk=a+i*dxifi==0ori==n:fk=f(xk)elifi%2==1:fk=4*f(xk)else:fk=2*f(xk)fks+=fki+=1return(dx/3)*fks# Càlcul de la integral de sin(x) des de 0 fins a 1frommathimportsinprintmetode_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.