Бібліотеки для розв’язання рівняння Ляпунова


11

Наступне матричне рівняння в для заданих матриць і з'являється в моїй роботі як характеристика матриці коваріації. Я дізнався, що це рівняння відоме, зокрема, в теорії безперервного керування часом, як рівняння Ляпунова , і що існують різні добре відомі алгоритми його вирішення, які використовують особливості цього лінійного рівняння. Σ - B C -

BΣ+ΣBT+C=0
Σ BC

З googling я також дізнався, що існують Matlab та Fortran. Я знайшов SLICOT та RECSY. Через проблеми з ліцензуванням доступ до джерела SLICOT припинено.

Більша частина моєї роботи реалізована в R, і оскільки мені не вдалося знайти інтерфейс R для вирішувача, я вважаю, що я можу написати її самостійно. Моє запитання полягає в тому, чи SLICOT є найкращою доступною бібліотекою Fortran (або C) з реалізацією рівняння рівня Ляпунова? Мене також цікавлять реалізації, які можуть обробляти великі рідкі матриці B


1
Наскільки великі і як рідкісні? Можливо, вам доведеться відійти від R, щоб вирішити більші проблеми в розумний час.
Білл Барт

5
Я, мабуть, не повинен цього говорити, але SLICOT доступний тут .
Віктор Лю

@BillBarth, наприклад, розміри в порядку 1000, діагоналі і B неструктуровані, але потенційно дуже рідкі, 1% ненульових записів, скажімо. CB
NRH

Відповіді:


5

SLICOT - це інструмент, який можна використовувати для вирішення проблем.

Для великої, але розрідженої системи існує пакет інструментів lyapack для MATLAB.

Алгоритми ляпака базуються на обчисленні ітераційно низьких рангових факторів , так що Z H n Z n наближається до Σ , де Σ - симетричне (позитивне чи негативне) певне рішення рівняння Ляпунова. Обчислення лише факторів у поєднанні з малою мірою коефіцієнтів робить цей підхід можливим для рівнянь великого масштабу.ZnZnHZnΣΣ

В Інституті Макса-Планка в Магдебурзі, Німеччина, тривають яскраві дослідження щодо рідких рівнянь Ляпунова. Однак оголошення про майбутній реліз спадкоємця ляпака - MESS - вже досить багато років. Тим не менше, варто час від часу перевіряти веб-сторінку MESS та публікації авторів-учасників.

Відмова: Мій керівник дипломної роботи є головним учасником як SLICOT, так і ляпака, і я регулярно контактую з розробниками MESS.


Чи можете ви приєднатись до chat.stackexchange.com/rooms/9031/lyapunov , маєте кілька пов’язаних питань.
Milind R

3

Ви можете підключитися до MATLAB за допомогою цього .

Ваші матриці не надто великі: ручне кодування алгоритмів не повинно призводити до занадто великих втрат часу, можливо, воно буде працювати протягом 1 години. Це може бути або не занадто довгим, залежно від різних факторів.

Хоча кодувати це самостійно може зовсім не просто. Я не думаю, що можу, і я займався цим останніми місяцями. Але сам алгоритм SLICOT є тут .


3

Алгоритм SLICOT не такий складний, це зведення до форми Шура + деяка зворотна заміна. Ви можете перевірити документ Bartels-Stewart http://dl.acm.org/citation.cfm?id=361582, який можна легко читати, і пояснює, як це працює. У статті йдеться про несиметричний випадок, але його не повинно бути важким, щоб адаптувати його до симетричного --- вам потрібна одна форма Шура замість двох.

Ви, ймовірно, можете також кодувати його самостійно в R, якщо в ньому вже є звичайна форма для Шура (я б перевірив себе, але це завжди безлад, щоб отримати значущі результати щодо R поза Google, оскільки через їх невдалий вибір імен).

Це могло б вирішити щільну справу. Великий і розріджений - більш технічний.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.