Переменный ввод в оде 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 как и раньше.

Другие вопросы по тегам