If we wanted to solve the equation

\[10^y = 1000\]

we would be trying to find the power of 10 that will give 1000. Since \(10^3 = 1000\), the answer is 3, hence the number 3 is called the logarithm, base 10, of 1000.

A logarithm is defined as

\[\log_{a} x = y \rightarrow a^y = x\] for \(a > 0\) and \(a \neq 1\). The number \(log_ax\) is the power \(y\) to which we raise \(a\) to get \(x\). We can think of a logarithm as an exponent, so to graph a logarithmic equation, we can graph its equivalent exponential equation. Logarithmic and exponential functions are inverse of each other.

Let’s graph \(y = \log_{2} x\) and \(y = \log_{10} x\).

from sympy import *
import numpy as np
import matplotlib.pyplot as plt

def f(x):
  return np.log2(x)
def g(x):
  return np.log10(x)
x = np.linspace(1, 8)

plt.plot(x, f(x), label="$f(x) = \log_{2} x$")
plt.plot(x, g(x), label="$g(x) = \log_{10} x$")

The common logarithms are \(\log_{10} x\) and the natural logarithm \(\ln x = \log_{e} x\).

Let’s calculate the natural logarithms \(\ln 2\), and \(\ln 3\).

def h(x):
  return np.log(x)

## 0.6931471805599453
## 1.0986122886681098

If an equation contains a variable in an exponent, the equation is exponential. We can use logarithms to manipulate or solve exponential equations.

Let’s say we have an equation like \(e^t = 40\) and we want to solve for \(t\).

from mpmath import ln, e

t = symbols("t")

equation = Eq(e**t, 40)
## Eq(2.71828182845905**t, 40)
solve(equation, t)
## [3.68887945411393]

As with other logarithmic functions, we can graph the natural logarithmic function or its equivalent exponential function.

def f(x):
  return x

def g(x):
  return np.log(x)
def h(x):
  return e**x

x = np.linspace(0, 2)

plt.plot(x, f(x), "--", label="$y = x$")
plt.plot(x, h(x), label="$h(x) = e^x$")
plt.plot(x, g(x), label="$g(x) = \ln x$")

The derivative of the natural logarithmic function is

x = symbols("x")
## 1/x

For any positive number

\[\frac{d}{dx} \ln x = \frac{1}{x}\]

Let’s differentiate \(y = 3 \ln x\) and \(y = x^2 \ln x + 5x\).

diff(3 * log(x))
## 3/x
diff(x**2 * log(x) + 5 * x)
## 2*x*log(x) + x + 5


The forgetting curve is an interesting application of logarithmic functions. In a psychological experiment, students were shown a set of nonsense syllables, such as POK, RIZ, DEQ, and so on, and asked to recall them every minute thereafter. The percentage \(R(t)\) who retained the syllables after \(t\) minutes was found to be given by the logarithmic learning model

\[R(t) = 80 - 27 \ln t\]

  1. what percentage of students retained the syllables after 1 minute
  2. find \(R^\prime(2)\), and explain what it represents
def R(t):
  return 80 - 27 * log(t)
## 80
ddt = diff(R(t), t)
## -27/t
## -27/2

The derivative of the retention rate tells us that after 2 minutes, the percentage of students who remember the syllables is decreasing by 13.5%.