Even easier mentally calculating logarithms

In this thread I showed how to mentally calculating logarithms:


In it I wanted to show how to do this and still get accurate numbers.

If we accept a little less accuracy, can we mentally calculate logarithms quicker and easier?
The answer is yes.

Let’s start with log 3 and use 3 * 3 = 9.
We will calculate log3 by first calculating log9 starting with log10.

log10 = 1

log9. 9 is of course 10% lower than 10.

We have memorised log 1.01 as 0.0043, so log 1.1 \approx 0.043 or 10 times as much.
It needs to be slightly less, so take 0.042. (This is because 1.01^{10} > 1.1).

Using 0.042 we get:

log 9 = log (3^2) \approx 1 - 0.042 = 0.958.

The log of a squared number is double the log of that same number.

If log (3^2) \approx 0.958, then:
2 * log (3) \approx 0.958, so:
log (3) \approx 0.958 / 2 = 0.479.

We calculated 0.479, which is close to the actual value of 0.477…

Is this fun?
Let me know.

6 Likes

It is but I prefer the technique I have learnt

3 Likes

TLDR
The first post can be improved with the below realisation.
Then we calculate log 3 as 0.478, which is a pretty accurate value.

There is something I forgot.
The difference from 1 to 1.1, logarithmically, is smaller compared to the difference from 1 to 0.9.
Or +10% is bigger than -10%.

In numbers,
log 1.1 is 0.0414…
log 0.9 is -0.0458…

458 is bigger than 414. The difference is 44. Coincidence? Well, no.
0.414 -0.458 = log1.1 + log0.9 = log(1.1 * 0.9) = log(0.99)
0.99 is 1 minus 1%.

For adding 1% we used 43 (as in 0.0043).
We now see that the logarithm for subtraction is bigger in value than the one for addition, so the number for subtracting 1% should be bigger than 43, so let’s take 44.

Why 44? Well we know the number needs to be around 4343 and 1.01 * 0.99 is 0.9999, so we need to add about 1% of 4343 to get about 4386.
43.86 rounded to 2 decimals is 44.
Forget if this get’s too complicated or just ask me to clarify.
At least remember that the numbers 44 and 43 will pop up every time: log(e).

Going back to estimating log 0.9 from the first post.
If log 1.1 \approx 0.0414 then:
log 0.9 \approx -(log1.1 + log1.01) = 0.0414 + 0.0044 = 0.0458 or 0.046 when using only 2 decimals.

Long story short.
We need to use 46 instead of 42.
And then we get for log 3:
log 9 = log (3^2) \approx 1 - 0.046 = 0.956.
log (3) \approx 0.956 / 2 = 0.478.

0.478 is pretty close to the actual value of 0.477…

I started this post by saying that I forgot that log(0.9) is higher in value than log(1.1).
I stated earlier that one should not use differences bigger than 1%.
In those cases the difference is smaller and for most cases one can use log(1.01) \approx -log(0.99). Since 1.01 * 0.99 = 0.9999, the difference with 1 is very small.

3 Likes

Now let’s do log2

Let’s calculate log2 using 2^3=8.
log10 = 1
8 is 20% less than 10.
We used 0.046 for minus 10%, so let’s use 0.092 or twice that number.

1 - 0.092 = 0.908.
log 8 = log(2^3) \approx 0.908
log8 is three times log2, so:
log2 \approx 0.908 : 3 = 0.302666... or 0.3027 rounded.

0.3027 is a bit higher than the actual value of 0.301.
Still, accurate!

(We can do better by realising that 0.9^2 = 0.81. So instead of taking log(0.8) = 2 * log(0.9) we should make a small correction 80 to 81 or 1.25%
This would give a very accurate value.)

3 Likes

We calculated log2 on a difference of 20%. This is way too much. We know that our answer is not very accurate.

Let’s see if we can see how accurate our numbers are.
We calculated log3 to be 0.478 and log2 as 0.3027.
Then log6 = log2 + log3 = 0.7807.

Bear with me for a moment.
Let’s find log 2 in a different way:
100 / 6 = 16 + 2/3 \approx 16 * 1.04 = 2^4 * 1.04

So log(100 / 6) = 2 - log6 \approx 2 - 0.7807 = 1.2193
log(16 + 2/3) \approx log(16 * 1.04) = log(2^4) * 1.04 \approx 4 * (log(2) + log(1.01)) The last step we can do because {1.01}^4 \approx 1.04.

1.2193 = 4 * (log(2) + log(1.01))
log2 = 1.2193 / 4 - log(1.01) = 0.304825 - 0.0043 = 0.300525

So now we have 2 numbers for log 2:
0.3027 and 0.3005.

Let’s split the difference:
Log 2= 0.3016

A bit closer to the actual value of 0.301…

1 Like

I am enjoying the threads on logarithms. Most of the books articles that I look at show in detail calculating the logs (often form memory or by first principles) It all sounds good until I want to find the anti log. What is the trick to do that. I can do it on my calculator but that’s not the point.

1 Like

Geoffrey - you’re correct that this is the dificult part! The method I use is here: https://worldmentalcalculation.com/how-to-calculate-antilogarithms/

