Calculer plus vite une intégrale

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
duchere
Membre Relatif
Messages: 235
Enregistré le: 17 Juin 2006, 00:39

Calculer plus vite une intégrale

par duchere » 03 Juil 2006, 01:45

Bonjour, à la suite de l'étude du changement de variable, je me suis posé un petit problème...
Imaginons que notre seule possibilité pour calculer une intégrale soit d'utiliser un ordinateur et de faire "une somme de Riemann", c'est-à-dire de partitionner l'intervale d'intégration en N intervalles, et d'assimiler l'intégrale à le somme des aires des N carrés... Enfin.. on se comprend ? C'est Rieman quoi....

Cependant, notre ordinateur n'est pas super puissant et il ne peut sommer que 100 termes....

Le problème que nous nous posons est le suivant :
quelle est la meilleure stratégie de partition de l'intervale [a,b] d'intégration pour approcher au mieux la valeur de l'intégrale ?

Faut-il prendre un pas d'intégration constant égal à ?


Donner la formule d'une somme de 100 termes approchant le mieux l'intégrale de a à b de f(x) dx

Une première réponse :
C'est-à-dire un pas constant....

Cependant, il semble qu'il faut que le pas soit petit lorsque f varie fortement .... Non ?

Voili Voilo....

Je trouve ce problème sympa, non ?

Apportez vos réponses !



Sdec25
Membre Irrationnel
Messages: 1002
Enregistré le: 17 Juin 2006, 01:24

par Sdec25 » 03 Juil 2006, 01:55

Salut
Je pense comme toi qu'il faudrait faire varier le pas en fonction de la dérivée. En effet si la pente est faible on peut approcher l'intégrale pas un rectangle alors que si elle est forte l'approximation est moins bonne.
Le problème c'est que la dérivée est valable en un point, donc on ne connaît pas les variations juste après le point étudié et cette méthode peut amplifier encore plus les erreurs.
Enfin ça mérite d'être étudié. Pourquoi pas faire un petit programme en C et calculer le nombre d'itérations nécessaires pour avoir une précision suffisante :++:

duchere
Membre Relatif
Messages: 235
Enregistré le: 17 Juin 2006, 00:39

par duchere » 03 Juil 2006, 02:04

Ouais....
Ce problème mérite d'être posé il me semble....
mais en fait la dérivée ne pose pas vraiment de problème selon moi....
puisqu'il faut en fait faire varier le pas en fonction de f(a+ndt+dt)-f(a+ndt)...
Non ?

Jean

Sdec25
Membre Irrationnel
Messages: 1002
Enregistré le: 17 Juin 2006, 01:24

par Sdec25 » 03 Juil 2006, 02:06

Et la somme de Riemann va de 0 à 99 ou de 1 à 100, sinon on calcule l'aire d'un rectangle en trop !

La méthode des trapèzes (qui est égale à la moyenne des 2 sommes des rectangles) est quand-même plus précise.

duchere
Membre Relatif
Messages: 235
Enregistré le: 17 Juin 2006, 00:39

par duchere » 03 Juil 2006, 02:07

Oui en effet, c'est plus précis, c'est donc une seconde réponse...
Mais il est claire qu'il y a surement plus précis encore...
Il faut chercher la meilleure façon de faire varier le pas maintenant

Sdec25
Membre Irrationnel
Messages: 1002
Enregistré le: 17 Juin 2006, 01:24

par Sdec25 » 03 Juil 2006, 02:13

Ce qui m'embête avec la dérivée c'est que si on a une dérivée nulle, le pas sera grand, mais si la pente de la fonction change très rapidement on fera une erreur dans le calcul de l'intégrale.

A moins de faire un pas minimum très faible mais on perd l'intérêt de le faire varier.

duchere
Membre Relatif
Messages: 235
Enregistré le: 17 Juin 2006, 00:39

par duchere » 03 Juil 2006, 02:20

Oui, il faut réfléchir....

duchere
Membre Relatif
Messages: 235
Enregistré le: 17 Juin 2006, 00:39

par duchere » 03 Juil 2006, 02:23

Ce qu'on pourrait faire, c'est partitionner l'intervalle [a,b] en intervalles où la dérivée varie peu et dire que le pas dx sera dans cet intervalle inversement proportionnel à la valeur de la dérivée moyenne, et aussi inversement proprtionnel à la taille de l'intervalle.
Non ?
J'essaye de programmer ca pour voir si ca approche mieux ?

Jean

Sdec25
Membre Irrationnel
Messages: 1002
Enregistré le: 17 Juin 2006, 01:24

par Sdec25 » 03 Juil 2006, 02:29

Il faudrait essayer pour voir si ça apporte quelque chose.

Avatar de l’utilisateur
nuage
Membre Complexe
Messages: 2214
Enregistré le: 09 Fév 2006, 23:39

