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

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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   Statut Contributeur Dernière intervention   2 485
 
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
 
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   Statut Contributeur Dernière intervention   2 485
 
lis ;)
0
Utilisateur anonyme
 
Oui, j'utilise python 3.3.2 ^^ désolé j'ai pas précisé
0