解决李雅普诺夫方程的图书馆


11

以下矩阵方程 Σ -对于给定的Ç矩阵-出现在我的作为协方差矩阵的特征的工作。我了解到,该方程式在Lyapunov方程式中尤其是在连续时间控制理论中广为人知,并且有多种众所周知的算法可以利用线性方程式的特殊性质来求解该方程式。

BΣ+ΣBT+C=0
Σ BC

通过谷歌搜索,我还了解到存在Matlab和Fortran实现。我发现了SLICOT和RECSY。由于许可问题,已经停止了对SLICOT源的访问。

我的大部分工作都是在R中实现的,由于无法找到求解器的R接口,我考虑自己编写一个。那么我的问题是,SLICOT是否是实现Lyapunov方程求解器的最佳可用Fortran(或C)库?我也对可以处理大型稀疏矩阵的实现感兴趣。 B


1
有多大和有多稀疏?您可能必须离开R才能在合理的时间内处理更大的问题。
Bill Barth 2012年

5
我可能不应该这样说,但是SLICOT 在这里可用。
维克托·刘

@BillBarth,尺寸约为1000,对角线和B非结构化,但可能非常稀疏,例如1%的非零条目。CB
NRH 2012年

Answers:


5

SLICOT是用于解决密集问题的工具。

对于大型但稀疏的系统,有用于MATLAB 的lyapack工具箱。

ZnZnHZnΣΣ

德国马格德堡的马克斯-普朗克研究所正在对稀疏的Lyapunov方程进行生动的研究。但是,即将发布lyapack的继任者MESS的公告已有很长时间了。尽管如此,还是有必要不时查看MESS的网页和主要作者的出版物。

免责声明:我的论文指导者是SLICOT和lyapack的主要贡献者,我经常与MESS的开发人员联系。


您是否可以加入chat.stackexchange.com/rooms/9031/lyapunov,有一些相关的问题。
Milind R

3

您可以使用this连接到MATLAB 。

您的矩阵不会太大:对算法进行手动编码不会造成太多的时间损失,也许会运行1个小时。它可能会或可能不会太长,具体取决于各种因素。

但是,自己编写代码可能并不容易。我认为我做不到,而且过去几个月来我一直在处理这个问题。但是SLICOT算法本身就在这里


3

SLICOT的算法并不那么复杂,它是对Schur形式的简化+一些反替代。您可以查看Bartels-Stewart的论文http://dl.acm.org/citation.cfm?id=361582,该论文可读性强,并解释了其工作原理。这篇文章是关于非对称情况的,但要使其适应对称的情况并不难-您只需要一种Schur形式而不是两种。

如果它已经具有Schur表单的例程,您可能还可以用R自己编写代码(我会检查自己,但是由于R的不幸的命名选择,要从Google那里获得有关R的有意义的结果总是很乱。)

这可以解决密集的情况。大型而稀疏的是一种技术。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.