قاعده سیمپسون تابعها را با یک چندجملهای تخمین میزند و برای تخمین انتگرال از این چندجملهای استفاده میکند
در علم محاسبات عددی روشی برای بدست آوردن عددی انتگرالها وجود دارد که توسط توماس سیمپسون مورد استفاده قرار گرفتهاست و به همین دلیل به این روش قاعده سیمپسون میگویند.
در این قانون با استفاده از n بار استفاده از قانون ذوزنقه برای بدست آوردن مساحت زیر نمودار فرمولی برای مساحت زیر نمودار بدست میاورد که دقیقتر از روش ذوزنقه است.
در این قانون با تقسیم کردن نمودار به بخشهای کوچکتر مساحت زیر نمودار را بدست میاورد (با تقسیم به n+1 بخش که n عددی زوج است).
∫
a
b
f
(
x
)
d
x
≈
Δ
x
3
(
f
(
x
0
)
+
4
f
(
x
1
)
+
2
f
(
x
2
)
+
4
f
(
x
3
)
+
2
f
(
x
4
)
+
⋯
+
4
f
(
x
n
−
1
)
+
f
(
x
n
)
)
{\displaystyle \int _{a}^{b}f(x)\,dx\approx {\tfrac {\Delta x}{3}}\left(f(x_{0})+4f(x_{1})+2f(x_{2})+4f(x_{3})+2f(x_{4})+\cdots +4f(x_{n-1})+f(x_{n})\right)}
البته حدود صد سال پیش از سیمپسون فردی به نام یوهانس کپلر از این فرمول استفاده کرده بود به همین دلیل گاهی به این روش قانون کپلر هم گفته میشود.
اگر اندازهٔ بازهٔ مورد انتگرال کوچک باشد، قاعده سیمپسون برای n = ۲ یک جواب نسبتاً دقیق از جواب انتگرال خواهد بود. اما اگر تابع ما پیوستگی نداشته باشد یا اندازهٔ بازهٔ مورد انتگرال بزرگ باشد یا تابع ما دارای مشتقهای ناپیوسته باشد، در هر یک از این موارد قاعده سیمپسون برای n = ۲ جوابی دقیق ارائه نمیدهد. در این صورت میتوان بازه را به n > 2 بخش تقسیم کرد و در هر یک از این بخشها از قاعده سیمپسون استفاده کرد؛ که در این صورت به آن تعمیم قاعده سیمپسون گفته میشود.
فرض کنید بازهٔ انتگرال [a,b] به n بخش تقسیم شدهاست و همچنین n را عددی زوج در نظر بگیرید در این صورت طبق قاعده سیمپسون داریم
∫
a
b
f
(
x
)
d
x
≈
h
3
∑
j
=
1
n
/
2
[
f
(
x
2
j
−
2
)
+
4
f
(
x
2
j
−
1
)
+
f
(
x
2
j
)
]
=
h
3
[
f
(
x
0
)
+
2
∑
j
=
1
n
/
2
−
1
f
(
x
2
j
)
+
4
∑
j
=
1
n
/
2
f
(
x
2
j
−
1
)
+
f
(
x
n
)
]
{\displaystyle {\begin{aligned}\int _{a}^{b}f(x)\,dx&\approx {\frac {h}{3}}\sum _{j=1}^{n/2}{\bigg [}f(x_{2j-2})+4f(x_{2j-1})+f(x_{2j}){\bigg ]}\\{}&={\frac {h}{3}}{\bigg [}f(x_{0})+2\sum _{j=1}^{n/2-1}f(x_{2j})+4\sum _{j=1}^{n/2}f(x_{2j-1})+f(x_{n}){\bigg ]}\end{aligned}}}
که در این فرمول
x
j
=
a
+
j
h
{\displaystyle x_{j}=a+jh}
برای
j
=
0
,
1
,
.
.
.
,
n
−
1
,
n
{\displaystyle j=0,1,...,n-1,n}
و در آن
h
=
(
b
−
a
)
/
n
{\displaystyle h=(b-a)/n}
خطای تعمیم قاعده سیمپسون برابر است با[ ۱]
E
r
r
o
r
=
−
h
4
180
(
b
−
a
)
f
(
4
)
(
ξ
)
{\displaystyle Error=-{\frac {h^{4}}{180}}(b-a)f^{(4)}(\xi )}
که در آن
ξ
{\displaystyle \xi }
عددی بین
a
{\displaystyle a}
و
b
{\displaystyle b}
است و
h
=
(
b
−
a
)
/
n
{\displaystyle h=(b-a)/n}
طول هر گام است.
اگر چندجملهای درجهٔ دو
P
(
x
)
{\displaystyle P(x)}
را به جای تابع
f
(
x
)
{\displaystyle f(x)}
در فرمول استفاده کنیم میتوان با استفاده از درونیابی میتوان این چندجملهای را بدست آورد.[ ۲]
در این شکل با استفاده از قاعده سیمپسون سه هشتم تابع مشخص شده با رنگ مشکی با چندجملهای مشخص شده با رنگ قرمز تخمین زده شدهاست
P
(
x
)
=
f
(
a
)
(
x
−
m
)
(
x
−
b
)
(
a
−
m
)
(
a
−
b
)
+
f
(
m
)
(
x
−
a
)
(
x
−
b
)
(
m
−
a
)
(
m
−
b
)
+
f
(
b
)
(
x
−
a
)
(
x
−
m
)
(
b
−
a
)
(
b
−
m
)
{\displaystyle P(x)=f(a){\tfrac {(x-m)(x-b)}{(a-m)(a-b)}}+f(m){\tfrac {(x-a)(x-b)}{(m-a)(m-b)}}+f(b){\tfrac {(x-a)(x-m)}{(b-a)(b-m)}}}
با انتگرال گرفتن از دو طرف تساوی و استفاده از قانون لاگرانژ داریم:
∫
a
b
P
(
x
)
d
x
=
b
−
a
6
[
f
(
a
)
+
4
f
(
a
+
b
2
)
+
f
(
b
)
]
{\displaystyle \int _{a}^{b}P(x)\,dx={\tfrac {b-a}{6}}\left[f(a)+4f\left({\tfrac {a+b}{2}}\right)+f(b)\right]}
که این روش انتگرالگیری که یک حالت خاص از قاعده سیمپسون است را با نام سیمپسون یک سوم میشناسند.
خطای این روش محاسبهٔ انتگرال برابر است با:[ ۳]
E
r
r
o
r
=
−
1
90
(
b
−
a
2
)
5
f
(
4
)
(
ξ
)
{\displaystyle Error=-{\tfrac {1}{90}}\left({\tfrac {b-a}{2}}\right)^{5}f^{(4)}(\xi )}
که
a
<
ξ
<
b
{\displaystyle a<\xi <b}
میانگین نقطهٔ میانی و روش ذوزنقه[ ویرایش ]
از دیگر فرمولهای بهدست آمده از قاعده سیمپسون توسط فرمولهای نقطهٔ میانی
M
=
(
b
−
a
)
f
(
a
+
b
2
)
{\displaystyle M=(b-a)f\left({\tfrac {a+b}{2}}\right)}
و فرمول روش ذوزنقه
T
=
1
2
(
b
−
a
)
(
f
(
a
)
+
f
(
b
)
)
.
{\displaystyle T={\tfrac {1}{2}}(b-a)(f(a)+f(b)).}
است که خطای این دو روش به ترتیب
1
24
(
b
−
a
)
3
f
″
(
a
)
+
O
(
(
b
−
a
)
4
)
{\displaystyle {\tfrac {1}{24}}(b-a)^{3}f''(a)+O((b-a)^{4})}
و
−
1
12
(
b
−
a
)
3
f
″
(
a
)
+
O
(
(
b
−
a
)
4
)
{\displaystyle -{\tfrac {1}{12}}(b-a)^{3}f''(a)+O((b-a)^{4})}
هستند که برای استخراج فرمول جدید از این دو روش به نسبت خطاها آنها را جمع میکنیم.
2
M
+
T
3
{\displaystyle {\tfrac {2M+T}{3}}}
جمع وزندار این دو فرمول دقیقاً همان فرمول سیمپسون یک سوم است.
انتگرال نمودار در بازهٔ صفر تا سه و نیم توسط قاعده سیمپسون سه هشتم
این قانون یکی دیگر از روشهای محاسبهٔ انتگرال است. این قانون با درونیابی یک چندجملهای درجه ۳ و استفاده از قاعده سیمپسون بدست میآید.[ ۴]
∫
a
b
f
(
x
)
d
x
≈
3
h
8
[
f
(
a
)
+
3
f
(
2
a
+
b
3
)
+
3
f
(
a
+
2
b
3
)
+
f
(
b
)
]
=
(
b
−
a
)
8
[
f
(
a
)
+
3
f
(
2
a
+
b
3
)
+
3
f
(
a
+
2
b
3
)
+
f
(
b
)
]
{\displaystyle \int _{a}^{b}f(x)\,dx\approx {\tfrac {3h}{8}}\left[f(a)+3f\left({\tfrac {2a+b}{3}}\right)+3f\left({\tfrac {a+2b}{3}}\right)+f(b)\right]={\tfrac {(b-a)}{8}}\left[f(a)+3f\left({\tfrac {2a+b}{3}}\right)+3f\left({\tfrac {a+2b}{3}}\right)+f(b)\right]}
خطای روش سیمپسون سه هشتم برابر است با:
E
r
r
o
r
=
−
(
b
−
a
)
5
6480
f
(
4
)
(
ξ
)
{\displaystyle Error=-{\tfrac {(b-a)^{5}}{6480}}f^{(4)}(\xi )}
تعمیم قاعده سیمپسون سه هشتم[ ویرایش ]
در این روش با n بار استفاده از قاعده سیمپسون سه هشتم در بازهٔ [a,b] فرمول زیر بهدست میآید
∫
a
b
f
(
x
)
d
x
≈
3
h
8
[
f
(
x
0
)
+
3
f
(
x
1
)
+
3
f
(
x
2
)
+
2
f
(
x
3
)
+
3
f
(
x
4
)
+
3
f
(
x
5
)
+
2
f
(
x
6
)
+
⋯
+
f
(
x
n
)
]
.
=
3
h
8
[
f
(
x
0
)
+
3
∑
i
≠
3
k
n
−
1
f
(
x
i
)
+
2
∑
j
=
1
n
/
3
−
1
f
(
x
3
j
)
+
f
(
x
n
)
]
For:
k
∈
N
0
{\displaystyle {\begin{aligned}\int _{a}^{b}f(x)\,dx&\approx {\tfrac {3h}{8}}\left[f(x_{0})+3f(x_{1})+3f(x_{2})+2f(x_{3})+3f(x_{4})+3f(x_{5})+2f(x_{6})+\cdots +f(x_{n})\right].\\&={\frac {3h}{8}}\left[f(x_{0})+3\sum _{i\neq 3k}^{n-1}f(x_{i})+2\sum _{j=1}^{n/3-1}f(x_{3j})+f(x_{n})\right]\qquad {\text{For: }}k\in \mathbb {N} _{0}\end{aligned}}}
خطای روش تعمیم قاعده سیمپسون سه هشتم برابر است با[ ۴]
E
r
r
o
r
=
−
h
4
80
(
b
−
a
)
f
(
4
)
(
ξ
)
,
{\displaystyle Error=-{\frac {h^{4}}{80}}(b-a)f^{(4)}(\xi ),}
قاعده سیمپسون تعمیم یافته[ ویرایش ]
در تعمیم قاعده سیمپسون به جای استفاده از قاعده سیمپسون در بین بخشهای جداگانه، آن را بین بخشهایی که همپوشانی دارند استفاده میکنیم
∫
a
b
f
(
x
)
d
x
≈
h
48
[
17
f
(
x
0
)
+
59
f
(
x
1
)
+
43
f
(
x
2
)
+
49
f
(
x
3
)
+
48
∑
i
=
4
n
−
4
f
(
x
i
)
+
49
f
(
x
n
−
3
)
+
43
f
(
x
n
−
2
)
+
59
f
(
x
n
−
1
)
+
17
f
(
x
n
)
]
{\displaystyle \int _{a}^{b}f(x)\,dx\approx {\tfrac {h}{48}}{\bigg [}17f(x_{0})+59f(x_{1})+43f(x_{2})+49f(x_{3})+48\sum _{i=4}^{n-4}f(x_{i})+49f(x_{n-3})+43f(x_{n-2})+59f(x_{n-1})+17f(x_{n}){\bigg ]}}
این فرمول با استفاده از قاعده سیمپسون و قاعده سیمپسون سه هشتم و در نهایت میانگین گرفتن از دو فرمول بهدست آمده بهدست آمدهاست.
قاعده سیمپسون تعمیمیافته برای دادههای غیرمعمول[ ویرایش ]
برای انتگرال گرفتن از بازهٔ غیرمعمول
I
=
[
a
,
b
]
{\displaystyle I=[a,b]}
که به علتهای مختلفی مانند کامل نبودن دادهها یا از بین رفتن آنها رخ میدهد، لازم است آن را به بازههای غیر زوج تقسیم کنیم.
فرض کنید این بازه را به زوج زیر بخش (
N
{\displaystyle N}
) با ارتفاعهای
h
k
{\displaystyle h_{k}}
تقسیم کردهایم در این صورت داریم[ ۵] [ ۶]
∫
a
b
f
(
x
)
d
x
=
∑
i
=
0
N
/
2
−
1
(
α
i
f
2
i
+
2
+
β
i
f
2
i
+
1
+
η
i
f
2
i
)
{\displaystyle \int _{a}^{b}f(x)\,\mathrm {d} x=\sum _{i=0}^{N/2-1}\left(\alpha _{i}f_{2i+2}+\beta _{i}f_{2i+1}+\eta _{i}f_{2i}\right)}
که
f
k
=
f
(
a
+
∑
i
=
0
k
−
1
h
i
)
{\displaystyle f_{k}=f\left(a+\sum _{i=0}^{k-1}h_{i}\right)}
مقادیر تابع اصلی در k امین نقطهٔ قاعده سیمپسون است و ضرایب
α
i
,
β
i
,
{\displaystyle \alpha _{i},\,\beta _{i},}
and
η
i
{\displaystyle \eta _{i}}
از طریق زیر بهدست میآیند
α
i
=
2
h
2
i
+
1
3
−
h
2
i
3
+
3
h
2
i
h
2
i
+
1
2
6
h
2
i
+
1
(
h
2
i
+
1
+
h
2
i
)
,
{\displaystyle \alpha _{i}={\frac {2h_{2i+1}^{3}-h_{2i}^{3}+3h_{2i}h_{2i+1}^{2}}{6h_{2i+1}(h_{2i+1}+h_{2i})}},}
β
i
=
h
2
i
+
1
3
+
h
2
i
3
+
3
h
2
i
+
1
h
2
i
(
h
2
i
+
1
+
h
2
i
)
6
h
2
i
+
1
h
2
i
,
{\displaystyle \beta _{i}={\frac {h_{2i+1}^{3}+h_{2i}^{3}+3h_{2i+1}h_{2i}(h_{2i+1}+h_{2i})}{6h_{2i+1}h_{2i}}},}
η
i
=
2
h
2
i
3
−
h
2
i
+
1
3
+
3
h
2
i
+
1
h
2
i
2
6
h
2
i
(
h
2
i
+
1
+
h
2
i
)
{\displaystyle \eta _{i}={\frac {2h_{2i}^{3}-h_{2i+1}^{3}+3h_{2i+1}h_{2i}^{2}}{6h_{2i}(h_{2i+1}+h_{2i})}}}
که استفادهٔ این روش در قطعه کد زیر در پایتون (زبان برنامهنویسی) آمدهاست:
import numpy as np
def simpson_nonuniform ( x , f ):
"""
Simpson rule for irregularly spaced data.
Parameters
----------
x : list or np.array of floats
Sampling points for the function values
f : list or np.array of floats
Function values at the sampling points
Returns
-------
float : approximation for the integral
"""
N = len ( x ) - 1
h = np . diff ( x )
result = 0.0
for i in range ( 1 , N , 2 ):
hph = h [ i ] + h [ i - 1 ]
result += f [ i ] * ( h [ i ] ** 3 + h [ i - 1 ] ** 3
+ 3. * h [ i ] * h [ i - 1 ] * hph ) \
/ ( 6 * h [ i ] * h [ i - 1 ] )
result += f [ i - 1 ] * ( 2. * h [ i - 1 ] ** 3 - h [ i ] ** 3
+ 3. * h [ i ] * h [ i - 1 ] ** 2 ) \
/ ( 6 * h [ i - 1 ] * hph )
result += f [ i + 1 ] * ( 2. * h [ i ] ** 3 - h [ i - 1 ] ** 3
+ 3. * h [ i - 1 ] * h [ i ] ** 2 ) \
/ ( 6 * h [ i ] * hph )
if ( N + 1 ) % 2 == 0 :
result += f [ N ] * ( 2 * h [ N - 1 ] ** 2
+ 3. * h [ N - 2 ] * h [ N - 1 ]) \
/ ( 6 * ( h [ N - 2 ] + h [ N - 1 ] ) )
result += f [ N - 1 ] * ( h [ N - 1 ] ** 2
+ 3 * h [ N - 1 ] * h [ N - 2 ] ) \
/ ( 6 * h [ N - 2 ] )
result -= f [ N - 2 ] * h [ N - 1 ] ** 3 \
/ ( 6 * h [ N - 2 ] * ( h [ N - 2 ] + h [ N - 1 ] ) )
return result
↑ Atkinson صفحه ۲۵۶; Süli and Mayers, بخش ۷٫۵
↑ Atkinson, صفحه ۲۵۶; Süli and Mayers, بخش ۷٫۲
↑ Atkinson, معادلهٔ (۵٫۱٫۱۵); Süli and Mayers, تئوری 7.2
↑ ۴٫۰ ۴٫۱ Matthews 2004
↑ Kylänpää, Ilkka (2019). Computational Physics course . Tampere University.
↑ Cartwright, Kenneth V. (2016). "Simpson's Rule Integration with MS Excel and Irregularly-spaced Data" (PDF) . Journal of Mathematical Science and Mathematics Education . 11 (2): 34–42.
Atkinson, Kendall E. (1989). An Introduction to Numerical Analysis (2nd ed.). John Wiley & Sons. ISBN 0-471-50023-2 .
Burden, Richard L.; Faires, J. Douglas (2000). Numerical Analysis (7th ed.). Brooks/Cole. ISBN 0-534-38216-9 .
Pate, McCall (1918). The naval artificer's manual: (The naval artificer's handbook revised) text, questions and general information for deck . United States. Bureau of Reconstruction and Repair. p. 198.
Matthews, John H. (2004). "Simpson's 3/8 Rule for Numerical Integration" . Numerical Analysis - Numerical Methods Project . California State University, Fullerton. Archived from the original on 4 December 2008. Retrieved 11 November 2008 .
Press, William H.; Flannery, Brian P.; Vetterling, William T.; Teukolsky, Saul A. (1989). Numerical Recipes in Pascal: The Art of Scientific Computing . Cambridge University Press. ISBN 0-521-37516-9 .
Süli, Endre; Mayers, David (2003). An Introduction to Numerical Analysis . Cambridge University Press. ISBN 0-521-00794-1 .
Weisstein, Eric W. (2010). "Newton-Cotes Formulas" . MathWorld--A Wolframtite Web Resource . MathWorld. Retrieved 2 August 2010 .