回 帖 发 新 帖 刷新版面

主题:求助 :关于解一个微分方程组的问题

dx1(t)/dt=x1+sin(t)*x2;
dx2(t)/dt=x2+cos(t)*x1;
我自己用的方法是这样的:
function F=myfunction(x,t)
F=[x(1)+sin(t)*x(2);x(2)+cos(t)*x(1)];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[t,x]=ode45('myfunction',[0,100],[0 0]);
plot(t,y);
不知道这种解法对吗?书上的例子sin(t)和cos(t)那个位置都是常数,可是我想解得方程组就是上面那种带时间常数t的形式,还能用这种解法吗?
多者大虾们有什么别的解法给小弟讲讲,多谢啦!

回复列表 (共2个回复)

沙发


 syms x1 x2 t;
 [x1,x2]=dsolve('Dx1=x1+sin(t)*x2,Dx2=x2+cos(t)*x1')
不知道对不对

板凳

function F=myfunction(x,t)这一行的(x,t)是不是应当改成(t,x)
[t,x]=ode45('myfunction',[0,100],[0 0]);这一行中两个初值[0 0]能不能改变一下,使函数值不总是为0

我来回复

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