Bonjour,
Il s'agissait d'étudier la suite définie par I(n)=integrale(x^n*exp(x^2),x,0,1).
Sous xcas et un ordi assez ancien vista, il me faut 137 secondes pour calculer une valeur approchée de I(16). Pour les autres valeurs (d'indices pairs), j'ai renoncé.
Y-a-t-il a priori une raison à cela? Je sais bien que les fonctions, dans le cas où n est un exposant pair, n'admettent pas de primitives qui puissent simplement s'exprimer à l'aide des fonctions usuelles. Mais pour un calcul approché, ce n'est pas le problème. A moins que le calcul exact ne soit tenté avant l'approximation?
Merci de m'éclairer,
Evariste
exercice de bac centres étrangers
Modérateur : xcasadmin
Re: exercice de bac centres étrangers
oui, le calcul exact est tente avant approximation. Pour l'eviter on peut faire:
Il faudra que je regarde pourquoi la recherche de primitive exacte prend tant de temps...
Code : Tout sélectionner
I(n):=evalf(Int(x^n*exp(x^2),x,0,1))
ou
I(n):=int(x^n*exp(x^2),x,0,1.0)
ou
I(n):=romberg(x^n*exp(x^2),x,0,1)
Re: exercice de bac centres étrangers
Bonjour,
Il est facile de voir que i(0) ne peut pas être calculée exactement: la fonction à intégrer ne possède pas de primitives s'exprimant à l'aide des fonctions usuelles.
Par ailleurs, un intégration par parties montre que:
i(n+2)=e/2 - (n+1)/2*i(n).
Les problèmes de calcul que l'on rencontre pour i(0) se répercutent pour i(2p) de proche en proche.
Les termes de rang impair se calculent par contre facilement de proche en proche et de façon exacte.
Mais si on programme la formule de récurrence dans le tableur, on assiste à une explosion des erreurs d'arrondis. Les suites sont de la forme
i(2p+1)=a(2p+1)*e+b(2p+1) avec a(2p) divergeant rapidement vers l'infini. En mode approché, on comprend que une petite erreur sur e au départ entraine une erreur plus grande assez rapidement;
i(2p)=a(2p)*e+c(2p)*I(0) avec les mêmes remarques.
Bien cordialement,
Evariste
Il est facile de voir que i(0) ne peut pas être calculée exactement: la fonction à intégrer ne possède pas de primitives s'exprimant à l'aide des fonctions usuelles.
Par ailleurs, un intégration par parties montre que:
i(n+2)=e/2 - (n+1)/2*i(n).
Les problèmes de calcul que l'on rencontre pour i(0) se répercutent pour i(2p) de proche en proche.
Les termes de rang impair se calculent par contre facilement de proche en proche et de façon exacte.
Mais si on programme la formule de récurrence dans le tableur, on assiste à une explosion des erreurs d'arrondis. Les suites sont de la forme
i(2p+1)=a(2p+1)*e+b(2p+1) avec a(2p) divergeant rapidement vers l'infini. En mode approché, on comprend que une petite erreur sur e au départ entraine une erreur plus grande assez rapidement;
i(2p)=a(2p)*e+c(2p)*I(0) avec les mêmes remarques.
Bien cordialement,
Evariste
Re: exercice de bac centres étrangers
je ne connais pas de preuve simple que exp(x^2) n'a pas de primitives avec les fonctions usuelles (seulement en passant par la theorie d'integration de Risch, pas trivial donc).
J'ai corrige le probleme d'efficacite, maintenant int(exp(x^2)*x^14) se renvoie non evalue rapidement.
J'ai corrige le probleme d'efficacite, maintenant int(exp(x^2)*x^14) se renvoie non evalue rapidement.
Re: exercice de bac centres étrangers
C'est une bonne chose que cela soit renvoyé rapidement...
Je ne connais pas de preuve simple non plus de ce résultat, même je ne me souviens pas en avoir croisée dans mes études.
Ci-joint un lien intéressant, mais qui place la barre assez haut pour justifier le résultat
http://denisfeldmann.fr/PDF/liou.pdf
Bien cordialement,
Evariste
PS: j'imagine que la nouvelle version sera disponible rapidement?
Je ne connais pas de preuve simple non plus de ce résultat, même je ne me souviens pas en avoir croisée dans mes études.
Ci-joint un lien intéressant, mais qui place la barre assez haut pour justifier le résultat
http://denisfeldmann.fr/PDF/liou.pdf
Bien cordialement,
Evariste
PS: j'imagine que la nouvelle version sera disponible rapidement?
Re: exercice de bac centres étrangers
Elle l'est deja pour linux 32 bits et windows (la version linux 32 bits a un petit bug de doc, il faut recreer l'index de l'aide, je pense renvoyer une version corrigee rapidement).
Pour la preuve de Risch, vous pouvez aussi regarder dans la doc de xcas, dans Aide->Manuels->Algorithme, chapitre 9, c'est dans l'implementation de l'algo de Risch qu'il y avait un passage inefficace.
Pour la preuve de Risch, vous pouvez aussi regarder dans la doc de xcas, dans Aide->Manuels->Algorithme, chapitre 9, c'est dans l'implementation de l'algo de Risch qu'il y avait un passage inefficace.
Re: exercice de bac centres étrangers
Merci de votre rapide correction!
Bien cordialement,
Evariste
Bien cordialement,
Evariste