Suite de l'exo

Retrouver tous les sujets résolus.
Invité

Suite de l'exo

Message par Invité » sam. 16 janv. 2021 01:30

Rebonsoir ou rebonjour,

Ceci est la suite du sujet : https://sosmath.ac-poitiers.fr/viewtopi ... =9&t=19830
Je remets le sujet en dessous et il faut s'aider des programmes qui sont sur l'autre sujet.

https://www.cjoint.com/data/KAfbZLGARjH ... verses.png

Je poste ce message à propos de l'application 2 : dans celle-là, comment peut-on utiliser une des deux méthodes programmées ?
Je pense qu'il faut utiliser la relation V=d/t, donc t=d/V.

Mais pourquoi on aurait besoin des deux méthodes ? Comme d=100, il ne suffit pas de calculer t=100/V, avec V la vitesse donnée dans l'énoncé ?

Merci par avance de vos explications qui éclaircir ma journée de samedi j'espère !
sos-math(21)
Messages : 10352
Enregistré le : lun. 30 août 2010 11:15

Re: Suite de l'exo

Message par sos-math(21) » sam. 16 janv. 2021 10:26

Bonjour,
dans ton cas ici, il faut raisonner de manière infinitésimale : tu as \(dx=V(x) dt\) donc \(dt=\dfrac{dx}{V(x)}\) donc ce qui signifie qu'il faut calculer l'intégrale \(\displaystyle \int_{}^{}\dfrac{dx}{V(x)}\) pour obtenir le temps et donc faire appel aux méthodes d'intégration numérique.
Bonne mise en œuvre
Invité

Re: Suite de l'exo

Message par Invité » sam. 16 janv. 2021 19:21

D'accord, merci je comprends mieux.

Par contre quelles sont les bornes de l'intégrale ?
a=0 et b=100 ?

Et on prend combien pour n ?
sos-math(21)
Messages : 10352
Enregistré le : lun. 30 août 2010 11:15

Re: Suite de l'exo

Message par sos-math(21) » sam. 16 janv. 2021 19:57

Tout est dans l'énoncé : entre 0 et 100, avec 5 points d'intégration.
Bonne continuation
Invité

Re: Suite de l'exo

Message par Invité » mar. 19 janv. 2021 18:33

Bonjour merci

mais quand j'exécute mon script j'obtiens une erreur...
Savez-vous pourquoi et quoi faire pour l'éliminier ?

Voici mon code :

https://trinket.io/python3/fb7c485384

Que ne va t il pas ?

merci
sos-math(21)
Messages : 10352
Enregistré le : lun. 30 août 2010 11:15

Re: Suite de l'exo

Message par sos-math(21) » mar. 19 janv. 2021 20:00

Bonjour,
le problème vient de ton appel de fonction et des crochets que tu as mis dans ta fonction :

Code : Tout sélectionner

print(Simpson_composite(lambda x : 1/[360*math.sqrt(1+3*math.exp(-x/15)*(1+math.cos(x/5)))],a,b,n))
Python interprète ces crochets comme une liste, ce qui rend ta fonction inintelligible pour lui : quotient d'un nombre et d'une liste ?
Mets des parenthèses à la place et réessaie.
J'ai corrigé :

Code : Tout sélectionner

a=0
b=100
n=5

def Simpson_composite (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

print(Simpson_composite(lambda x : 1/(360*math.sqrt(1+3*math.exp(-x/15)*(1+math.cos(x/5)))),a,b,n))

def calc_int_gauss_legendre(f,a,b,n):
    X = list(np.polynomial.legendre.leggauss(n)[0])
    W = list(np.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

print(calc_int_gauss_legendre(lambda x : 1/(360*math.sqrt(1+3*math.exp(-x/15)*(1+math.cos(x/5)))),a,b,n))

et j'obtiens : Bonne correction
Invité

Re: Suite de l'exo

Message par Invité » mar. 19 janv. 2021 20:03

ah d'accord en fait je dois juste modifier les crochets par des parenthèses simples ?
sos-math(21)
Messages : 10352
Enregistré le : lun. 30 août 2010 11:15

Re: Suite de l'exo

Message par sos-math(21) » mar. 19 janv. 2021 20:06

Bonjour,
oui, j'ai corrigé les deux appels :

Code : Tout sélectionner

a=0
b=100
n=5

def Simpson_composite (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

print(Simpson_composite(lambda x : 1/(360*math.sqrt(1+3*math.exp(-x/15)*(1+math.cos(x/5)))),a,b,n))

def calc_int_gauss_legendre(f,a,b,n):
    X = list(np.polynomial.legendre.leggauss(n)[0])
    W = list(np.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

print(calc_int_gauss_legendre(lambda x : 1/(360*math.sqrt(1+3*math.exp(-x/15)*(1+math.cos(x/5)))),a,b,n))
et j'obtiens :

Code : Tout sélectionner

0.24686386428603677
0.24590776364602426
Bonne continuation
Invité

Re: Suite de l'exo

Message par Invité » mar. 19 janv. 2021 20:08

ok merci !

c'est ce que j'ai aussi.

Par contre 0.24686386428603677 et 0.24590776364602426 ce sont des temps d'arrivées en minute ou en heure ?

Comment le savoir ?
sos-math(21)
Messages : 10352
Enregistré le : lun. 30 août 2010 11:15

Re: Suite de l'exo

Message par sos-math(21) » mar. 19 janv. 2021 20:12

Bonjour,
regarde dans ton énoncé, on te donne forcément des unités pour les grandeurs étudiées.
Bonne continuation
Invité

Re: Suite de l'exo

Message par Invité » mar. 19 janv. 2021 20:14

la seule chose qu'on sait c'est que g est en km/h²...

Donc c'est en heures ?
sos-math(21)
Messages : 10352
Enregistré le : lun. 30 août 2010 11:15

Re: Suite de l'exo

Message par sos-math(21) » mar. 19 janv. 2021 20:28

Bonjour,
il faut vraiment apprendre à lire un énoncé, cela me semble important :
Capture.PNG
Ta réponse sera donc en heures mais ton professeur attend que tu la convertisses en minutes.
Bonne conclusion
Invité

Re: Suite de l'exo

Message par Invité » mar. 19 janv. 2021 21:59

Ok oui c'est vrai, donc en fait on a juste à multiplier par 60 ?

Et pour la deuxième question, à quoi fait allusion ma prof quand elle parle de convergence des méthodes ?
sos-math(21)
Messages : 10352
Enregistré le : lun. 30 août 2010 11:15

Re: Suite de l'exo

Message par sos-math(21) » mar. 19 janv. 2021 22:03

Oui, c'est cela.
Selon moi, la convergence des méthodes signifie que les méthodes d'intégration numérique convergent vers une même valeur lorsque \(n\) tend vers \(+\infty\) : tes deux réponses sont très proches et si tu augmentes la valeur de \(n\), elles doivent encore plus se rapprocher...
Bonne conclusion
Invité

Re: Suite de l'exo

Message par Invité » mar. 19 janv. 2021 22:12

d'accord

mais du coup puisqu'ils disent de comparer la convergence des deux méthodes, il doit y avoir une méthode qui converge plus vite / mieux que l'autre ?

Quels tests dois-je faire pour savoir cela ?

merci très bonne soirée à vous
Répondre