रिचर्डसन एक्सट्रपलेशन
संख्यात्मक विश्लेषण में, रिचर्डसन एक्सट्रपलेशन एक श्रृंखला त्वरण विधि है जिसका उपयोग कुछ मूल्य के अनुमानों के अनुक्रम के अभिसरण की दर में सुधार करने के लिए किया जाता है। . संक्षेप में, का मूल्य दिया गया है के कई मानों के लिए , हम अनुमान लगा सकते हैं अनुमानों का विस्तार करके . इसका नाम लुईस फ्राई रिचर्डसन के नाम पर रखा गया है, जिन्होंने 20वीं सदी की शुरुआत में इस तकनीक की शुरुआत की थी।[1][2] हालाँकि यह विचार क्रिस्टियान ह्यूजेन्स को Pi|π की गणना में पहले से ही ज्ञात था।[3] गैरेट बिरखॉफ़ और जियान-कार्लो रोटा के शब्दों में, व्यावहारिक गणनाओं के लिए इसकी उपयोगिता को शायद ही कम करके आंका जा सकता है।[4] रिचर्डसन एक्सट्रपलेशन के व्यावहारिक अनुप्रयोगों में रोमबर्ग एकीकरण शामिल है, जो ट्रेपेज़ॉइड नियम पर रिचर्डसन एक्सट्रपलेशन को लागू करता है, और सामान्य अंतर समीकरणों को हल करने के लिए बुलिर्श-स्टोअर एल्गोरिदम।
सामान्य सूत्र
संकेतन
होने देनाका एक अनुमान हो(सटीक मान) जो फॉर्म के अनुमान त्रुटि सूत्र के साथ सकारात्मक चरण आकार एच पर निर्भर करता है
जहां अज्ञात स्थिरांक हैं और ऐसे ज्ञात स्थिरांक हैं . आगे, की काट-छाँट त्रुटि को दर्शाता है सन्निकटन ऐसा कि इसी प्रकार, में सन्निकटन एक कहा जाता है सन्निकटन.
ध्यान दें कि बिग ओ अंकन के साथ सरलीकरण करके, निम्नलिखित सूत्र समतुल्य हैं:
उद्देश्य
रिचर्डसन एक्सट्रपलेशन एक ऐसी प्रक्रिया है जो बेहतर अनुमान लगाती हैत्रुटि सूत्र को बदलकर को इसलिए, प्रतिस्थापित करके साथ से ट्रंकेशन त्रुटि कम हो गई है को
समान चरण आकार के लिए . जिसमें सामान्य पैटर्न होता है से अधिक सटीक अनुमान है कब . इस प्रक्रिया से, हमने बेहतर अनुमान प्राप्त कर लिया हैत्रुटि में सबसे बड़े पद को घटाकर जो था . बेहतर अनुमान प्राप्त करने के लिए अधिक त्रुटि शब्दों को हटाने के लिए इस प्रक्रिया को दोहराया जा सकता है।
प्रक्रिया
चरण आकारों का उपयोग करनाऔरकुछ स्थिरांक के लिए, के लिए दो सूत्रहैं:
पुनरावृत्ति संबंध
एक सामान्य पुनरावृत्ति संबंध को सन्निकटन के लिए परिभाषित किया जा सकता है
कहाँ संतुष्ट
- .
गुण
रिचर्डसन एक्सट्रपलेशन को एक रैखिक अनुक्रम परिवर्तन के रूप में माना जा सकता है।
इसके अतिरिक्त, अनुमान लगाने के लिए सामान्य सूत्र का उपयोग किया जा सकता है(ट्रंकेशन त्रुटि का अग्रणी क्रम चरण आकार व्यवहार) जब न तो इसका मूल्य और न हीएक प्राथमिकता के रूप में जाना जाता है। ऐसी तकनीक अभिसरण की अज्ञात दर को मापने के लिए उपयोगी हो सकती है। का अनुमान दिया गया हैतीन अलग-अलग चरण आकारों से,, और, सटीक संबंध
रिचर्डसन एक्सट्रपलेशन का उदाहरण
मान लीजिए कि हम अनुमान लगाना चाहते हैं , और हमारे पास एक विधि है यह एक छोटे पैरामीटर पर निर्भर करता है इस तरह से कि
तब
बहुत बार, बहुत छोटे h' के साथ A(h') के बजाय R(h) का उपयोग करके दी गई सटीकता प्राप्त करना बहुत आसान होता है। जहां A(h') सीमित परिशुद्धता (गोल त्रुटियां) और/या आवश्यक कम्प्यूटेशनल लागत में वृद्धि के कारण समस्याएं पैदा कर सकता है (नीचे उदाहरण देखें)।
रिचर्डसन एक्सट्रपलेशन के लिए उदाहरण छद्मकोड कोड
MATLAB शैली में निम्नलिखित छद्म कोड ODE को हल करने में मदद करने के लिए रिचर्डसन एक्सट्रपलेशन को प्रदर्शित करता है , ट्रेपेज़ॉइडल विधि के साथ. इस उदाहरण में हमने चरण का आकार आधा कर दिया है प्रत्येक पुनरावृत्ति और इसलिए ऊपर की चर्चा में हमारे पास वह होगा . ट्रैपेज़ॉइडल विधि की त्रुटि को विषम शक्तियों के रूप में व्यक्त किया जा सकता है ताकि कई चरणों में त्रुटि को सम शक्तियों में व्यक्त किया जा सके; यह हमें उत्थान की ओर ले जाता है दूसरी शक्ति के लिए और की शक्तियाँ लेने के लिए छद्म कोड में. हम का मूल्य ज्ञात करना चाहते हैं , जिसका सटीक समाधान है चूँकि ODE का सटीक समाधान है . यह छद्मकोड मानता है कि एक फ़ंक्शन कहा जाता है Trapezoidal(f, tStart, tEnd, h, y0)
मौजूद है जो गणना करने का प्रयास करता है y(tEnd)
फ़ंक्शन पर ट्रैपेज़ॉइडल विधि निष्पादित करके f
, शुरुआती बिंदु के साथ y0
और tStart
और चरण का आकार h
.
ध्यान दें कि प्रारंभिक चरण के आकार को बहुत छोटे से शुरू करने से संभावित रूप से अंतिम समाधान में त्रुटि आ सकती है। हालाँकि सर्वोत्तम प्रारंभिक चरण आकार चुनने में मदद करने के लिए डिज़ाइन की गई विधियाँ हैं, एक विकल्प बड़े चरण आकार के साथ शुरू करना है और फिर रिचर्डसन एक्सट्रपलेशन को प्रत्येक पुनरावृत्ति चरण आकार को कम करने की अनुमति देना है जब तक कि त्रुटि वांछित सहनशीलता तक नहीं पहुंच जाती।
tStart = 0 % Starting time
tEnd = 5 % Ending time
f = -y^2 % The derivative of y, so y' = f(t, y(t)) = -y^2
% The solution to this ODE is y = 1/(1 + t)
y0 = 1 % The initial position (i.e. y0 = y(tStart) = y(0) = 1)
tolerance = 10^-11 % 10 digit accuracy is desired
maxRows = 20 % Don't allow the iteration to continue indefinitely
initialH = tStart - tEnd % Pick an initial step size
haveWeFoundSolution = false % Were we able to find the solution to within the desired tolerance? not yet.
h = initialH
% Create a 2D matrix of size maxRows by maxRows to hold the Richardson extrapolates
% Note that this will be a lower triangular matrix and that at most two rows are actually
% needed at any time in the computation.
A = zeroMatrix(maxRows, maxRows)
%Compute the top left element of the matrix. The first row of this (lower triangular) matrix has now been filled.
A(1, 1) = Trapezoidal(f, tStart, tEnd, h, y0)
% Each row of the matrix requires one call to Trapezoidal
% This loops starts by filling the second row of the matrix, since the first row was computed above
for i = 1 : maxRows - 1 % Starting at i = 1, iterate at most maxRows - 1 times
h = h/2 % Halve the previous value of h since this is the start of a new row.
% Starting filling row i+1 from the left by calling the Trapezoidal function with this new smaller step size
A(i + 1, 1) = Trapezoidal(f, tStart, tEnd, h, y0)
for j = 1 : i % Go across this current (i+1)-th row until the diagonal is reached
% To compute A(i + 1, j + 1), which is the next Richardson extrapolate,
% use the most recently computed value (i.e. A(i + 1, j)) and the value from the
% row above it (i.e. A(i, j)).
A(i + 1, j + 1) = ((4^j).*A(i + 1, j) - A(i, j))/(4^j - 1);
end
% After leaving the above inner loop, the diagonal element of row i + 1 has been computed
% This diagonal element is the latest Richardson extrapolate to be computed.
% The difference between this extrapolate and the last extrapolate of row i is a good
% indication of the error.
if (absoluteValue(A(i + 1, i + 1) - A(i, i)) < tolerance) % If the result is within tolerance
print("y = ", A(i + 1, i + 1)) % Display the result of the Richardson extrapolation
haveWeFoundSolution = true
break % Done, so leave the loop
end
end
if (haveWeFoundSolution == false) % If we were not able to find a solution to within the desired tolerance
print("Warning: Not able to find solution to within the desired tolerance of ", tolerance);
print("The last computed extrapolate was ", A(maxRows, maxRows))
end
यह भी देखें
- ऐटकेन की डेल्टा-वर्ग प्रक्रिया
- केंको ताकेबे
- रिचर्डसन पुनरावृत्ति
संदर्भ
- ↑ Richardson, L. F. (1911). "The approximate arithmetical solution by finite differences of physical problems including differential equations, with an application to the stresses in a masonry dam". Philosophical Transactions of the Royal Society A. 210 (459–470): 307–357. doi:10.1098/rsta.1911.0009.
- ↑ Richardson, L. F.; Gaunt, J. A. (1927). "The deferred approach to the limit". Philosophical Transactions of the Royal Society A. 226 (636–646): 299–349. doi:10.1098/rsta.1927.0008.
- ↑ Brezinski, Claude (2009-11-01), "Some pioneers of extrapolation methods", The Birth of Numerical Analysis, WORLD SCIENTIFIC, pp. 1–22, doi:10.1142/9789812836267_0001, ISBN 978-981-283-625-0
- ↑ Page 126 of Birkhoff, Garrett; Gian-Carlo Rota (1978). Ordinary differential equations (3rd ed.). John Wiley and sons. ISBN 0-471-07411-X. OCLC 4379402.
- Extrapolation Methods. Theory and Practice by C. Brezinski and M. Redivo Zaglia, North-Holland, 1991.
- Ivan Dimov, Zahari Zlatev, Istvan Farago, Agnes Havasi: Richardson Extrapolation: Practical Aspects and Applications, Walter de Gruyter GmbH & Co KG, ISBN 9783110533002 (2017).
बाहरी संबंध
- Fundamental Methods of Numerical Extrapolation With Applications, mit.edu
- Richardson-Extrapolation
- Richardson extrapolation on a website of Robert Israel (University of British Columbia)
- Matlab code for generic Richardson extrapolation.
- Julia code for generic Richardson extrapolation.