In [1]:
import numpy as np
import matplotlib.pyplot as plt
from IPython.display import display,Math
In [2]:
display(Math('\\frac{(y-k)^2}{b^2} - \\frac{(x-h)^2}{a^2} - 1 = 0'))
print('Center: h,k')
print('Radii: a,b')
$\displaystyle \frac{(y-k)^2}{b^2} - \frac{(x-h)^2}{a^2} - 1 = 0$
Center: h,k
Radii: a,b
In [3]:
a = 1
b = .5
h = 1
k = 2

axlim = 2*np.max((a,b)) + np.max((abs(h),abs(k)))
print(2*np.max((a,b)))
print(np.max((abs(h),abs(k))))
print(axlim)

x = np.linspace(-axlim,axlim,100)
X,Y = np.meshgrid(x,x)

hyperbola = (X-h)**2/a**2 - (Y-k)**2/b**2 -1

plt.contour(X,Y,hyperbola,0)
plt.plot(h,k,'go')

plt.plot([-axlim,axlim],[0,0],'k--',color=[.8,.8,.8])
plt.plot([0,0],[-axlim,axlim],'r--',color=[.8,.8,.8])

plt.gca().set_aspect('equal')
plt.show()
2.0
2
4.0
In [4]:
n = 16
ab = np.linspace(1,5,n)

axlim = 8
x = np.linspace(-axlim,axlim,100)
X,Y = np.meshgrid(x,x)

for i in range(0,n):
    F1 = X**2/ab[i]**2 - Y**2/ab[i]**2 - 1
    plt.contour(X,Y,F1,0,colors=[[i/n,.8,i/n]])

    F1 = -X**2/ab[i]**2 + Y**2/ab[i]**2 - 1
    plt.contour(X,Y,F1,0,colors=[[0,i/n,i/n]])

plt.axis('off')
plt.gca().set_aspect('equal')
plt.show()