Hello,
I have very big numbers that overflow as an integer value. Therefore, I keep the logarithms of those values. The problem is that: I need log(a+b) but I only know loga and logb. How can I approximate to find log(a+b)?
Thanks.
Hello,
I have very big numbers that overflow as an integer value. Therefore, I keep the logarithms of those values. The problem is that: I need log(a+b) but I only know loga and logb. How can I approximate to find log(a+b)?
Thanks.
If we suppose that $\displaystyle a>b$ then...
$\displaystyle \displaystyle \ln (a+b)= \ln a + \ln (1+\frac{b}{a}) = \ln a + \frac{b}{a} - \frac{b^{2}}{2\ a^{2}} + \frac{b^{3}}{3\ a^{3}} - ...$ (1)
If $\displaystyle a<b$ then swap a and b...
Kind regards
$\displaystyle \chi$ $\displaystyle \sigma$
More context please.
But if $\displaystyle a\ge b$
$\displaystyle \ln(a+b)\approx\ln(a)+\left[ 0.985605 \left(\frac{b}{a}\right)+0.111097 \left(\frac{b}{a}\right)^2-0.403140\left(\frac{b}{a}\right)^3\right]$
and if $\displaystyle b \ge a$
$\displaystyle \ln(a+b)\approx\ln(b)+\left[ 0.985605 \left(\frac{a}{b}\right)+0.111097 \left(\frac{a}{b}\right)^2-0.403140\left(\frac{a}{b}\right)^3\right]$
With absolute error $\displaystyle <0.0007$ over the appropriate interval for each of the approximations
CB
More specifically problem is exactly like this: I need to calculate this: dk=alpha*gamma(nk)+dleftk*drightk
alpha is a small double value here.
gamma(nk)=(n-1)! (overflows for big integers - where nk is an integer value)
dleftk and drightk are calculated recursively according to the same equation. Therefore, I have log(gamma(nk)) and log(dleftk*drightk) and I need to calculate dk.
dk is calculated for a tree, and here dleftk and drightk represent the children of the node dk.
I thought keeping the logarithms will be easier, but any other solution will be appreciated as well.
More specifically problem is exactly like this: I need to calculate this: dk=alpha*gamma(nk)+dleftk*drightk
alpha is a small double value here.
gamma(nk)=(n-1)! (overflows for big integers - where nk is an integer value)
dleftk and drightk are calculated recursively according to the same equation. Therefore, I have log(alpha*gamma(nk)) and log(dleftk*drightk) and I need to calculate dk.
dk is calculated for a tree, and here dleftk and drightk represent the children of the node dk.
I thought keeping the logarithms will be easier, but any other solution will be appreciated as well.
If we are less fussy and an absolute error <0.005 is acceptabe a second degree fit will do:
if $\displaystyle a\ge b$
$\displaystyle \ln(a+b)\approx\ln(a)+\left[ 0.937234 \left(\frac{b}{a}\right)-0.248540 \left( \frac{b}{a} \right)^2\right]$
and if $\displaystyle b \ge a$
$\displaystyle \ln(a+b)\approx\ln(b)+\left[ 0.937234 \left(\frac{a}{b}\right)-0.248540\left( \frac{a}{b}\right)^2\right]$