Thư viện để giải phương trình Lyapunov


11

Phương trình ma trận sau trong với ma trận và xuất hiện trong tác phẩm của tôi dưới dạng đặc trưng của ma trận hiệp phương sai. Tôi đã học được rằng phương trình này được biết đến, đặc biệt là trong lý thuyết điều khiển thời gian liên tục, như phương trình của Lyapunov , và có nhiều thuật toán nổi tiếng khác nhau để giải nó khai thác tính chất đặc biệt của phương trình tuyến tính này. Σ - B C -

BΣ+ΣBT+C=0
Σ BC

Từ googling tôi cũng đã học được rằng có các triển khai Matlab và Fortran. Tôi đã tìm thấy SLICOT và RECSY. Do vấn đề cấp phép, tuy nhiên, quyền truy cập vào nguồn SLICOT đã bị dừng.

Hầu hết các công việc của tôi được triển khai trong R và vì tôi không thể tìm thấy giao diện R cho người giải quyết, tôi xem xét việc tự viết một giao diện. Câu hỏi của tôi là nếu SLICOT là thư viện Fortran (hoặc C) có sẵn tốt nhất với việc thực hiện một bộ giải phương trình Lyapunov? Tôi cũng quan tâm đến việc triển khai có thể xử lý các ma trận thưa thớt lớn . B


1
Lớn như thế nào và thưa thớt như thế nào? Bạn có thể phải rời khỏi R để giải quyết những vấn đề lớn hơn trong thời gian hợp lý.
Bill Barth

5
Tôi có lẽ không nên nói điều này, nhưng SLICOT có sẵn ở đây .
Victor Liu

@BillBarth, kích thước theo thứ tự 1000, đường chéo và không có cấu trúc nhưng có khả năng rất thưa thớt, các mục nhập 1% khác không, nói. BCB
NRH

Câu trả lời:


5

SLICOT là công cụ để sử dụng cho các vấn đề dày đặc.

Đối với hệ thống lớn nhưng thưa thớt, có hộp công cụ lyapack cho MATLAB.

Các thuật toán trong lyapack dựa trên tính toán các yếu tố xếp hạng thấp , sao cho tiếp cận , trong đó là giải pháp xác định đối xứng (dương hoặc âm) của phương trình Lyapunov. Chỉ tính toán các yếu tố kết hợp với độ thưa thớt của các hệ số làm cho phương pháp này khả thi đối với các phương trình quy mô lớn.Z H n Z n Σ ΣZnZnHZnΣΣ

Có nhiều nghiên cứu đang diễn ra tại Viện Max-Planck ở Magdeburg, Đức, về phương trình Lyapunov thưa thớt. Tuy nhiên, thông báo về việc phát hành sắp tới của người thành công của lyapack - MESS - là một vài năm tuổi. Tuy nhiên, đáng để kiểm tra trang web của MESS và các ấn phẩm của các tác giả đóng góp theo thời gian.

Tuyên bố miễn trừ trách nhiệm: Người giám sát luận án của tôi là người đóng góp chính cho cả SLICOT và lyapack và tôi thường xuyên liên lạc với các nhà phát triển của MESS.


Bạn có thể tham gia chat.stackexchange.com/rooms/9031/lyapunov không , có một số câu hỏi liên quan.
Milind R

3

Bạn có thể kết nối với MATLAB bằng cách này .

Ma trận của bạn không quá lớn: mã hóa bằng tay các thuật toán không nên mất quá nhiều thời gian, có thể nó sẽ chạy trong 1 giờ. Nó có thể hoặc không quá dài tùy thuộc vào các yếu tố khác nhau.

Mặc dù, tự mã hóa nó có thể không dễ dàng chút nào. Tôi không nghĩ rằng tôi có thể, và tôi đã giải quyết vấn đề này trong vài tháng qua. Nhưng chính thuật toán SLICOT đã có ở đây .


3

Thuật toán của SLICOT không phức tạp lắm, đó là sự giảm xuống dạng Schur + một số thay thế ngược. Bạn có thể kiểm tra giấy Bartels-Stewart http://dl.acm.org/citation.cfm?id=361582 có thể đọc được một cách hợp lý và giải thích cách thức hoạt động của nó. Bài viết nói về trường hợp không đối xứng, nhưng không khó để điều chỉnh nó theo trường hợp đối xứng --- bạn chỉ cần một dạng Schur thay vì hai.

Bạn có thể cũng có thể tự viết mã bằng R nếu nó đã có thói quen cho biểu mẫu Schur (tôi sẽ tự kiểm tra, nhưng sẽ luôn là một mớ hỗn độn để nhận kết quả có ý nghĩa về R từ Google do lựa chọn đặt tên không may của họ).

Điều này có thể giải quyết các trường hợp dày đặc. Một lớn và thưa thớt là kỹ thuật hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.