要使用ODE45(或类似),您需要将三阶ODE转换为一阶ODE系统.
为此,请允许
y0 = y
y1 = y0'
y2 = y1'
y3 = y2'
然后
y0' = y1
y1' = y2
y2' = y3
和
y3' = y''' = -41*y2-360y1-900y0+600dx+1200x
您现在可以使用ODE45通过嵌套x(t)和dx(t)可用的函数来集成系统.
function test()
% some random x function
x = @(t) exp(-t);
dx = @(t) -exp(-t);
% integrate numerically
[T, Y] = ode45(@linearized, [0 1], [2 1 -0.05 0]);
% plot the result
plot(T, Y(:,1))
% linearized ode
function dy = linearized(t,y)
dy = zeros(4,1);
dy(1) = y(2);
dy(2) = y(3);
dy(3) = y(4);
dy(4) = -41*y(3)-360*y(2)-900*y(1)+600*dx(t)+1200*x(t);
end
end