代码块中的 lapack 库,边界值

lapack library in codeblocks, boundary value

我是德国学生,目前在读硕士论文。在我的硕士论文中,我正在代码块中编写 Fortran 代码。在我的代码中,我使用了一些 LAPACK 函数。

我需要有关在代码块软件中添加 LAPACK 库的帮助。我在互联网上搜索了很多,但找不到任何东西。如果你把上一个问题的所有源链接扩展给我就更好了。

在我的代码中,我需要求解以下方程组,{K}{p} = {m}

哪里

我计算了矢量 {m} 和矩阵 {K} 的所有元素,并且我有矢量 {p} 的一些已知值。是边值问题。

现在我只想找出向量元素的未知值 {p}

我应该使用哪个功能?
我浏览了在线提供的 LAPACK 手册,但找不到。

好吧,您没有仔细阅读文档 :) 您正在寻找线性方程的求解器。 http://www.netlib.org/lapack/lug/node38.html

请详细说明 complex/real double/float。身体不适?超过或低于确定或二次方?如果二次然后对称或上三角?带状?

人们会考虑多种不同的算法。运行时/稳定性/收敛行为非常不同,具体取决于 K。最稳定的是[x]gelsd。这是一种通过 SVD 的分而治之算法,并为您提供适当条件的摩尔彭罗斯广义逆。但它也是迄今为止最慢的算法。

顺便说一句,http://www.netlib.org/lapack/lug/node27.html,概述了所有通用求解器。

如果您已经有了一些 p 的值,您希望采用与直接反转不同的方法。如果您使用迭代方法(例如带正则化的共轭梯度最小二乘问题),情况会好很多。这在 Stoer、Bullirsch 的《数值分析导论》第 8.7 章(Conjugate-gradient Heestens 和 Stiefel 的方法)中进行了详细讨论。

网上有多种实现。你会在我博士期间写的一个库中找到一个:https://github.com/kvahed/codeare/blob/master/src/optimisation/CGLS.hpp