# Intégrales généralisées, exercice 8
import numpy as np
import scipy.integrate as integr
import matplotlib.pyplot as plt

def f(t):
    return np.sin(t)**2/t/t
integr.quad(f,0,np.inf)

for n in range(22):
    def f(t):
        return np.sin(t)**(2*n+1)/t
    print(integr.quad(f,0,np.inf))

L=[]
for n in range(222):
    def f(t):
        return np.sin(t)**(2*n+1)/t
    L.append(integr.quad(f,0,np.inf))
L0 = [l[0] for l in L]
plt.plot(L0)
plt.show()
##

# Séries numériques, exercice 4
import numpy as np
import scipy.optimize as resol

for n in range(1,22):
    def f(x):
        return x**n + x*np.sqrt(n) - 1
    print(resol.fsolve(f,0))

##

# Séries numériques, exercice 9
import numpy as np
import matplotlib.pyplot as plt

x = np.pi*np.exp(1)
L =[np.sin(x)]
for k in range(1,22):
    x = k*x
    L.append(np.sin(x))
plt.plot(L)
plt.show()

x = np.pi*np.exp(-1)
L =[np.sin(x)]
for k in range(1,22):
    x = k*x
    L.append(np.sin(x))
plt.plot(L)
plt.show()

##

# Interrogation orale n°2
import numpy as np

w = np.exp(2j*np.pi/3)

S,p = 0,1
for k in range(1,999):
    p *= w
    S += p/k
print(S)

T = np.arange(0,1,0.0001)
I = sum([(w-t)/(1+t+t*t) for t in T])*0.0001
print(I)

print(np.log(3)/2)
print(np.pi/6)
