Bonjour
Je souhaite réaliser un petit programme de teste de point fixe d'une fonction.
Voici le code.
Voici l'erreur que python signal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()
Si j'ai bien compris, la fonction n'accepte pas d'entier.
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
J'ai essayé avec float, ça ne fonctionne pas non plus.
Que doit-je corriger dans la fonction saisiretafficher ?
A bientôt
Partager