Methods for calculating precise logarithm of a sum and subtraction

Methods for operating on log's of values without calculating the original values during the process
1,1K téléchargements
Mise à jour 7 déc. 2010

Afficher la licence

Disclosed are methods to compute the precise value of the logarithm of a sum and the logarithm of a subtraction.

A number of practical problems can result in having too big or small values in intermediate values of a calculation. Then one tries to take logarithm of these values and operate on logarithms instead.

In the case: log (p • q) = log p + log q is very easy to compute, but the problem is then to compute (or approximate) the value of log (a + b) from the value of log a and log b.

Let us assume that log a and log b are known, and that we want to approximate log (a + b).
Most basic solution would be calculating
sum_log = log(exp(a_log) + exp(b_log),
where a_log = log a and b_log = log b and therefore sum_log = log(a + b).
But the method I propose requires calling only one exp() and one log(), instead of two exp() and one log() in the basic solution.
Additionally, the proposed method has the critical advantage of not overflowing in case of large numbers of a and b.

The method is based on the notion that
ln(a + b) = ln{exp[ln(a) - ln(b)] + 1} + ln(b).

In a similar manner we can compute the logarithm of subtraction, based on the notion that
ln(a - b) = ln{exp[ln(a) - ln(b)] - 1} + ln(b), if a > b.

Citation pour cette source

Roland Pihlakas (2024). Methods for calculating precise logarithm of a sum and subtraction (https://www.mathworks.com/matlabcentral/fileexchange/25273-methods-for-calculating-precise-logarithm-of-a-sum-and-subtraction), MATLAB Central File Exchange. Récupéré le .

Compatibilité avec les versions de MATLAB
Créé avec R2007a
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Catégories
En savoir plus sur Save Run-Time Data from Simulation dans Help Center et MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Publié le Notes de version
1.3.0.0

Seems like the updated zip file did not upload with my previous post. I will now resend it.

1.2.0.0

1) Included method for calculating logarithm of subtraction.
And according to the suggestions of Darren Rowland:
2) Added H1 line.
3) Inlined the main formula.
4) An example comparing the methods with a naive solution which will produce overflow.

1.0.0.0