par Invité » sam. 16 janv. 2021 01:09
Bonsoir (ou bonjour ?!), à cette heure là.... (;
Alors du coup j'ai repris le premier exo selon vos conseils.
J'ai demandé à Python de construire f le polynôme d'interpolation avec scipy et le spline comme je l'ai lu dans le sujet que vous m'avez donné sur la course.
Ensuite, j'ai demandé à Python d'exécuter les fonctions qu'on avait trouvées (je les ai remises en dessous), avec f le polynôme construit avec scipy, a=0 et b=1. Par contre quoi prendre comme valeurs de n ? Combien de points d'intégration faut-il prendre ?
Merci !
Avec n=10, j'obtiens 19, et vous ?
bon we
Code : Tout sélectionner
def Simpson (f,a,b,n):
n2=2*n # nombre pair de points
s ,h =0 ,(b-a)/n2 # initialisation
x1 = a # abscisses d'ordre pair
for i in range (0,n):
s += 2* f (x1)+4*f(x1+h)
x1=x1 +2*h
s+= f(b)-f(a)
return s*h/3
Code : Tout sélectionner
import numpy
def calc_int_gauss_legendre(f,a,b,n):
X = list(numpy.polynomial.legendre.leggauss(n)[0])
W = list(numpy.polynomial.legendre.leggauss(n)[1])
subd = [((b-a)/2)*X[i]+(a+b)/2 for i in range(len(X))]
somme = 0
for i in range(len(X)):
somme = somme + W[i]*f(subd[i])
return ((b-a)/2) * somme
Bonsoir (ou bonjour ?!), à cette heure là.... (;
Alors du coup j'ai repris le premier exo selon vos conseils.
J'ai demandé à Python de construire f le polynôme d'interpolation avec scipy et le spline comme je l'ai lu dans le sujet que vous m'avez donné sur la course.
Ensuite, j'ai demandé à Python d'exécuter les fonctions qu'on avait trouvées (je les ai remises en dessous), avec f le polynôme construit avec scipy, a=0 et b=1. Par contre quoi prendre comme valeurs de n ? Combien de points d'intégration faut-il prendre ?
Merci !
Avec n=10, j'obtiens 19, et vous ?
bon we
[code]def Simpson (f,a,b,n):
n2=2*n # nombre pair de points
s ,h =0 ,(b-a)/n2 # initialisation
x1 = a # abscisses d'ordre pair
for i in range (0,n):
s += 2* f (x1)+4*f(x1+h)
x1=x1 +2*h
s+= f(b)-f(a)
return s*h/3[/code]
[code]
import numpy
def calc_int_gauss_legendre(f,a,b,n):
X = list(numpy.polynomial.legendre.leggauss(n)[0])
W = list(numpy.polynomial.legendre.leggauss(n)[1])
subd = [((b-a)/2)*X[i]+(a+b)/2 for i in range(len(X))]
somme = 0
for i in range(len(X)):
somme = somme + W[i]*f(subd[i])
return ((b-a)/2) * somme
[/code]