在python中找到vectorised函数的根

时间:2014-06-19 13:48:35

标签: python matlab optimization scipy vectorization

我已经将一些代码从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中找到矢量化函数根的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我不确定你所谈论的那个昂贵的功能到底是什么,但是numpy广播功能到数组中的每个元素(矢量化是免费的)。

所以你可以从昂贵的函数返回,如果它处理稀疏数组中的0元素。