# -*- coding: utf-8 -*- """ Created on Wed Dec 17 12:05:23 2014 @author: grivet Listing 5.1 : Méthode de dichotomie ou de bissection pour résoudre une équation non-linéaire """ from pylab import * NITMAX = 20;TOL = 1E-2 def fn(x): return x**2 - cos(x) nit = 0 xg = float(input("valeur à gauche: " )) xd = float(input("valeur à droite: ")) fg = fn(xg); fd = fn(xd) print ('xg: %8.4f fg! %8.4f xd! %8.4f fd: %8.4f' %(xg,fg,xd,fd)) while (nit < NITMAX) & (abs(xd - xg) > TOL): xm = 0.5*(xg+xd); fm = fn(xm); if fm*fg < 0: xd = xm; fd = fm; else: xg = xm; fg = fm; print ("%d %10.6f %10.6f" %(nit,xg,xd)) nit = nit+1 print ('\n racine: ', 0.5*(xg+xd))