变量输入随时间变化,ode45 MATLAB

时间:2014-11-13 18:38:25

标签: matlab

我想在MATLAB中使用ode45计算一阶可微分方程的解。

但我想在精确的时间内计算解决方案并知道那些瞬间的输入变量。

设t是具有n个时刻的向量,我想要计算解,你输入向量也有n个值,其中$ u(k)$是$ u $的值,即时$ k $, $ k $属于$ t $。

我将ode45函数称为:

[t,T_dot]=ode45(@f_mass,t,.01,odeset,u);

和f_mass是:

function T_dot=f_mass(t,T,u)
T_dot=(1-u)*T;
end

如何指定u是u(t)?

由于

1 个答案:

答案 0 :(得分:0)

尚未在Matlab上进行测试,仅用于提供帮助,并且主要是由https://fr.mathworks.com/help/matlab/ref/ode45.html#bu00_4l_sep_shared-options ODE(带有时变术语)组成的

function T_dot=f_mass(t,T,u, ut)
f = interp1(ut,u,t);
T_dot=(1-f)*T;
end

然后用ode 45求解

ut=[0 0.1 0.2 0.3];
u=[1 1.1 1.5 1.8];

[t,T] = ode45(@(t,T) odefun(t,T,u,ut), ut, 0.01, odeset);