Files
STOR-881/HW 3.py
David Allemang 2e1103d295 Fall 2025
2026-05-25 11:32:47 -04:00

73 lines
1.7 KiB
Python

#!/usr/bin/env python
# coding: utf-8
# ### Homework 3
#
# David Allemang. STOR 881.001.FA25.
#
# Verify that for all $x > 0$ and $\lambda \in \mathbb R$, $$\lim_{\lambda \to 0} \frac{x^\lambda - 1}{\lambda} = \ln x$$
# Proof. Apply L'Hôpital's rule: $$\lim_{\lambda \to 0} \frac f g = \lim_{\lambda \to 0} \frac {f_\lambda}{g_\lambda}$$ where $f = x^\lambda - 1$ and $g = \lambda$.
#
# $$\begin{align*}
# \lim_{\lambda \to 0} \frac{x^\lambda - 1}{\lambda} &=
# \lim_{\lambda \to 0} \frac{x^\lambda \ln x - 0}{1} \\
# &= x^0 \ln x \\
# &= \ln x
# \end{align*}$$
# Just for fun, let's plot the thing.
# In[1]:
import matplotlib.pyplot as plt
from matplotlib.colors import Normalize
import numpy as np
x = 2 ** np.linspace(-2, 2, 50)
l = np.linspace(-1, 1, 21)
l = l[l != 0]
X, L = np.meshgrid(x, l)
Z = (X ** L - 1) / L
cmap = plt.get_cmap('bwr')
lnorm = Normalize(l.min(), l.max())
# In[2]:
plt.figure(figsize=(9, 6))
plt.title("Box-Cox transform (linear scale)")
lines = plt.plot(x, Z.T, lw=1.5, ls='-')
lines[0].set_label(rf'$\lambda = {l.min()}$')
lines[-1].set_label(rf'$\lambda = {l.max()}$')
for line, color in zip(lines, cmap(lnorm(l))):
line.set_color(color)
line, = plt.plot(x, np.log(x), lw=3, ls=':', c='k')
line.set_label(r'$\ln x$')
plt.legend()
plt.show();
# In[3]:
plt.figure(figsize=(9, 6))
plt.title("Box-Cox transform (log scale)")
plt.gca().set_xscale('log', base=2)
lines = plt.plot(x, Z.T, lw=1.5, ls='-')
lines[0].set_label(rf'$\lambda = {l.min()}$')
lines[-1].set_label(rf'$\lambda = {l.max()}$')
for line, color in zip(lines, cmap(lnorm(l))):
line.set_color(color)
line, = plt.plot(x, np.log(x), lw=3, ls=':', c='k')
line.set_label(r'$\ln x$')
plt.legend()
plt.show();