import numpy as np
import matplotlib.pyplot as plt

def f(x,y) :
    return (np.cosh(2*y)-np.cos(2*x))/2
    
def g(r,t) :
    return f(r*np.cos(t),r*np.sin(t))
    
# X = np.linspace(-2*np.pi,2*np.pi,100)
# for r in [1,2,5,10] : # enlever 5 et 10 pour y voir mieux
#     Y = [g(r,t) for t in X]
#     plt.plot(X,Y)
# plt.show()

def F(r,x,y) :
    if x**2+y**2 <= r**2 :
        return f(x,y)
    else :
        return 0

def M(r) :
    m = 0
    for i in range(101) :
        x = r*(1-2*i/100)
        for j in range(101) :
            y = r*(1-2*j/100)
            n = F(r,x,y)
            if m < n :
                m = n
    return m
    
X = np.arange(1,4.01,0.01)
Y = [M(r) for r in X]
Z = [np.sinh(r)**2 for r in X]
plt.plot(X,Y,color='k')
plt.plot(X,Z,color='b')
plt.show()
