作业帮 > 数学 > 作业

怎样用matlab求解复杂的微分方程组

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/22 08:47:57
怎样用matlab求解复杂的微分方程组
d2x/dt2=(x^2+3x)(dy/dt)
d2y/dt2=-(x^2+3x)(dx/dt)
当t=0时,x(0)=0,y(0)=0
(dx/dt)(0)=a,(dy/dt)(0)=a
(d2x/dt2)(0)=a,(d2y/dt2)(0)=a
先要得到x,y分别关于t的表达式,
然后得到y关于x的表达式
初值条件应该是:
当t=0时,x(0)=0,y(0)=0
(dx/dt)(0)=a,(dy/dt)(0)=0
(d2x/dt2)(0)=0,(d2y/dt2)(0)=b
其中a,b为常数
[x y]=dsolve('D2x=(x*x+3*x)*Dy','D2y=-(x*x+3*x)*Dx','x(0)=0','y(0)=0','Dx(0)=a','Dy(0)=a','D2x(0)=a','D2y(0)=a')
%%%%%%%%%%%%%%%%%%%%%%%%%%%
设定的X(1)=dx/dt;
x(2)=x;
x(3)=dy/dt;
x(4)=y;
%%%%%%%
function dx=shuzhijie(t,x)
dx=[(x(2)^2+3*x(2))*x(3);x(1);(x(2)^2+3*x(2))*x(1);x(3)];
%%%%%%%%%%%
>> x0=[0.3 0.2 0.4 0.1];%初值 0
[t x]=ode45('shuzhijie',t0,x0);
>> plot(t,x)