Beispiel #1
0
def erreurLinear():
    print("Entrer le début de l'intervalle")
    a = input()
    a = float(a)
    print("Entrer la fin de l'intervalle")
    b = input()
    b = float(b)
    print("Entrer le nombre de points")
    n = input()
    n = int(n)
    print("Enter le paramètre k")
    k = input()
    k = float(k)

    rmin = 1e-5

    x = np.linspace(a, b, n)
    y = green_functions.green2(k, x)

    if a > rmin:
        Dreal = interpolation.erreurLinear(y.real, a, b, n)
        Dim = interpolation.erreurLinear(y.imag, a, b, n)

    else:
        Dreal = interpolation.erreurLinear(y.real, rmin, b, n)
        Dim = interpolation.erreurLinear(y.imag, rmin, b, n)

    erreur = sqrt(Dreal**2 + Dim**2)
    print("L'erreur est de ", erreur)
Beispiel #2
0
def tempsLagrange(a,b,order,k): 
    rmin=1e-5

    exact=0
    #Création de l'abscisse
    x=np.linspace(a,b,N)
    
    #Même raison
    if a<rmin:
                 t1=time.time()
                 x1=np.linspace(rmin,b,N)
                 x2=np.linspace(a,rmin,ceil(N/10))
                 exact=green_functions.green2(k,x2) #partie exacte
                 P=interpolation.lagrange(green_functions.green2,rmin,b,order,k) #partie interpolée
                 Y=P(x)
                 
    else:
                 
                 P=interpolation.lagrange(green_functions.green2,a,b,order,k)
                 
                 t1=time.time()
                 Y=P(x)
                 t2=time.time()
                 
    temps2=ac.temps(t1,t2)
    return temps2
def tempsLinear(a, b, sample, k):
    rmin = 1e-5

    exact = 0
    #Création de l'abscisse
    x = np.linspace(
        a,
        b,
        N,
    )

    #Même raison
    if a < rmin:
        x = np.linspace(rmin, b, N)
        x1 = np.linspace(rmin, b, sample)
        x2 = np.linspace(a, rmin, ceil(sample / 10))
        t1 = time.time()
        exact = green_functions.green2(k, x2)
        y = green_functions.green2(k, x1)

        f = interpolation.interpolLin(x1, y.real)
        fim = interpolation.interpolLin(x1, y.imag)

        y0 = np.zeros(N)
        y0im = np.zeros(N)
        for i in range(N):
            y0[i] = f(x[i])
            y0im[i] = fim(x[i])
        t2 = time.time()
        temps = ac.temps(t1, t2)

    else:
        x0 = np.linspace(a, b, sample)
        y0 = np.zeros(N)
        y0im = np.zeros(N)
        t1 = time.time()
        y = green_functions.green2(k, x0)
        f = interpolation.interpolLin(x0, y.real)
        fim = interpolation.interpolLin(x0, y.imag)

        for i in range(N):
            y0[i] = f(x[i])
            y0im[i] = fim(x[i])
        t2 = time.time()
        temps = ac.temps(t1, t2)
    return temps
def erreurParametre():
    print(
        "Quelle erreur d'interpolation souhaitez-vous évaluer en fonction d'un parametre ?"
    )
    print("Interpolation par polynôme de Lagrange (1)")
    print("Interpolation linéaire (2)")
    case = input()
    case = float(case)
    if case == 1:
        varParametre()

        x = np.linspace(a, b, n)
        y = green_functions.green2(k, x)

        if a > rmin:
            Dreal = interpolation.erreurLagrange(y.real, a, b, n)
            Dim = interpolation.erreurLagrange(y.imag, a, b, n)

        else:
            Dreal = interpolation.erreurLagrange(y.real, rmin, b, n)
            Dim = interpolation.erreurLagrange(y.imag, rmin, b, n)

        erreur = sqrt(Dreal**2 + Dim**2)
        print("L'erreur est de ", erreur)

    if case == 2:
        varParametre()

        x = np.linspace(a, b, n)
        y = green_functions.green2(k, x)

        if a > rmin:
            Dreal = interpolation.erreurLinear(y.real, a, b, n)
            Dim = interpolation.erreurLinear(y.imag, a, b, n)

        else:
            Dreal = interpolation.erreurLinear(y.real, rmin, b, n)
            Dim = interpolation.erreurLinear(y.imag, rmin, b, n)

        erreur = sqrt(Dreal**2 + Dim**2)
        print("L'erreur est de ", erreur)
