Функция CARE в Control System Toolbox решает матричное уравнение Риккати:

A'X + XA - XB'BX + Q = 0

Я хотел бы решить матричное дифференциальное уравнение Риккати:

dX/dt = A'X + XA - XB'BX + Q

ПРИМЕЧАНИЕ. 

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Матричное дифференциальное уравнение Риккати:

dX/dt = A'X + XA - XBB'X + Q

можно решить с помощью функций набора ODE.

Предположим, что ваша зависимая матрица «X» равна «n» на «n», и вам известны матрицы «n» на «n» «A», «B» и «Q». Следующий метод решит матричное дифференциальное уравнение Риккати. Сохраните следующее как файл MATLAB где-нибудь в пути MATLAB.

function dXdt = mRiccati(t, X, A, B, Q)
X = reshape(X, size(A)); %Convert from "n^2"-by-1 to "n"-by-"n"
dXdt = A.'*X + X*A - X*B*B.'*X + Q; %Determine derivative
dXdt = dXdt(:); %Convert from "n"-by-"n" to "n^2"-by-1

Затем вы можете использовать функцию ODE45 для решения этой проблемы:

[T X] = ode45(@(t,X)mRiccati(t, X, A, B, Q), [0 10], X0)

Например, используя образцы данных:

A = [1 1; 2 1]; 
B = [1; 1]; 
Q = [2 1; 1 1];
X0 = [1; 1; 1; 1];

Вы можете использовать следующую команду для решения системы дифференциальных уравнений:

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