使用fsolve求解方程根时报numpy.ndarray对象不可调用错误如何解决
错误原因
你遇到的报错"numpy.ndarray" object is not callable是因为scipy.optimize.fsolve的第一个入参要求是可调用的函数对象,用于迭代过程中反复代入不同值计算输出,而你代码中直接计算了q的值(且此时还未定义变量t,本身就会先触发变量未定义错误),得到的q是numpy数组类型,无法被调用执行,因此触发报错。
修复方案
将表达式封装为接收参数t的函数即可,修复后代码如下:
import numpy as np from scipy.optimize import fsolve def q(t): return 3 * np.sin(t / np.sqrt(2)) - np.sin(t) root = fsolve(q, 4) print(root)
运行输出
[3.76957203]
内容的提问来源于stack exchange,提问作者Saqlain Afroz
相关产品推荐
相关产品推荐

