Aitkensův trojúhelníkový proces - Aitkens delta-squared process - Wikipedia
v numerická analýza, Aitkenův delta-kvadratický proces nebo Aitkenova extrapolace je sériové zrychlení metoda používaná pro zrychlení rychlost konvergence sekvence. Je pojmenován po Alexander Aitken, který tuto metodu zavedl v roce 1926.[1] Jeho raná podoba byla známa Seki Kōwa (konec 17. století) a byl nalezen pro opravu kruhu, tj. výpočet π. Je to nejužitečnější pro urychlení konvergence posloupnosti, která se sbíhá lineárně.
Definice
Vzhledem k posloupnosti , jeden spojuje s touto sekvencí novou sekvenci
které mohou, s vylepšenými numerická stabilita, psát také jako
nebo ekvivalentně jako
kde
a
pro
Očividně, je špatně definováno, pokud obsahuje nulový prvek nebo ekvivalentně, pokud posloupnost první rozdíly má opakující se termín.
Z teoretického hlediska, pokud k tomu dojde pouze pro konečný počet indexů, dalo by se snadno souhlasit s uvažováním posloupnosti omezeno na indexy s dostatečně velkým . Z praktického hlediska se obecně spíše zvažuje pouze prvních pár výrazů posloupnosti, které obvykle poskytují potřebnou přesnost. Navíc při numerickém výpočtu sekvence je třeba se postarat o zastavení výpočtu, když chyby zaokrouhlování ve jmenovateli se stanou příliš velkými, kde operace Δ² může zrušit příliš mnoho významné číslice. (Bylo by lepší použít numerický výpočet spíše než .)
Vlastnosti
Aitkenův delta-kvadratický proces je metoda zrychlení konvergence a konkrétní případ nelineárního sekvenční transformace.
vůle konvergovat lineárně na pokud existuje takové číslo μ ∈ (0, 1)
Aitkenova metoda urychlí sekvenci -li
není lineární operátor, ale konstantní člen vypadne, viz: , pokud je konstanta. To je zřejmé z výrazu z hlediska konečný rozdíl operátor .
Ačkoli se nový proces obecně nesbližuje kvadraticky, lze ukázat, že pro a pevný bod proces, tedy pro iterovaná funkce sekvence pro nějakou funkci konvergující do pevného bodu je konvergence kvadratická. V tomto případě je technika známá jako Steffensenova metoda.
Empiricky A-operace eliminuje "nejdůležitější chybový termín". Lze to zkontrolovat zvážením sekvence formuláře , kde :Sekvence poté přejde na limit jako jde na nulu.
Geometricky, graf exponenciální funkce to uspokojuje , a má vodorovnou asymptotu v (li ).
Lze také ukázat, že pokud jde na hranici svých možností rychlostí přísně vyšší než 1, nemá lepší míru konvergence. (V praxi má člověk zřídka např. Kvadratickou konvergenci, což by znamenalo přes 30 resp. 100 správných desetinných míst po 5 resp. 7 iteracích (počínaje 1 správnou číslicí); v takovém případě obvykle není nutná akcelerace.)
V praxi, konverguje mnohem rychleji k limitu než dělá, jak ukazují níže uvedené příkladové výpočty. Výpočet je obvykle mnohem levnější (zahrnující pouze výpočet rozdílů, jedno násobení a jedno dělení), než vypočítat mnohem více členů posloupnosti . Je však třeba dbát na to, aby se zabránilo zavádění chyb z důvodu nedostatečné přesnosti při výpočtu rozdíly v čitateli a jmenovateli výrazu.
Ukázkové výpočty
Příklad 1: Hodnota lze aproximovat předpokládáním počáteční hodnoty pro a iterace následujícího:
Začínání s
n | X = iterovaná hodnota | Sekera |
0 | 1 | 1.4285714 |
1 | 1.5 | 1.4141414 |
2 | 1.4166667 | 1.4142136 |
3 | 1.4142157 | -- |
4 | 1.4142136 | -- |
Zde stojí za zmínku, že Aitkenova metoda neukládá dva iterační kroky; výpočet prvních tří Sekera požadovaných hodnot prvních pět X hodnoty. Také druhá hodnota Ax je rozhodně horší než hodnota 4. x, většinou kvůli skutečnosti, že Aitkenův proces předpokládá spíše lineární než kvadratickou konvergenci[Citace je zapotřebí ].
Příklad 2: Hodnota lze vypočítat jako nekonečný součet:
n | období | X = částečný součet | Sekera |
0 | 1 | 1 | 0.79166667 |
1 | −0.33333333 | 0.66666667 | 0.78333333 |
2 | 0.2 | 0.86666667 | 0.78630952 |
3 | −0.14285714 | 0.72380952 | 0.78492063 |
4 | 0.11111111 | 0.83492063 | 0.78567821 |
5 | −9.0909091×10−2 | 0.74401154 | 0.78522034 |
6 | 7.6923077×10−2 | 0.82093462 | 0.78551795 |
7 | -6.6666667×10−2 | 0.75426795 | -- |
8 | 5.8823529×10−2 | 0.81309148 | -- |
V tomto příkladu je Aitkenova metoda aplikována na sublearně konvergující řadu, což značně urychluje konvergenci. Je to stále sublimační, ale mnohem rychlejší než původní konvergence: první hodnota Ax, jejíž výpočet vyžadoval první tři hodnoty x, je blíže limitu než hodnota osmého x.
Příklad pseudokódu pro Aitkenovu extrapolaci
Následuje příklad použití Aitkenovy extrapolace k nalezení limitu sekvence když je dán , což předpokládáme jako pevný bod . Mohli bychom například mít s který má pevný bod aby (vidět Metody výpočtu druhé odmocniny ).
Tento pseudokód také počítá Aitkenovu aproximaci . Extrapoláty Aitken budou označeny aitkenX
. Musíme zkontrolovat, zda během výpočtu extrapolátu je jmenovatel příliš malý, což by se mohlo stát, pokud již máme velkou míru přesnosti, protože jinak by mohlo dojít k velké chybě. Toto malé číslo označíme epsilon
.
% Tyto volby závisí na řešeném problémux0 = 1 % Počáteční hodnotaF(X) = (1/2)*(X + 2/X) % Funkce, která najde další prvek v pořadítolerance = 10^-10 Je požadována% 10místná přesnostepsilon = 10^-16 % Nechci dělit o číslo menší než totomaxIterace = 20 % Nedovolte, aby iterace pokračovaly neomezeně dlouhohaveWeFoundSolution = Nepravdivé % Byli jsme schopni najít řešení v rámci požadované tolerance? ještě ne.pro i = 1 : maxIterace x1 = F(x0) x2 = F(x1) -li (x1 ~= x0) lambda = absolutní hodnota((x2 - x1)/(x1 - x0)) % VOLITELNÉ: vypočítá aproximaci | f '(fixedPoint) |, která je označena lambda konec jmenovatel = (x2 - x1) - (x1 - x0); -li (absolutní hodnota(jmenovatel) < epsilon) % Nechci dělit příliš malým počtem tisk(„UPOZORNĚNÍ: jmenovatel je příliš malý“) přestávka; % Opusťte smyčku konec aitkenX = x2 - ( (x2 - x1)^2 )/jmenovatel -li (absolutní hodnota(aitkenX - x2) < tolerance) % Pokud je výsledek v toleranci tisk(„Pevný bod je“, aitkenX)) % Zobrazte výsledek extrapolace Aitken haveWeFoundSolution = skutečný přestávka; % Hotovo, tak opusťte smyčku konec x0 = aitkenX % Aktualizujte x0 a začněte znovu konec-li (haveWeFoundSolution == Nepravdivé) % Pokud bychom nebyli schopni najít řešení v rámci požadované tolerance tisk(„Varování: Nelze najít řešení v rámci požadované tolerance“, tolerance) tisk(„Poslední vypočítaný extrapolát byl“, aitkenX)konec
Viz také
- Míra konvergence
- Limit posloupnosti
- Iterace s pevným bodem
- Richardsonova extrapolace
- Sekvenční transformace
- Shanksova transformace
- Steffensenova metoda
Poznámky
- ^ Alexander Aitken, „O Bernoulliho numerickém řešení algebraických rovnic“, Sborník Královské společnosti z Edinburghu (1926) 46 289–305.
Reference
- William H. Press, et al., Numerické recepty v jazyce C.(1987) Cambridge University Press, ISBN 0-521-43108-5 (Vidět oddíl 5.1 )
- Abramowitz a Stegun, Příručka matematických funkcí, oddíl 3.9.7
- Kendall E. Atkinson, Úvod do numerické analýzy(1989) John Wiley & Sons, Inc, ISBN 0-471-62489-6