将时间相关函数纳入数值difeq

时间:2014-10-31 04:04:56

标签: matlab

试图解决下面显示的微分方程

function dr = ball(t,b)

T2 = 1;
T1 = T2/2;
d  = 0;
R  = 0.2;

dr = zeros(3,1);
dr(1) = (-1/T2)*b(1)-d*b(2);
dr(2) = (-1/T2)*b(2) + d*b(1) + R*b(3);
dr(3) = (-1/T1)*b(3) - R*b(2) ;

end

我是用ode45做的。现在我想这样做,我的R不是t的函数。我如何将其纳入微分方程设置。

1 个答案:

答案 0 :(得分:2)

您可以使用t输入,它为您提供当前时间步长,并将R定义为您想要的任何内容。

function dr = ball(t,b)

T2 = 1;
T1 = T2/2;
d  = 0;
R  = sin(t); %// for example

dr = zeros(3,1);
dr(1) = (-1/T2)*b(1)-d*b(2);
dr(2) = (-1/T2)*b(2) + d*b(1) + R*b(3);
dr(3) = (-1/T1)*b(3) - R*b(2) ;

end