我已经将一些代码从matlab移植到python。
部分代码找到了向量化函数的根,调用起来很昂贵。
在matlab中,使用JacobPattern选项可以有效地实现这一目标。通过使用此选项,求解器知道返回向量的第n个元素仅取决于参数向量的第n个元素。
options = optimset('Algorithm','trust-region-reflective','JacobPattern',speye(lengthOfArgument));
roots = fsolve(@VectorisedFunction, initialGuesses, options);
matlab中的矢量化速度提高了大约100倍,我希望在python中可以实现类似的效果。我一直在看scipy.optimization,但找不到JacobPattern的等价物。
所以我问:在python中找到矢量化函数根的最佳方法是什么?
答案 0 :(得分:0)
我不确定你所谈论的那个昂贵的功能到底是什么,但是numpy广播功能到数组中的每个元素(矢量化是免费的)。
所以你可以从昂贵的函数返回,如果它处理稀疏数组中的0元素。