قاعده سیمپسون

در علم محاسبات عددی روشی برای بدست آوردن عددی انتگرالها وجود دارد که توسط توماس سیمپسون مورد استفاده قرار گرفتهاست و به همین دلیل به این روش قاعده سیمپسون میگویند. در این قانون با استفاده از n بار استفاده از قانون ذوزنقه برای بدست آوردن مساحت زیر نمودار فرمولی برای مساحت زیر نمودار بدست میاورد که دقیقتر از روش ذوزنقه است. در این قانون با تقسیم کردن نمودار به بخشهای کوچکتر مساحت زیر نمودار را بدست میاورد (با تقسیم به n+1 بخش که n عددی زوج است).
البته حدود صد سال پیش از سیمپسون فردی به نام یوهانس کپلر از این فرمول استفاده کرده بود به همین دلیل گاهی به این روش قانون کپلر هم گفته میشود.
تعمیم قاعده سیمپسون
[ویرایش]اگر اندازهٔ بازهٔ مورد انتگرال کوچک باشد، قاعده سیمپسون برای n = ۲ یک جواب نسبتاً دقیق از جواب انتگرال خواهد بود. اما اگر تابع ما پیوستگی نداشته باشد یا اندازهٔ بازهٔ مورد انتگرال بزرگ باشد یا تابع ما دارای مشتقهای ناپیوسته باشد، در هر یک از این موارد قاعده سیمپسون برای n = ۲ جوابی دقیق ارائه نمیدهد. در این صورت میتوان بازه را به n > 2 بخش تقسیم کرد و در هر یک از این بخشها از قاعده سیمپسون استفاده کرد؛ که در این صورت به آن تعمیم قاعده سیمپسون گفته میشود. فرض کنید بازهٔ انتگرال [a,b] به n بخش تقسیم شدهاست و همچنین n را عددی زوج در نظر بگیرید در این صورت طبق قاعده سیمپسون داریم
که در این فرمول برای و در آن
خطای تعمیم قاعده سیمپسون برابر است با[۱]
که در آن عددی بین و است و طول هر گام است.
قاعده سیمپسون یک سوم
[ویرایش]اگر چندجملهای درجهٔ دو را به جای تابع در فرمول استفاده کنیم میتوان با استفاده از درونیابی میتوان این چندجملهای را بدست آورد.[۲]

با انتگرال گرفتن از دو طرف تساوی و استفاده از قانون لاگرانژ داریم:
که این روش انتگرالگیری که یک حالت خاص از قاعده سیمپسون است را با نام سیمپسون یک سوم میشناسند.
خطای این روش محاسبهٔ انتگرال برابر است با:[۳]
که
میانگین نقطهٔ میانی و روش ذوزنقه
[ویرایش]از دیگر فرمولهای بهدست آمده از قاعده سیمپسون توسط فرمولهای نقطهٔ میانی
و فرمول روش ذوزنقه
است که خطای این دو روش به ترتیب
و
هستند که برای استخراج فرمول جدید از این دو روش به نسبت خطاها آنها را جمع میکنیم.
جمع وزندار این دو فرمول دقیقاً همان فرمول سیمپسون یک سوم است.
قاعده سیمپسون سه هشتم
[ویرایش]
این قانون یکی دیگر از روشهای محاسبهٔ انتگرال است. این قانون با درونیابی یک چندجملهای درجه ۳ و استفاده از قاعده سیمپسون بدست میآید.[۴]
خطای روش سیمپسون سه هشتم برابر است با:
تعمیم قاعده سیمپسون سه هشتم
[ویرایش]در این روش با n بار استفاده از قاعده سیمپسون سه هشتم در بازهٔ [a,b] فرمول زیر بهدست میآید
خطای روش تعمیم قاعده سیمپسون سه هشتم برابر است با[۴]
قاعده سیمپسون تعمیم یافته
[ویرایش]در تعمیم قاعده سیمپسون به جای استفاده از قاعده سیمپسون در بین بخشهای جداگانه، آن را بین بخشهایی که همپوشانی دارند استفاده میکنیم
این فرمول با استفاده از قاعده سیمپسون و قاعده سیمپسون سه هشتم و در نهایت میانگین گرفتن از دو فرمول بهدست آمده بهدست آمدهاست.
قاعده سیمپسون تعمیمیافته برای دادههای غیرمعمول
[ویرایش]برای انتگرال گرفتن از بازهٔ غیرمعمول که به علتهای مختلفی مانند کامل نبودن دادهها یا از بین رفتن آنها رخ میدهد، لازم است آن را به بازههای غیر زوج تقسیم کنیم.
فرض کنید این بازه را به زوج زیر بخش () با ارتفاعهای تقسیم کردهایم در این صورت داریم[۵][۶]
که مقادیر تابع اصلی در k امین نقطهٔ قاعده سیمپسون است و ضرایب and از طریق زیر بهدست میآیند
که استفادهٔ این روش در قطعه کد زیر در پایتون (زبان برنامهنویسی) آمدهاست:
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.