Я хотел бы решить дифференциальное уравнение Риккати, используя Matlab
ПРИМЕЧАНИЕ.
Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.
Поскольку уравнение Риккати является обыкновенным дифференциальным уравнением первого порядка, вы можете легко сделать это с помощью любого из решателей ОДУ, доступных в MATLAB, таких как «ode45».
Хитрость заключается в том, чтобы найти решение в обратном направлении во времени.
В качестве примера рассмотрим следующий пример. Пусть уравнение Риккати имеет вид
y'(t) = q0 + q1*y(t) + q2*y(t)^2, y(tf) = yf
где q0, q2 — отличные от нуля константы (это могут быть нетривиальные функции от t, то, что они выбраны постоянными, сделано просто для простоты). Вторая строка — это граничное условие, согласно которому в момент времени tf значение решения должно быть равно yf. Я выбрал, в частности, tf = 2 и yf = 1 в приведенном ниже примере кода.
function riccatiEquationRunner() par = [1;2;1]; % q0, q1, and q2 yf = 1; ti = 0; tf = 2; opt = odeset('AbsTol',1.0e-07,'RelTol',1.0e-07); [t,y] = ode45( @riccatiEquation, [tf,ti], yf ,opt, par); % Visualize plot(t,y)
СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