par nuage » 03 Juil 2006, 02:30

Salut,
et vous ne serez pas les premiers à réfléchir sur le sujet.
Je crois que Gauss à fait des choses là dessus, en tous cas ça a été étudié. Je vous conseille une recherche sur google.
Je pense aussi à Legendre.

Tout ça sans garanties.

A+

duchere
Membre Relatif
Messages: 235
Enregistré le: 17 Juin 2006, 00:39

par duchere » 03 Juil 2006, 02:31

Merci !
J'irai voir....
Mais j'aime d'abord chercher sans l'aide des génis....
C'est ce que conseillent les profs souvent....

Jean

Avatar de l’utilisateur
nuage
Membre Complexe
Messages: 2214
Enregistré le: 09 Fév 2006, 23:39

par nuage » 03 Juil 2006, 02:57

duchere a écrit:Merci !
J'irai voir....
Mais j'aime d'abord chercher sans l'aide des génis....
C'est ce que conseillent les profs souvent....

Jean

Bravo, tu profiteras mieux de leurs travaux.

duchere
Membre Relatif
Messages: 235
Enregistré le: 17 Juin 2006, 00:39

par duchere » 03 Juil 2006, 03:03

Bonne nuit

Sdec25
Membre Irrationnel
Messages: 1002
Enregistré le: 17 Juin 2006, 01:24

par Sdec25 » 03 Juil 2006, 03:03

J'ai fait quelques petits essais sur une fonction monotone (x² pour x>0).

Avec un pas variable théoriquement ça marche mieux (la dérivée est positive et croissante) et en effet on a une meilleure précision mais je ne sais pas encore ce que ça donne sur des autres fonctions et le gain en précision est très faible.

nox
Membre Complexe
Messages: 2157
Enregistré le: 14 Juin 2006, 10:32

par nox » 03 Juil 2006, 09:01

meilleure méthode pour ca selon moi -> Runge Kutta (4 par exemple)

mais c'est vrai que c'est plus intéressant de chercher par soi même avant ^^

buzard
Membre Relatif
Messages: 274
Enregistré le: 22 Mai 2006, 15:29

par buzard » 03 Juil 2006, 10:27

En faite cette approche est un peu inutile. Quand on y regarde de plus pres, les variation d'une somme de Riemann ne dépende que trés peu du pas de la subdivision. Contrairement au choix du c_i dans chaque subdivision (c'est à dire l'approximation de la valeur moyenne de f sur chaque subdivision); et de la finesse de la subdivision.

Pour etre plus simple les majorations des erreurs commisent sont calculés en fonction de la taille de la subdivision, et du pas (=sup a_i-a_i-1) de ce dernier.
Tu peut bien sure essayer d'exprimer l'erreur en fonction de chaque (a_i-a_i-1) mais c'est vraiment ridicule.

En générale c'est également plus simple d'augmenter la taille de la subdivision. Sinon quand tu reflechis un peu à la question tu remarque que :

Somme de Riemann = integrale d'une fonction constante par morceaux
Somme de Simpson = integrale d'une fonction affine par morceaux

en extrapolant il s'agit d'approximer la fonction par d'autre dont on sais prendre l'integrale. Donc meilleur est la fonction approximante plus précise sera la somme. Avec une approximation par des polynomes de degré 2 le gain en précision est déjà consequent.

duchere
Membre Relatif
Messages: 235
Enregistré le: 17 Juin 2006, 00:39

par duchere » 03 Juil 2006, 12:00

La question que tu soulèves est justement celle que je m'étais posée il y a une semaine sur ce forum....
Ne pourrait-on pas approximer la fonction par son développement limité, et sommer toutes ces aires qu'on sait calculer puisque nous connaissons la primitive d'un polynome, non ?

Jean

duchere
Membre Relatif
Messages: 235
Enregistré le: 17 Juin 2006, 00:39

par duchere » 03 Juil 2006, 12:36

J'ai aussi testé pour x^2 entre 0 et 5
En 1000 coups, j'obtiens 41.61 avec la méthode classique
41.63 avec la méthode dx variable....
Un peu nul quand même.... :)

Jean

nox
Membre Complexe
Messages: 2157
Enregistré le: 14 Juin 2006, 10:32

par nox » 03 Juil 2006, 12:56

quelle méthode dx variable?

Sdec25
Membre Irrationnel
Messages: 1002
Enregistré le: 17 Juin 2006, 01:24

par Sdec25 » 03 Juil 2006, 13:26

Moi j'ai essayé en changeant le pas comme ça : pas=epsilon / |f'(x)| avec par exemple epsilon=0.001 et un pas minimum
Et c'est vrai que c'est pas terrible.

On pourrait très bien utiliser le développement limité de f et l'intégrer mais ça revient à calculer une primitive. Nous ce qu'on veut c'est bien calculer directement l'aire ?

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 20 invités

cron

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite