您在 (1 - b) 和 (7.864 ...) 之间缺少一个 *:
In [11]: from scipy.optimize import fsolve
...: import numpy as np
...:
...: u = lambda b : ((1 - b) * (7.864 - 5.336*b + 25.864*np.power(b,2) - 11.935*np.power(b,3) - 0.336*np.power(b,4))) - 6.164
...: # ^ MISSING HERE
...: fsolve(u,np.linspace(0,1,10))
...:
Out[11]:
array([0.20503009, 0.20503009, 0.20503009, 0.20503009, 0.20503009,
0.20503009, 0.20503009, 0.20503009, 0.20503009, 0.20503009])
因此出现错误TypeError: 'numpy.ndarray' object is not callable,这与尝试执行的操作相同:
In [12]: a
Out[12]: array(42)
In [13]: a()
TypeError: 'numpy.ndarray' object is not callable
In [14]: a(1)
TypeError: 'numpy.ndarray' object is not callable