Переменный ввод в оде 45, MATLAB
У меня проблема с отправкой входных данных переменной ode45
функция.
У меня есть этот код:
function T_pdot=f_massa_log(t,T,u)
T_dot=(1-u)*T*log10(1/T);
end
И я называю это так:
[t,T_dot]=ode45(@f_massa_log,[0 50],0.01,odeset,u);
когда u
постоянно, это работает нормально, но теперь мне нужно отправить u
как функция меняется во времени, и это не работает.
Может кто-нибудь помочь? Спасибо
1 ответ
Решение
Я полагаю, вы пытаетесь решить для T
с точки зрения t
с учетом известной функции u
из t
, Вы можете просто сделать это в своей производной функции:
function T_pdot=f_massa_log(t,T,u)
u=sin(t); %// for example
T_dot=(1-u)*T*log10(1/T);
end
и позвонить ode45
как и раньше.