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ă:

Regula lui Simpson Formula si cum functioneaza

În el,

  • f(x) se numește integrand
  • a = limita inferioară de integrare
  • b = limita superioară de integrare

Regula 1/3 a lui Simpson

Regula lui Simpson Formula si cum functioneaza

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,

1611748024 837 Regula lui Simpson Formula si cum functioneaza

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

1611748024 467 Regula lui Simpson Formula si cum functioneaza

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ă:

1611748024 293 Regula lui Simpson Formula si cum functioneaza

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:

1611748025 803 Regula lui Simpson Formula si cum functioneaza
#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:

1611748025 837 Regula lui Simpson Formula si cum functioneaza

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

1611748025 913 Regula lui Simpson Formula si cum functioneaza

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

1611748025 694 Regula lui Simpson Formula si cum functioneaza

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