Suite de l'exo / 2
Suite de l'exo / 2
Rebonsoir ou rebonjour,
Ceci est la deuxième 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.
C'est la dernière application :
https://www.cjoint.com/data/KAqaLqF2vH4_erreur.png
Voilà ce que j'ai fait pour la première question : https://www.cjoint.com/data/KAqa112w324_capture.png
Mais savez-vous pourquoi j'obitnes un message,d'erreur ? Ca m'énerve....
Merci par avance de vos explications qui éclairciront ma journée de samedi j'espère !
Ceci est la deuxième 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.
C'est la dernière application :
https://www.cjoint.com/data/KAqaLqF2vH4_erreur.png
Voilà ce que j'ai fait pour la première question : https://www.cjoint.com/data/KAqa112w324_capture.png
Mais savez-vous pourquoi j'obitnes un message,d'erreur ? Ca m'énerve....
Merci par avance de vos explications qui éclairciront ma journée de samedi j'espère !
-
- Messages : 10354
- Enregistré le : lun. 30 août 2010 11:15
Re: Suite de l'exo / 2
Bonjour,
peux-tu m'envoyer ton script afin que je l'exécute dans mon environnement Python ?
Cela me permettra éventuellement de voir où se situe le bug.
Bonne continuation
peux-tu m'envoyer ton script afin que je l'exécute dans mon environnement Python ?
Cela me permettra éventuellement de voir où se situe le bug.
Bonne continuation
Re: Suite de l'exo / 2
désolée pour l'attente de la réponse. . . .
OK voici le script : https://trinket.io/python3/8930115025
voyez vous à quoi est dû le bug ?
Merci bien.
OK voici le script : https://trinket.io/python3/8930115025
voyez vous à quoi est dû le bug ?
Merci bien.
-
- Messages : 10354
- Enregistré le : lun. 30 août 2010 11:15
Re: Suite de l'exo / 2
Bonjour,
il y a un problème de dimension : tu as un tableau numpy x qui contient 100 éléments et tu as y qui est un nombre seul.
Puis tu essaie de tracer y en fonction de x : cela ne peut pas aller.
Pour matplotlib, il faut avoir des listes/tableaux de même dimension donc il faut revoir ton tableau y.
Bonne continuation
il y a un problème de dimension : tu as un tableau numpy x qui contient 100 éléments et tu as y qui est un nombre seul.
Puis tu essaie de tracer y en fonction de x : cela ne peut pas aller.
Pour matplotlib, il faut avoir des listes/tableaux de même dimension donc il faut revoir ton tableau y.
Bonne continuation
Re: Suite de l'exo / 2
ok je comprends le problème merci
en fait le problème c'est que là on doit tracer une fonction avec les y en ordonnée et les x en abscisse.
D'habitude, si la fonction est x²+3x+4, je fais comme ça :
Mais là comment faire ? Car j'ai essayé de faire comme ça mais ça fonctionne pas....
Il faudrait faire une boucle for dans le y = ? Et calculer plusieurs fois les valeurs de erf avec Simpson ? Mais on aurait que pour quelques points...
en fait le problème c'est que là on doit tracer une fonction avec les y en ordonnée et les x en abscisse.
D'habitude, si la fonction est x²+3x+4, je fais comme ça :
Code : Tout sélectionner
x=np.linspace(-10,10,100)
y = (x∗∗2+3∗x+4)
plt.plot(x,y)
Il faudrait faire une boucle for dans le y = ? Et calculer plusieurs fois les valeurs de erf avec Simpson ? Mais on aurait que pour quelques points...
-
- Messages : 10354
- Enregistré le : lun. 30 août 2010 11:15
Re: Suite de l'exo / 2
Bonjour,
effectivement, lorsque l'on effectue ce type de calcul, cela forme bien deux tableaux de même dimension : ton x et y sont bien des tableaux.
Pour ton problème, on te dit de calculer l'intégrale de cette fonction sur l'intervalle \([0\,;\,u]\) pour \(u\) variant entre 0 et 2.
Donc cela te donne les valeurs à calculer :
par exemple :
Bonne continuation
effectivement, lorsque l'on effectue ce type de calcul, cela forme bien deux tableaux de même dimension : ton x et y sont bien des tableaux.
Pour ton problème, on te dit de calculer l'intégrale de cette fonction sur l'intervalle \([0\,;\,u]\) pour \(u\) variant entre 0 et 2.
Donc cela te donne les valeurs à calculer :
par exemple :
Code : Tout sélectionner
X = np.linspace(0,2,50)
Y = np.array([simpson(f,0,u,3) for u in X])
plot(X,Y)
Re: Suite de l'exo / 2
oh merci beaucoup, comme ça ça fonctionne !
Voici ce que j'obtiens : https://www.cjoint.com/data/KAtuWegp641 ... gendre.png
Est-ce que c'est correct ?
Et maintenant, comment tracer la fonction erf avec le module maths ?
Voici ce que j'obtiens : https://www.cjoint.com/data/KAtuWegp641 ... gendre.png
Est-ce que c'est correct ?
Et maintenant, comment tracer la fonction erf avec le module maths ?
-
- Messages : 10354
- Enregistré le : lun. 30 août 2010 11:15
Re: Suite de l'exo / 2
Cela marche un peu pareil :
qui donne :
Bonne continuation
Code : Tout sélectionner
Z = np.linspace(0,2,50)
T = np.array([math.erf(u) for u in Z])
plt.plot(Z,T)
plt.show()
Re: Suite de l'exo / 2
ok d'accord.
Alors pour la question "comparez les deux premiers résultats avec erf" : je dirais qu'il n'y a aucune différence entre les trois graphes. En tout cas je n'en vois aucune. Donc les deux premières fonctions, simpson et gauss-legendre, sont aussi pertinentes que la fonction erf.
Est-ce correct ?
Alors pour la question "comparez les deux premiers résultats avec erf" : je dirais qu'il n'y a aucune différence entre les trois graphes. En tout cas je n'en vois aucune. Donc les deux premières fonctions, simpson et gauss-legendre, sont aussi pertinentes que la fonction erf.
Est-ce correct ?
-
- Messages : 10354
- Enregistré le : lun. 30 août 2010 11:15
Re: Suite de l'exo / 2
Si tu superposes tes tracés,
les deux méthodes numériques sont identiques (en bleu et vert) mais le calcul de erf avec le module math est différent (en rouge).
À toi de trouver une explication.
Code : Tout sélectionner
f=lambda x:math.exp(-x**2)
X = np.linspace(0,2,50)
Y = np.array([Simpson(f,0,u,3) for u in X])
L = np.array([calc_int_gauss_legendre(f,0,u,3) for u in X])
#Z = np.linspace(0,2,50)
T = np.array([math.erf(u) for u in X])
plt.plot(X,T, color = 'red')
plt.plot(X,L, color = 'green')
plt.plot(X,Y, color = 'blue')
plt.show()
Re: Suite de l'exo / 2
j'ai fait des recherches et j'ai trouvé ce lien : http://userpages.irap.omp.eu/~rbelmont/ ... ration.pdf
mais ça nous donne pas d'infos sur les raisons des différences entre erf et les deux fonctions...
la fonction erf c'est la fonction d'erreur de Gauss. Mais donc ça voudrait dire que Python a une autre formule ?
J'ai l'impression de pédaler dans la semoule, je ne comprends pas...
mais ça nous donne pas d'infos sur les raisons des différences entre erf et les deux fonctions...
la fonction erf c'est la fonction d'erreur de Gauss. Mais donc ça voudrait dire que Python a une autre formule ?
J'ai l'impression de pédaler dans la semoule, je ne comprends pas...
-
- Messages : 10354
- Enregistré le : lun. 30 août 2010 11:15
Re: Suite de l'exo / 2
Bonjour,
Python utilise sûrement une autre méthode de calcul pour cette intégrale. Il faut chercher dans les définitions des fonctions dans le module math de Python pour trouver comment elle est construite.
Bonne continuation
Python utilise sûrement une autre méthode de calcul pour cette intégrale. Il faut chercher dans les définitions des fonctions dans le module math de Python pour trouver comment elle est construite.
Bonne continuation
Re: Suite de l'exo / 2
ça y est, avec l'exo sur fd et Reynolds, celui de cette page est le dernier à rendre avant ce soir....
J'espère vraiment pouvoir le finir.
Ici je n'ai pas trouvé de justification pour la différence entre ce que l'on trouve avec les programmes "maison" et ce qu'on a avec la fonction erreur de Python.
Avez-vous de votre côté une idée ? J'espère que oui, j'aimerais vraiment finir l'exercice....
MERCI.
J'espère vraiment pouvoir le finir.
Ici je n'ai pas trouvé de justification pour la différence entre ce que l'on trouve avec les programmes "maison" et ce qu'on a avec la fonction erreur de Python.
Avez-vous de votre côté une idée ? J'espère que oui, j'aimerais vraiment finir l'exercice....
MERCI.
-
- Messages : 10354
- Enregistré le : lun. 30 août 2010 11:15
Re: Suite de l'exo / 2
Non, je n'ai pas d'idée a priori, je t'avais conseillé de fouiller dans les docs de Python pour voir comment la fonction d'erreur est construire dans le module maths.
Tu peux toujours faire des hypothèses : c'est l'implémentation de erf dans Python qui a été optimisée...
Bonne continuation
Tu peux toujours faire des hypothèses : c'est l'implémentation de erf dans Python qui a été optimisée...
Bonne continuation
Re: Suite de l'exo / 2
ok merci, et où trouver les docs de Python ?