ห้องสมุดสำหรับแก้สมการของ Lyapunov


11

สมการเมทริกซ์ต่อไปนี้ ในสำหรับเมทริกซ์และปรากฏในงานของฉันเป็นลักษณะของเมทริกซ์ความแปรปรวนร่วม ฉันได้เรียนรู้ว่าสมการนี้เป็นที่รู้จักโดยเฉพาะอย่างยิ่งในทฤษฎีการควบคุมเวลาต่อเนื่องในฐานะสมการของ Lyapunovและมีอัลกอริทึมที่รู้จักกันดีมากมายสำหรับการแก้ปัญหาที่ใช้ประโยชน์จากลักษณะพิเศษของสมการเชิงเส้นนี้

BΣ+ΣBT+C=0
Σ BC

จาก googling ฉันได้เรียนรู้ว่ามีการใช้งาน Matlab และ Fortran อยู่ ฉันพบ SLICOT และ RECSY เนื่องจากปัญหาสิทธิ์การใช้งานการเข้าถึงแหล่ง SLICOT ถูกหยุดลง

งานส่วนใหญ่ของฉันถูกนำไปใช้ใน R และเมื่อฉันไม่สามารถหาส่วนต่อประสาน R เพื่อแก้ปัญหาได้ คำถามของฉันคือถ้า SLICOT เป็นห้องสมุด Fortran (หรือ C) ที่ดีที่สุดที่มีอยู่พร้อมกับการแก้สมการของ Lyapunov? ฉันยังสนใจในการใช้งานที่สามารถจัดการเมทริกซ์กระจัดกระจายได้ B


1
มีขนาดใหญ่และกระจัดกระจายแค่ไหน? คุณอาจต้องย้ายออกจาก R เพื่อจัดการกับปัญหาที่ใหญ่กว่าในเวลาที่เหมาะสม
Bill Barth

5
ผมอาจจะไม่ควรพูดแบบนี้ แต่ SLICOT สามารถใช้ได้ที่นี่
Victor Liu

@BillBarth ขนาดตามลำดับ 1,000, diagonal และไม่มีโครงสร้าง แต่อาจเบาบางมากรายการที่ไม่เป็นศูนย์ 1% CB
NRH

คำตอบ:


5

SLICOT เป็นเครื่องมือที่ใช้สำหรับปัญหาที่หนาแน่น

สำหรับระบบที่มีขนาดใหญ่ แต่กระจัดกระจายมีกล่องเครื่องมือlyapackสำหรับ MATLAB

อัลกอริธึมใน lyapack บนพื้นฐานการคำนวณปัจจัยอันดับต่ำดังนั้นเข้าใกล้โดยที่คือสมการเชิงบวก (เชิงบวกหรือเชิงลบ) สมการของ Lyapunov การคำนวณเพียงปัจจัยร่วมกับ sparsity ของสัมประสิทธิ์ทำให้วิธีนี้เป็นไปได้สำหรับสมการขนาดใหญ่ZnZnHZnΣΣ

มีการวิจัยอย่างต่อเนื่องที่สถาบัน Max-Planck ใน Magdeburg ประเทศเยอรมนีในสมการ Lyapunov ที่กระจัดกระจาย อย่างไรก็ตามการประกาศการเปิดตัวของผู้สนับสนุน lyapack - MESS - กำลังจะเปิดตัวในอีกไม่กี่ปีข้างหน้า อย่างไรก็ตามมันเป็นสิ่งที่ควรค่าแก่การตรวจสอบเว็บเพจของ MESS และสิ่งพิมพ์ของผู้เขียนที่ได้รับการสนับสนุนเป็นครั้งคราว

ข้อจำกัดความรับผิดชอบ: หัวหน้างานวิทยานิพนธ์ของฉันเป็นผู้สนับสนุนหลักทั้ง SLICOT และ lyapack และฉันติดต่อกับนักพัฒนาของ MESS เป็นประจำ


คุณสามารถเข้าร่วมchat.stackexchange.com/rooms/9031/lyapunovมีคำถามที่เกี่ยวข้อง
Milind R

3

คุณสามารถเชื่อมต่อกับ MATLAB ใช้นี้

เมทริกซ์ของคุณไม่ใหญ่เกินไป: การเขียนโค้ดอัลกอริทึมด้วยมือไม่ควรทำให้เสียเวลามากเกินไปบางทีมันอาจจะทำงานเป็นเวลา 1 ชั่วโมง อาจหรือไม่ยาวเกินไปขึ้นอยู่กับปัจจัยต่าง ๆ

แม้ว่าการเข้ารหัสด้วยตัวคุณเองอาจไม่ง่ายเลย ฉันไม่คิดว่าจะทำได้และฉันก็จัดการกับเรื่องนี้ในช่วงไม่กี่เดือนที่ผ่านมา แต่ SLICOT อัลกอริทึมตัวเองเป็นที่นี่


3

อัลกอริธึมของ SLICOT นั้นไม่ซับซ้อนมันเป็นการลดลงของ Schur form + การทดแทนด้านหลัง คุณสามารถตรวจสอบกระดาษ Bartels-Stewart http://dl.acm.org/citation.cfm?id=361582ซึ่งอ่านได้อย่างสมเหตุสมผลและอธิบายวิธีการทำงาน กระดาษเป็นเรื่องเกี่ยวกับกรณีที่ไม่สมมาตร แต่มันไม่ควรยากที่จะปรับให้เข้ากับรูปสมมาตร --- คุณแค่ต้องการรูปแบบ Schur หนึ่งรูปแทนที่จะเป็นสองรูป

คุณอาจใช้รหัสด้วยตัวเองใน R ถ้ามันมีรูทีนสำหรับแบบฟอร์ม Schur อยู่แล้ว (ฉันจะตรวจสอบตัวเอง แต่ก็เป็นระเบียบเพื่อให้ได้ผลลัพธ์ที่มีความหมายเกี่ยวกับ R out of Google เนื่องจากตัวเลือกการตั้งชื่อที่โชคร้าย)

นี่อาจเป็นคดีที่หนาแน่น ขนาดใหญ่และกระจัดกระจายเป็นเทคนิคมากขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.