Альтернатива vpasolve и расположение результатов - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь решить следующую проблему в Matlab:

У меня есть две известные матрицы F и Q mxm (m = 20), и я хочу найти матрицу L, которая удовлетворяет уравнению

F- (Q L + L Q) / 2 = 0

(я знаю, что это уравнение Ляпунова, но я не хочу решать его с помощью ляпаfunction)

Итак, я определяю символическую матрицу L, элементы которой я хочу определить.У меня 2 проблемы:

  1. vpasolver занимает слишком много времени, и мне было интересно, есть ли более быстрый альтернативный или более эффективный способ решения проблемы.
  2. Если я использую этот способРешить ее - это структура, но расположение элементов немного странно.Список l1_1, l1_11, l1_12, ... l1_2, l1_20, l1_3, l1_4 ... Есть ли способ получить результаты в правильном порядке?

Код следующий:

L=sym('l',[m,m]);
diff=sym('d',[m,m]);
diff=F -(1/2)*(Q*L+L*Q);    

diff=vpa(diff);

s=vpasolve(diff==0);
...