
怎样用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],[初值])

2025-08-07 广告
广州赛恩科学仪器有限公司(原中大科仪)始创于2001年,是全球领先的精密测量仪器供应商和微弱信号检测方案提供商。公司以锁相放大器为核心产品,陆续推出光学斩波器、源表、功率放大器、电化学工作站、电流源等一系列产品。赛恩科仪推出的锁相放大器,覆...
点击进入详情页
本回答由赛恩科仪提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询