Bonjour, je fais des exercices sur les zéros de fonctions. Je dois commencer par la méthode de la dichotomie et j'ai donc réalisé le programme ci dessous, mais il me renvoie 1, alors qu'il devrait me renvoyer "une liste des 50 premières valeurs de l'algorithme de dichotomie sous forme de chaines de caractères.".
La fonction a été définie et les bornes sont a=1 et b=2.
from math import*
from decimal import*
a=1
b=2
getcontext().prec=100
def f(x):
return (x**2)-2
def dichotomie(a,b,n):
for i in range(n):
m=(a+b)/2
if f(a)*f(m)<=0:
b=m
else:
a=m
return m
Je ne vois pas trop de quoi vous voulez parler...
from math import*
from decimal import*
a=1
b=2
getcontext().prec=100
def f(x):
return (x**2)-2
def dichotomie(a,b,n):
for i in range(n):
m=(a+b)/2
if f(a)*f(m)<=0:
b=m
else:
a=m
return m
def secante(a,b,n):
for i in range(n):
a=a-f(a)*(b-a)/(f(b)-f(a))
return a

# *** import ****************
# module specifique pour le systeme
import sys
# module pour le système d'exploitation
import os
# *** globals ***************
a = 0.0
b = 0.0
n = 0
# *** def *******************
def f(x):
return (x**2) - 2
def dichotomie(a, b, n) :
for i in range(n):
m = (a + b) / 2
print " a = % 10.6f n = % 10.6f b = % 10.6f" % (a, m, b)
if f(a) * f(m) <= 0 :
b = m
else :
a = m
return m
# *** main ******************
# effacement de l'ecran
os.system('cls')
print "\n"
a = float(input("entrez la borne inf. a : "))
b = float(input("entrez la borne sup. b : "))
n = int(input("entrez le nombre d'iterations n : "))
m = dichotomie(a, b, n)
Bonsoir.
Ta fonction retourne un nombre (la valeur de m après n itérations).
Salut bbomaths, a mon avis il n'y en a pas.
C'est juste tapé comme ça dans l'interpréteur.
Et la fonction renvoie 1 quand on tape ensuite
dichotomie(a, b, n)Verdurin, bonsoir.
C'est effectivement une bonne raison... Faudrait qu'ils apprennent à écrire des scripts pour éviter de tout réécrire...
Bonjour.
C'est normal d'avoir 1.
Le return "sort" de la fonction
Et donc la boucle n'est effectué qu'une fois.
Tu dois stocker tes valeurs dans une liste puis la retourner
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :