Lyapunov denklemini çözmek için kütüphaneler


11

Aşağıdaki matris denklemi in Σ - verilen B ve C matrisleri için - çalışmamda bir kovaryans matrisinin karakterizasyonu olarak görünüyor. Bu denklemin, özellikle sürekli zaman kontrol teorisinde, Lyapunov denklemi olarak bilindiğini ve çözülmesi için bu lineer denklemin özel doğasını kullanan çeşitli iyi bilinen algoritmaların bulunduğunu öğrendim .

BΣ+ΣBT+C=0
Σ BC

Google'dan, Matlab ve Fortran uygulamalarının da olduğunu öğrendim. SLICOT ve RECSY buldum. Ancak lisans sorunları nedeniyle SLICOT kaynağına erişim durduruldu.

İşlerimin çoğu R'de uygulandı ve bir çözücüye R arayüzü bulamadığım için kendim yazmayı düşünüyorum. Benim sorum o zaman SLICOT, Lyapunov denkleminin bir çözücüsünün uygulanması ile mevcut en iyi Fortran (veya C) kütüphanesi mi? Ayrıca büyük seyrek matrislerini işleyebilen uygulamalarla da ilgileniyorum . B


1
Ne kadar büyük ve ne kadar seyrek? Makul sürede daha büyük problemlerle başa çıkmak için R'den uzaklaşmanız gerekebilir.
Bill Barth

5
Muhtemelen bunu söylememeliyim, ama SLICOT burada mevcut .
Victor Liu

@BillBarth, boyutlar 1000, diyagonal ve B yapılandırılmamış ama potansiyel olarak çok seyrek,% 1 sıfır olmayan girişler söylüyorlar. CB
NRH

Yanıtlar:


5

SLICOT yoğun problemler için kullanılacak bir araçtır.

Büyük ancak seyrek sistemlerde MATLAB için lyapack araç kutusu vardır .

ZnZnHZnΣΣ

Almanya, Magdeburg'daki Max-Planck Enstitüsü'nde seyrek Lyapunov denklemleri üzerine canlı bir araştırma var. Bununla birlikte, Lyapack'in müteşekkirinin (MESS) piyasaya sürülmesinin açıklaması birkaç yaşında. Bununla birlikte, zaman zaman MESS'in web sayfasını ve katkıda bulunan yazarların yayınlarını kontrol etmeye değer .

Feragatname: Tez danışmanım hem SLICOT hem de lyapack için önemli bir katkı sağlıyor ve MESS'in geliştiricileriyle düzenli temas halindeyim.


Chat.stackexchange.com/rooms/9031/lyapunov 'a katılabilir , ilgili bazı sorularınız olabilir.
Milind R

3

Sen kullanarak MATLAB'a bağlanabilir bu .

Matrisleriniz çok büyük değil: algoritmaları elle kodlamak çok fazla zaman kaybına neden olmamalıdır, belki 1 saat çalışacaktır. Çeşitli faktörlere bağlı olarak çok uzun olabilir veya olmayabilir.

Yine de, kendiniz kodlamak hiç de kolay olmayabilir. Yapabileceğimi sanmıyorum ve son birkaç aydır bununla uğraşıyorum. Ancak SLICOT algoritmasının kendisi burada .


3

SLICOT'un algoritması o kadar karmaşık değil, Schur formunda bir azalma + bir miktar geri değiştirme. Bartels-Stewart belgesini http://dl.acm.org/citation.cfm?id=361582 okuyabilirsiniz. Makul okunabilir ve nasıl çalıştığını açıklar. Kağıt simetrik olmayan durumla ilgili, ancak simetrik olana uyarlamak zor olmamalı - iki yerine bir Schur formuna ihtiyacınız var.

Zaten Schur formu için bir rutin varsa kendiniz de kodlayabilirsiniz (kendimi kontrol ederim, ancak talihsiz adlandırma seçenekleri nedeniyle R'den Google hakkında anlamlı sonuçlar almak her zaman bir karışıklıktır).

Bu yoğun davayı çözebilir. Büyük ve seyrek olan daha teknik.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.