Правило Сімпсона: формула і як це працює

Правило Сімпсона - це метод числової інтеграції. Іншими словами, це чисельне наближення певних інтегралів.

Правило Сімпсона таке:

В цьому,

  • f(x)називається інтегралом
  • a = нижня межа інтеграції
  • b = верхня межа інтеграції

1/3 правила Сімпсона

Як показано на діаграмі вище, інтеграл f(x)апроксимується поліномом другого порядку; квадратична інтерполянтна істота P(x).

Наближення випливає,

Замінивши (b-a)/2як h, отримуємо,

Як бачите, 1/3у наведеному вище вираженні є коефіцієнт . Ось чому його називають Правилом 1/3 Симпсона .

Якщо функція сильно коливається або їй бракує похідних у певних точках, то вищенаведене правило може не дати точних результатів.

Поширеним способом вирішення цього є використання складеного підходу правила Сімпсона . Для цього розбийте [a,b]на невеликі подинтервали, а потім застосуйте правило Сімпсона до кожного подинтервалу. Потім підсумуйте результати кожного розрахунку, щоб отримати апроксимацію по всьому інтегралу.

Якщо інтервал [a,b]розділений на nподинтервали і nє парним числом, складене правило Сімпсона обчислюється за такою формулою:

де x j = a + jh для j = 0,1,…, n-1, n з h = (ba) / n ; зокрема, x 0 = a та x n = b .

Приклад в C ++:

Для наближення значення інтеграла, наведеного нижче, де n = 8:

#include #include 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's 3/8 Rule

Simpson's 3/8 rule is similar to Simpson's 1/3 rule, the only difference being that, for the 3/8 rule, the interpolant is a cubic polynomial. Though the 3/8 rule uses one more function value, it is about twice as accurate as the 1/3 rule.

Simpson’s 3/8 rule states :

Original text


Replacing (b-a)/3 as h, we get,

Simpson’s 3/8 rule for n intervals (n should be a multiple of 3):

where xj = a+jh for j = 0,1,…,n-1,n with h=(b-a)/n; in particular, x0 = a and xn = b.