Regula lui Simpson este o metodă de integrare numerică. Cu alte cuvinte, este aproximarea numerică a integralelor definite.
Regula lui Simpson este după cum urmează:

În el,
-
f(x)
se numește integrand -
a
= limita inferioară de integrare -
b
= limita superioară de integrare
Regula 1/3 a lui Simpson

Așa cum se arată în diagrama de mai sus, integrandul f(x)
este aproximat printr-un polinom de ordinul doi; ființa interpolantă pătratică P(x)
.
Urmează aproximarea,

Înlocuind (b-a)/2
la fel de h
, primim,

După cum puteți vedea, există un factor de 1/3
în expresia de mai sus. De aceea, se numește Regula 1/3 a lui Simpson.
Dacă o funcție este foarte oscilantă sau nu are derivate în anumite puncte, atunci regula de mai sus poate să nu producă rezultate exacte.
O modalitate obișnuită de a gestiona acest lucru este folosind regula compozitului Simpson abordare. Pentru a face acest lucru, despărțiți-vă [a,b]
în subintervalele mici, apoi aplicați regula Simpson pentru fiecare subinterval. Apoi, suma rezultatelor fiecărui calcul pentru a produce o aproximare asupra întregii integrale.
Dacă intervalul [a,b]
este împărțit în n
subintervalele și n
este un număr par, regula compozit Simpson este calculată cu următoarea formulă:

Unde Xj = a + jh pentru j = 0,1, …, n-1, n cu h = (ba) / n ; în special, X0 = a și Xn = b.
Exemplu în C ++:
Pentru a aproxima valoarea integralei de mai jos unde n = 8:

#include<iostream>
#include<cmath>
using namespace std;
float f(float x)
{
return x*sin(x); //Define the function f(x)
}
float simpson(float a, float b, int n)
{
float h, x[n+1], sum = 0;
int j;
h = (b-a)/n;
x[0] = a;
for(j=1; j<=n; j++)
{
x[j] = a + h*j;
}
for(j=1; j<=n/2; j++)
{
sum += f(x[2*j - 2]) + 4*f(x[2*j - 1]) + f(x[2*j]);
}
return sum*h/3;
}
int main()
{
float a,b,n;
a = 1; //Enter lower limit a
b = 4; //Enter upper limit b
n = 8; //Enter step-length n
if (n%2 == 0)
cout<<simpson(a,b,n)<<endl;
else
cout<<"n should be an even number";
return 0;
}
Regula 3/8 a lui Simpson
Regula 3/8 a lui Simpson este similară cu regula 1/3 a lui Simpson, singura diferență fiind că, pentru regula 3/8, interpolantul este un polinom cubic. Deși regula 3/8 folosește încă o valoare a funcției, este de aproximativ două ori mai precisă decât regula 1/3.
Regula 3/8 a lui Simpson prevede:

Înlocuind (b-a)/3
la fel de h
, primim,

Regula 3/8 a lui Simpson pentru n intervale (n ar trebui să fie multiplu de 3):

Unde Xj = a + jh pentru j = 0,1, …, n-1, n cu h = (ba) / n; în special, X0 = a și Xn = b.