2016-08-05 8 views
-1

Моя цель состоит в том, чтобы решить систему уравнений, известного как уравнение Ляпунова, что нахождение х в следующем уравнении:Решение системы линейных уравнений

A*X + X*transpose(A) +Q = 0 

плюс другого линейного ограничения, которое X*v = 0

где все матрицы A, X, Q суть n по n матриц, а v - вектор с длиной n.

Как найти такой X в Matlab?

+3

Вы пытались использовать Google для поиска решения? Я уверен, что вы найдете много полезных сайтов. Если у вас еще есть вопрос, пожалуйста, измените оригинал в соответствии с тем, что вы нашли, попробовали. [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to-ask) – Arpi

ответ

1

Решение

Решение уравнений Ляпунова в Matlab очень легко. Оба непрерывно и дискретное уравнение Ляпунова имеет встроенную функцию:

Дополнительная заметка: если ссылки не работают или вы хотите быстро проверить документацию функции Matlab offlin e, каждая встроенная функция Matlab имеет короткую справочную страницу, доступную по адресу help NameOfTheFunction. Кроме того, расширенную страницу справки, также отображаемую в Интернете, с примерами можно также восстановить в автономном режиме, набрав doc NameOfTheFunction в терминале Matlab.

Пример

Учитывая следующее непрерывного уравнение Ляпунова:

A*X + X*transpose(A) + Q = 0 

Раствор в Matlab для стабильного A и положительно определенная Q определяется как:

X = lyap(A,Q) 

В некоторых случаях уравнение несколько отличается:

A*X + X*B + C = 0 

Это уравнение вызывает уравнение Сильвестра и снова решаемый с встроенной функцией Ляпунова Matlab: существуют

шагов
X = lyap(A,B,C) 

То же аналоговые решений для дискретного случая, когда Ляпунов и Сильвестр уравнения взгляда несколько отличается:

A*X*transpose(A) -X + Q = 0 -> X = dlyap(A,Q) 
A*X*B - X + C = 0 -> X = dlyap(A,B,C) 
+3

Общее соглашение о переполнении стека должно включать в себя код шаблона решения. Внешние ссылки могут закончиться. Хотя я согласен, что это не очень вероятно в случае официальных документов MATLAB, небольшой кусок кода действительно помогает ответить на блеск. –

+0

Я добавлю это. –

+0

@ChristofVermeersch Спасибо, я хорошо это знаю. Однако lyap для случая, когда матрица A является полным рангом (т. Е. Ранг A равен n).Так как ранг моей матрицы A является n-1 lyap, это не работает. Однако добавление условия X * v = 0 заставляет X иметь уникальное решение. Но я спрашиваю, как я могу это сделать? – solver

 Смежные вопросы

  • Нет связанных вопросов^_^