# Créé par shemon, le 30/05/2024 en Python 3.7
from math import*
import numpy as np

#définition f et g
def f(t):
    y=1/(1+t**2)
    return(y)
def g(t):
    z=exp(-t**2)
    return(z)
def ge(t):
    z=e**(-t**2)
    return(z)
#question 1
#a)b)
Lf=np.zeros(11)
A=np.zeros((2,11))

for k in range(11):
    Lf[k]=f(k/10)
    A[0,k]=k/10
    A[1,k]=f(k/10)
print(Lf)
Lg=np.zeros(11)
B=np.zeros((2,11))

for k in range(11):
    Lg[k]=g(k/10)
    B[0,k]=k/10
    B[1,k]=g(k/10)
print(Lg)

print("A=",A)
print("B=",B)
n=11
hatI1=sum(Lf)/n
hatJ1=sum(Lg)/n

#questiond)
def hatI1(n):
    L=np.zeros(n+1)
    for k in range(n+1):
        L[k]=f(k/n)
    I=sum(L)/(n+1)
    return(I)

#question2
def hatI(x,n):
    L=np.zeros(n+1)
    for k in range(n+1):
        L[k]=f(x*k/n)
    I=x*sum(L)/(n+1)
    return(I)

#question2d
def hatJ(x,n):
    L=np.zeros(n+1)
    for k in range(n+1):
        L[k]=g(x*k/n)
    J=x*sum(L)/(n+1)
    return(J)
J10=hatJ(10,1000)
print("J10=",J10)

