Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(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.

x1,x2=EncadrerSolution(2)
print(x1,x2)

2. Plus court serait :

print(EncadrerSolution(2))

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

 P=f(a)*f(m)

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.

Pied de page des forums