Van két mennyiség a & b által definiált rekurzió és hivatkozás révén egy másik listát értékek x = [x_1, x_2, ... x_N], amely bemenete a programot. A program végighaladni minden értéke x és frissítés a & b szerinti:
for n in range(1,N)
a[n] = a[n-1] * exp(+x[n]) + b[n-1] * exp(-x[n])
b[n] = b[n-1] * exp(+x[n]) + a[n-1] * exp(-x[n])
és a kiindulási érték
a[0] = exp(+x[0])
b[0] = exp(-x[0])
Az értékek x nem nagy szám (mindig <10), de az N lesz a több száz, mert az összes exponenciálisok végső értékeit & b lesz nagyon nagy. Aggódom, hogy azért, mert a forma a rekurzió, ahol folyamatosan megszorozzuk exponenciálisan nagyszámú exponenciálisan kicsiket és hozzátéve, ez a rendszer lesz elég numerikusan instabil.
Ideális esetben azt kiszámítani log (a) és log (b) helyett, hogy állítsa le az értékeket túlságosan nagy. De mivel a rekurzió rendszer, ez nem lehetséges, kivéve, ha azt számítja valami sokkal mocskosabb, mint a
log_a[n] = x[n] + log_a[n-1] + log( 1 + exp(-2*x[n] + log_b[n-1]-log_a[n-1] ) )
Van valami a numerikus stabilitás igazam is aggasztja itt? És ha így lenne valami, mint a napló alapú rendszer stabilizálását segíti ez?