2

我需要在 python 中使用 lapack 函数 'DGGLSE' 来解决带有约束的最小二乘问题。

我发现 lapack 的一些低级功能可以在 scipy 中找到,如下所示 http://docs.scipy.org/doc/scipy/reference/linalg.lapack.html 但我感兴趣的没有包括在内,似乎大多数无论如何,lapack 的驱动程序代码不包括在内。

我想知道我是否有办法做到这一点。谢谢。-严

4

2 回答 2

1

我只有一点包装 Fortran 的经验,但据我了解,包装 SciPy 中尚未包含的 LAPACK 函数的标准方法是使用 NumPy 中包含的工具 f2py。一些基本说明可以在http://wiki.scipy.org/Cookbook/F2Py#head-9c22e0d6fa6b16650feea2c271233a8c47e8d051找到

你也可以通过 Cython 包装它。这样做,您编译 Fortran 文件并链接它,如http://fortran90.org/src/best-practices.html#interfacing-with-python所示, 它描述了如何使用 Cython 或 ctypes 进行包装Fortran 子程序。该特定示例可在https://github.com/certik/fortran90_question/tree/master/fcython_mesh在线获取 确保注意数组在内存中的排列方式(C 连续与 Fortran 连续)。

于 2013-08-13T04:08:50.843 回答
0

?GGLSE例程系列包含在 SciPy 1.0 版中。您可以先调用?gglse_lwork以获取硬件上的最佳块大小,然后将其用作?gglse.

您可以通过 ipython 控制台检查签名

scipy.linalg.lapack.dgglse?

或使用帮助等。

于 2018-01-18T17:43:00.297 回答