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)
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)
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
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)