
怎样用matlab中用ode45求解带有分段参数的微分方程组
有如下微分方程组:dx(1)=x(2)*dc(t)/dt;其中dc(t)/dt是对c(t)求t的导数dx(2)=x(1)+a;c(t)=1/e(t);e(t)的方程式是知...
有如下微分方程组:
dx(1)=x(2)*dc(t)/dt; 其中dc(t)/dt是对c(t)求t的导数
dx(2)=x(1)+a;
c(t)=1/e(t);
e(t)的方程式是知道的但是很复杂,通过手工算出dc(t)/dt基本不可能,这样的程序怎么编
其中参数a是分段函数:
a= 6*t^2, 0<=t<=2;
a=24*t-24, 2<=t<=4;
a=72, 4<=t<=8
x(1) x(2)的初值是知道的,,区间是0-8 展开
dx(1)=x(2)*dc(t)/dt; 其中dc(t)/dt是对c(t)求t的导数
dx(2)=x(1)+a;
c(t)=1/e(t);
e(t)的方程式是知道的但是很复杂,通过手工算出dc(t)/dt基本不可能,这样的程序怎么编
其中参数a是分段函数:
a= 6*t^2, 0<=t<=2;
a=24*t-24, 2<=t<=4;
a=72, 4<=t<=8
x(1) x(2)的初值是知道的,,区间是0-8 展开
2个回答
展开全部
分段函数的一个简单方法就是分了几段就写几个函数:
定义一个主调函数、两个子函数
最后一个主调程序调用
function dx=fun(t,x)
dx=zeros(2,1);
f=;
dc(t)=diff('f','t');%f就是你的c(t)
dx(1)=x(2)*dc(t);
dx(2)=x(1)+6*t^2;%0<=t<=2
ode45(@fun,[0 2],[初值])
定义一个主调函数、两个子函数
最后一个主调程序调用
function dx=fun(t,x)
dx=zeros(2,1);
f=;
dc(t)=diff('f','t');%f就是你的c(t)
dx(1)=x(2)*dc(t);
dx(2)=x(1)+6*t^2;%0<=t<=2
ode45(@fun,[0 2],[初值])
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询