代码块中的lapack库,边界值

时间:2018-06-28 09:09:43

标签: codeblocks lapack

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

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

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

哪里

  • {K} =矩阵
  • {p} =向量
  • {m} =向量

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

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

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

1 个答案:

答案 0 :(得分:1)

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

请进一步说明复数/实数双精度/浮点型。病了吗?是确定的还是平方的?如果是二次方然后对称的还是上三角的?带了吗?

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

btw,http://www.netlib.org/lapack/lug/node27.html,概述了所有通用求解器。

如果您已经拥有p的某些值,则您希望采用与直接倒置不同的路径。如果您使用带共轭化的共轭梯度最小二乘问题(例如共轭梯度最小二乘问题)的迭代方法,则情况会更好。这在Stoer,Bullirsch,《数值分析简介》第8.7章(Heestens和Stiefel的共轭梯度法)中进行了详细讨论。

在线有多种实现。您会在我读博士期间写的一个图书馆中找到一个https://github.com/kvahed/codeare/blob/master/src/optimisation/CGLS.hpp