In practice I guess as follows - using an example of 0.56789 as an example:

  • 0.47712 is log 3 and this is is about 0.3 x 7 more than that (to get about 2.57…) but actually slightly less
  • Since log 2 is about 0.3(0103), the answer will be just less than 3 x 2^7 / 100 = 3.84
  • Pick a value close to that whose logarithm I can easily calculate, e.g. 3.75 = 30/8
  • Calculate that log value: log 3.75 = 1.47712 - 0.90309 = 0.57403
  • This is 0.00614 too large
  • log 1.01 represents adding 1% and is about 0.0043(2) so 0.00614 represents adding about 614/432% which I would estimate as 1.4%
  • The final answer is 3.75 - 1.4% = 3.6975
  • This is really close to the calculator answer of 3.6973452 and manageable for medium-advanced mental calculators
1 Like

Thanks Daniel. Have you ever seen this approach? Seems unusual. I have nor been able to find a PDF explaining it, only the YouTube videos

Geoff

2 Likes

I’ll explain the video.

Step 1:
10^{0.1} \approx 1.26
Since log(2) = 0.3(0103), 10^{0.1} is the 3rd root of 2.
1.26 ^3 \approx 2.

10^{0.2} \approx 1.58
(26 twice = 52.
Plus 26% of 26 = 6.
52 + 6 = 58.)

10^{.3} \approx 2

Step 2:
log 1.05 \approx 0.02
log 1.1 \approx 0.04
log 1.15 \approx 0.06
log 1.2 \approx 0.08

Left and right reversed:
0.02 => 1.05
0.04 => 1.1
0.06 => 1.15
0.08 => 1.2

His answer can be improved upon.
When he did 10^{6.4872}, I thought, wait a minute, we can get much closer to the answer.

10^{6.4872} = 10^6 * 10^{0.4872}.
10^6 is one million.
10^{0.4872} is pretty close to 10^{0.4771} \approx 3.
The difference between 0.4771 and 0.4872 is 0.0101.
10^{0.01} \approx 1.023. See earlier threads that I wrote.

1.023 times 3 is 3.07.
(I know, 3.069, but let’s round this to compensate for 10^{0.0101} instead of 10^{0.01}).

So 10^6 * 3.07 (instead of 10^6 * 3.024) would be a much closer answer.

3 Likes

As always… you re the best @Kinma :slight_smile:

1 Like

I get asked:
How do you mentally calculate: 1.26 ^3 \approx 2?
It is really not that hard.
As always, bear with me.

Think about this as a savings account that pays 26% per year.
I put one dollar in. How much do I have after 3 years?

Start: $1

After one year: $1.26

After two years: $1.5876. Here is how to do this. The $1.26 from previous years gets 26% interest. The one dollar gets 26% or 26 cent, making a sub total of $1.52.
The 26 cents get 26%. 26*26 = 676, so 6.76 cents. Add this to $1.52 to get 1.5876.

After three years: $2.00. Here is how to do this. $1.5876 rounded to cents is $1.59 or almost 1.60. We need 1.59 plus 26%.
If we tweak the number slightly, we see that $1.60 plus 25% is $2.
We add one (cent) to the first number and subtract one from the percentage.
The final answer therefore needs to be close to $2.

Now back to 26% of 1.59. 25% of 1.59 = 25% of 1.60 minus 25% of 1 cent = 40 cents minus a quarter cent or 39.75 cents. 1.59 + 0.3975 = 1.60 - 0.01 +0.40 - 0.0025 = $2 minus 1.25 cents.
We have now added 25% to 1.59. We need 1% more.
1% of $1.59 is 1.59 cents.
$2 minus 1.25 cents plus 1.59 cents is $2 plus 0.34 cents.`
So the answer is 2.0034.

We can do even better.
We rounded 1.5876 to 1.59. So we added almost a quarter (0.24) of a cent.
Let’s subtract that now
$2 plus 0.34 cents - 0.24 cents = $2 plus 0.1 cents.
So this leads to 2.001.

We can do even, even better.
If you want to be even more precise you can realize that the 0.24 cents that we subtracted gets 26% as well. 24*26 = 674 or 0.0674. So the 0.24 cents grows to 0.3074 cents

The last calculation of $2 plus 0.34 cents - 0.24 cents now becomes:
$2 plus 0.34 cents - 0.3074 cents =
$2 plus 0.0326 cents =

2.000326

BTW:
IRL I stop at the realization that the answer is very close to 2.
IRL I don’t do 6 or 7 digit precision mentally.

BBTW:
The real answer is 2.000376 We are off by 0.00005. Do you see what needs to be the last correction to get the real answer?

3 Likes

Thanks for sharing this, Geoff—I only just got around to watching it.

Basically he is splitting the exponent (x) into a few numbers (x = a + b + c + …) whose values 10^a, 10^b etc. are known from memory.

For example, 10^0.1 = 1.26 (3 s.f.)

Then you use the idea that the exponential function is locally linear (if you zoom in on the graph enough it’s basically a straight line) so you can calculate the correction.

In the video he just uses 4 values in a table, which is not accurate. Better would be to find the remaining amount, and add on 2.5% for every 0.01 missing.

So for the first example, with 3.74, there is 0.04 left over, so you would add 4 x 2.5% = 10%. That’s what he did anyway. But for other values like 0.01 or 0.543 you’d get an improvement over his answer.

The difficult thing about this method is that it doesn’t extend to greater accuracy, as if you memorized 10^0.1 = 1.259 or 1.2589254, you’d then have to multiply these numbers blind, which is super tough.

I prefer the method of memorizing just the log values, such as log 7 = 0.84510, but to greater accuracy.

Then 10^3.74 can be 10^2 x 10^0.84510 x (10^0.30103)^3 - 10^0.00819

From known values, this is: 100 x 7 x 2^3 - (819/432)% = 5600 - 1.9% = 5494.

This is very close to the real answer of 5495.40874(…)

1 Like