Petit programme point fixe fonction.
Bonjour
Je souhaite réaliser un petit programme de teste de point fixe d'une fonction.
Voici le code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
import math as mt
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return -x(1+mt.exp(x)) + mt.exp(x)
def pointfixe(f, x0, xmax, eps):
itera = 0
x = 0
xt = {}
while itera < xmax:
try:
x = f(x0)
except OverflowError:
break
xt[itr] = x0
if abs(x - x0) <= eps:
return xt
x0 = x
itr += 1
return "Aucun point fixe"
def saisiretafficher():
xin = input('Enter le nombre ')
xmx = input('Enter le nombre maximum ')
try:
x0=int(xin)
xmax=int(xmx)
if x0 >=0 and xmax >=0:
print(pointfixe(f,x0,xmax, 0.0001))
else:
print('Votre nombre n\'est pas superieur à 0')
except ValueError:
print('Vous n\'avez pas entrer un de nombre')
saisiretafficher() |
Voici l'erreur que python signal.
Citation:
Traceback (most recent call last):
File "C:\Users\EDMOND\Documents\programme python\exo7.py", line 82, in <module>
saisiretafficher()
File "C:\Users\EDMOND\Documents\programme python\exo7.py", line 70, in saisiretafficher
print(pointfixe(f,x0,xmax, 0.0001))
File "C:\Users\EDMOND\Documents\programme python\exo7.py", line 37, in pointfixe
x = f(x0)
File "C:\Users\EDMOND\Documents\programme python\exo7.py", line 17, in f
return -x(1+mt.exp(x)) + mt.exp(x)
TypeError: 'int' object is not callable
Si j'ai bien compris, la fonction n'accepte pas d'entier.
J'ai essayé avec float, ça ne fonctionne pas non plus.
Que doit-je corriger dans la fonction saisiretafficher ?
A bientôt