回 帖 发 新 帖 刷新版面

主题:[讨论]matlab中用ode45求解带有分段参数的微分方程组怎么解

有如下微分方程组:
dx(1)=x(2);
dx(2)=x(1)+a;

其中参数a是分段函数:
  a= 6*t^2, 0<=t<=2; 
    24*t-24, 2<=t<=4; 
      72,    4<=t<=8

想用ode45 求解并画图t-x图,但是不知道在MATLAB中如何编写m文件,可以使得这个带有分段参数的微分方程组得以求解。还请各位热心人可以帮帮忙,谢谢了。

回复列表 (共3个回复)

沙发

调用函数里面写
if t>=0 & t<=2
a= 6*t^2;
elseif t<=4
a=24*t-24;
elseif t<=8
a=72;
end


dx(1)=x(2);
dx(2)=x(1)+a;

板凳

function dx=exm1(t,x)
if t>=0 & t<=2
a= 6*t^2;
elseif t<=4
a=24*t-24;
elseif t<=8
a=72;
end

dx=zeros(2,1);
dx(1)=x(2);
dx(2)=x(1)+a;

主函数:
x0=[0 0];%initial conditions
tspan=0:0.01:20
[t,x]=ode45(@exm1,tspan,x0);
plot(t,x(:,1));
但是运行时却出现了错误,还请教下是怎么回事呢?谢谢您了。

3 楼

时间区间减小些

我来回复

您尚未登录,请登录后再回复。点此登录或注册