【发布时间】:2018-12-12 04:01:23
【问题描述】:
我正在将一些 MATLAB 代码翻译成 Python。有一句话给我带来了一些麻烦:
[q,f_dummy,exitflag, output] = quadprog(H,f,-A,zeros(p*N,1),E,qm,[],[],q0,options);
我在 MATLAB 中查找了文档,发现 quadprog 函数用于优化(特别是最小化)。
我试图在 Python 中找到一个类似的函数(使用 numpy),但似乎没有。
有没有更好的方法将这行代码翻译成 Python?或者还有其他可以使用的包吗?我是否需要创建一个完成相同任务的新功能?
感谢您的时间和帮助!
【问题讨论】:
-
您查看过
scipy.optimize的内部吗? NumPy 只有处理数字数组的基本内容; SciPy 在其上构建了许多其他数学和科学内容,包括各种优化算法。 -
如果那里什么都没有,您将需要一个第三方库。通过快速搜索,有一个叫做
quadprog的东西,还有一个叫做 QuadProg++ 的 Python 绑定,我相信还有其他的。 (其中一些可能不是基于 NumPy 构建的。)但是到那时,这变成了一个库推荐问题,不幸的是 Stack Overflow 不是找到这些的地方。 -
最后一件事:如果您确实需要进行搜索,您可能首先要决定是否要实现 MATLAB 使用的相同二次规划算法(无论哪个是;我确定它已记录在案,然后您可以搜索该算法的 Python 实现),或者任何适用于您的数据的东西(在这种情况下,您可以尝试很多并查看)。
-
你看过 cvxpy,一个让你轻松实现凸优化(因此也是二次规划)的库吗?
标签: python matlab numpy optimization quadratic-programming