Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
Discussion fermée
#1 13-11-2018 20:25:42
- erichof
- Membre
- Inscription : 26-08-2011
- Messages : 29
algorithme dichotomie
Bonsoir,
je reviens vers vous à propos de l'algorithme de dichotomie "amélioré" pour une fonction polynôme de degré 4 qui admet deux racines sur R.
Avec EDUPYTHON et j'ai essayé de ne plus faire d'erreur d'indentation:
from lycee import *
def f(x):
return (3*x**4-4*x**3-12*x**2+14)
def EncadrerSolution(n):
a=1.0
b=2.0
while b-a>10**(-n):
m=(a+b)/2
P=f(a)*f(m)
if P<0:
b=m
else:
a=m
return (a,b)
EncadrerSolution(2)
print(a,b)
Il ne fonctionne pas. Je ne comprends pas pourquoi il ne me donne pas un encadrement de la première racine d'amplitude 0,01.
Merci de votre aide,
C.
Hors ligne
#2 13-11-2018 21:24:07
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 948
Re : algorithme dichotomie
Re,
Normal, ta fonction Encadrer renvoie bien a et b grâce au return mais ces valeurs ne sont pas récupérées...
Deux solutions
1. Pour te rappeler que a et b dans la fonction sont des variables locales et que tu les récupères sous n'importe quels noms.
print(x1,x2)
2. Plus court serait :
qui afficherait les valeurs retournées mais ne te permettrait pas de les réutiliser.
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#3 14-11-2018 12:15:59
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 948
Re : algorithme dichotomie
Bonjour,
a et b dans la fonction sont des variables locales
J'entends par là qu'elles ne sont connues que de ta seule fonction : ni dans une autre, ni dans le corps du prg :
Avec
1. Tu fais deux appels à la fonction f(x) et tu récupères (plus ou moins) les deux appels.
2. Python calcule f(a) puis f(m) en stockant en mémoire f(a), puis f(m) pour récupérer le produit des deux dans P : c'est pour cela que ça marche...
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#4 14-11-2018 18:14:29
- C.
- Invité
Re : algorithme dichotomie
Merci infiniment pour vos réponses, très claires, très détaillées.
Vous êtes trop fort !
C.
Pages : 1
Discussion fermée