Résolution intégrale - Méthode Trapèzes

Résolu/Fermé
Utilisateur anonyme - Modifié par Juloblairot le 22/10/2015 à 19:58
 Utilisateur anonyme - 22 oct. 2015 à 20:36
Bonjour tout le monde !

J'ai un programme à faire de résolution intégrale par la méthode des trapèzes.

J'ai fait un programme, je ne comprend pas pourquoi il ne fonctionne pas

def moyenne2(f,a,b,h):
    aire=0
    x=0
    for i in range(a,b):
        aire+=h*(f(x)+(f(x+h)-f(x))/2) ##méthode des trapèzes : (xk+1-xk)*f(xk) (aire du rectangle) + {(xk+1 - xk)*[f(xk+1)-f(xk)]}/2 (aire du triangle)
        x+=h
    return (1/b)*aire


J'ai définit a côté une fonction cosinus ou sinus pour vérifier
from math import cos,sin
def f(x):
    return cos(x)


J'ai lancé le programme pour moyenne2(f,0,400,0.2). Pour cosinus ca me renvoie bien quelque chose proche de 0. Mais pour f(x)=cos(x)+2, ca ne me renvoie pas 2 ^^

Merci de l'aide apportée !

N'essaie pas, fais le ou ne le fais pas.
A voir également:

2 réponses

dsy73 Messages postés 9252 Date d'inscription dimanche 22 août 2010 Statut Contributeur Dernière intervention 23 octobre 2020 2 476
22 oct. 2015 à 20:06
Salut
je n'y connais rien en math mais si tu utilises Python version 2.x alors il faut lire la chapitre sur les types
Python 2.x effectue une division euclidienne.
0
Utilisateur anonyme
22 oct. 2015 à 20:11
Salut !

Tu penses que l'erreur vient d'une des divisions ? Dans ce cas ca afficherait une erreur plutôt qu'un résultat faux non ?
0
dsy73 Messages postés 9252 Date d'inscription dimanche 22 août 2010 Statut Contributeur Dernière intervention 23 octobre 2020 2 476
22 oct. 2015 à 20:26
lis ;)
0
Utilisateur anonyme
22 oct. 2015 à 20:36
Oui, j'utilise python 3.3.2 ^^ désolé j'ai pas précisé
0