У меня есть набор связанных ODE, которые я хочу решить с помощью MATLAB. Уравнения приведены ниже.Решите 4 связанных дифференциальных уравнения в MATLAB
У меня 4 граничные условия: х (0), у (0), V (0), тета (0). Если я попытаюсь решить это с помощью dsolve
, я получаю предупреждение о том, что явное решение не найдено. Вот код, который я использовал.
syms x(t) y(t) v(t) theta(t)
% params
m = 80; %kg
g = 9.81; %m/s^2
c = 0.72; %
s = 0.5; %m^2
theta0 = pi/8; %rad
y0 = 0; %m
rho = 0.94; %kg/m^3
% component velocities
xd = diff(x,t) == v*cos(theta);
yd = diff(y,t) == v*sin(theta);
% Drag component
D = c*rho*s/2*(xd^2+yd^2);
% Acceleration
vd = diff(v,t) == -D/m-g*sin(theta);
% Angular velocity
thetad = diff(theta,t) == -g/v*cos(theta);
cond = [v(0) == 10,y(0) == 0, x(0) == 0, theta(0) == theta0];
dsolve([xd yd vd thetad],cond)
Не эксперт, но: вы уверены, что чем явное решение можно найти? –
@AnderBiguri Я не уверен, что его можно найти. К сожалению, я не знаю, как реализовать это, используя 'odeXX'. У меня только опыт с несвязанными уравнениями и только до 2 из них с использованием 'ode23'. Поэтому любая помощь с этим более чем приветствуется. – Ortix92
Итак, вы хотите решить эту проблему численно? Я имею в виду, что в настоящее время, глядя на вопрос, и не будучи математиком, я бы сказал, что у вас есть ответ: вы не можете символически решить это. Численно, это другой вопрос ... –