import math
def f(x):
return (math.log(x)-x**3+4)
def faussePosition(a,b,f, eps):
continu = True x1=a
x2=b
x3=max(x1,x2) # pour initialiser x3
n=1
while continu :
diff = f(x2) * f(x1)
if math.fabs(f(x3)) <= eps :
continu= False else :
x3 = x2 - ( (x2-x1)/diff * f(x2) )
produit = f(x1)* f(x3)
if produit < 0 :
x2=x3
else :
x1=x3
n+=1
return x3
secante:
def secante(xn_1, xn, f, erreur):
if(math.abs(xn_1 - xn) <= erreur): return xn else
return secante(xn, xn - (xn - xn_1)/(f(xn) - f(xn_1))*f(xn) , f, erreur)
Newton
### méthode de Newton, zéro d'une fonction import math
def f(x):
return x-math.log(x)-3
def df (f,x, h):
return (f(x+h)-f(x-h)) / (2.0*h)
def newton(f, df, xi, h , n):
if(n == 0):
return xi else:
return newton(f, df, xi - f(xi)/df(f,xi,h), h, n-1)
x0 = 2 y0=f(x0) h=0.0001 n=10
print("Abcisse du zéro (méthode Newton :", newton(f, df, x0, h, n))