import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import quad

def u(n) :
    if n == 0 :
        return 1/2
    else :
        a = u(n-1)
        return a+a**2*np.log(a)
        
print([u(n) for n in range(0,21)])

def F(x) :
    def g(t) :
        return 1/(t**2*np.log(t))
    return quad(g,1/2,x)[0]
    
# X = np.arange(0.05,0.95,0.01)
# Y = [F(x) for x in X]
# plt.plot(X,Y)
# plt.show()

# N = [k for k in range(0,101)]
# Z = [F(u(k)) for k in N]
# plt.plot(N,Z,marker='o')
# plt.show()

X1 = np.arange(0.01,0.5,0.01)
Y1 = [x*np.log(x)*F(x) for x in X1]
plt.plot(X1,Y1)
plt.show()