Beispiel #5
0
def erreurLagrangeParametre(a,b,n,k):
  
    rmin=1e-5

    x=np.linspace(a,b,n)
    y=green_functions.green2(k,x)

    if a>rmin:
         Dreal=interpolation.erreurLagrange(y.real,a,b,n)
         Dim=interpolation.erreurLagrange(y.imag,a,b,n)

    else:
         Dreal=interpolation.erreurLagrange(y.real,rmin,b,n)
         Dim=interpolation.erreurLagrange(y.imag,rmin,b,n)

    erreur =sqrt(Dreal**2+Dim**2)
    print("L'erreur est de : ", erreur)
    return erreur
Beispiel #6
0
def mainLagrange(): 
    print("Entrer le début de l'intervalle")
    a=input()
    a=float(a)
    print("Entrer la fin de l'intervalle")
    b=input()
    b=float(b)
    print("Entrer l'ordre du polynome")
    n=input()
    n=int(n)
    print("Enter le paramètre k")
    k=input()
    k=float(k)

    rmin=1e-5

    exact=0
    
    #création de l'abscisse
    x=np.linspace(a,b,n+1, dtype=complex)
    
    
    #On a une singularité en 0 ainsi lorqu'on s'en approche on calcule exactement la fonction
    if a<rmin:
            x1=np.linspace(rmin,b,n+1, dtype=complex)
            x2=np.linspace(a,rmin,ceil(n/(b-a)*(rmin-a)))
            exact=green_functions.green2(k,x2) #partie exacte
            P=interpolation.lagrange(green_functions.green2,rmin,b,n,k) #partie interpolée
            Y=P(x)

            plt.plot(x1.real,Y.real)
            plt.plot(x1.real,Y.imag)
            plt.plot(x2.real, exact.real)
            plt.plot(x2.real, exact.imag)
    else:
             P=interpolation.lagrange(green_functions.green2,a,b,n,k)
             Y=P(x)
             
             
             plt.plot(x.real,Y.real,'b')
             plt.plot(x.real,Y.imag,'r')

    plt.show() 
def mainLinear():
    print("Entrer le début de l'intervalle")
    a = input()
    a = float(a)
    print("Entrer la fin de l'intervalle")
    b = input()
    b = float(b)
    print("Entrer le nombre de points")
    n = input()
    n = int(n)
    print("Enter le paramètre k")
    k = input()
    k = float(k)

    rmin = 1e-5

    exact = 0
    x = np.linspace(a, b, n + 1, dtype=complex)

    if a < rmin:
        x1 = np.linspace(rmin, b, n + 1, dtype=complex)
        x2 = np.linspace(a, rmin, ceil(n / (b - a) * (rmin - a)))
        exact = green_functions.green2(k, x2)
        P = interpolation.linear(green_functions.green2, rmin, b, n, k)
        Y = P(x)
        plt.plot(x1.real, Y.real)
        plt.plot(x1.real, Y.imag)

        plt.plot(x2.real, exact.real)
        plt.plot(x2.real, exact.imag)
    else:
        P = interpolation.interpolLinear(green_functions.green2, a, b, n, k)
        Y = P(x)
        plt.plot(x.real, Y.real, 'b')

        plt.plot(x.real, Y.imag, 'r')

    plt.show()
        #print("Entrer la fin de l'intervalle")
        #b=input()
        #b=float(b)
        #print("Enter le paramètre k")
        #k=input()
        #k=float(k)
        #print("Entrer jusqu'à quelle nombre de points samplés vous souhaitez les erreurs d'interpolations")
        #sample=input()
        #sample=int(sample)
        a = 1
        b = 10
        k = 10
        order = 18
        x = np.linspace(a, b, N)
        t1 = time.time()
        y = green_functions.green2(k, x)
        t2 = time.time()
        temps1 = ac.temps(t1, t2)
        if a < rmin:
            t1 = time.time()
            x1 = np.linspace(rmin, b, N)
            x2 = np.linspace(a, rmin, ceil(N / 10))
            exact = green_functions.green2(k, x2)  #partie exacte
            P = interpolation.lagrange(green_functions.green2, rmin, b, order,
                                       k)  #partie interpolée
            Y = P(x)

        else:

            P = interpolation.lagrange(green_functions.green2, a, b, order, k)