作业帮 > 综合 > 作业

怎样用matlab解非线性微分方程

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/06 07:11:58
怎样用matlab解非线性微分方程
请问用matlab怎么解
dx/dt=2y^2-2
dy/dt=2yz-x-1
dz/zt=2z^2-2y-4
x(3)=1,y(3)=0,z(3)=2 只知道一个边值
求在[0,3]上的解,有表达式更好,数值解也行,或者能得出[0,3]上的曲线也行,
怎样用matlab解非线性微分方程
%by dynamic
%see also http://www.matlabsky.com
%contact me matlabsky@gmail.com
%2009.2
%
%关于【微分法的Matlab求解详解】参见http://www.matlabsky.com/thread-526-1-2.html其中对微分方程的Matlab讲解分析的很透彻
%
%选取状态变量
%x1=x,x2=y,x3=z
%各状态变量的一阶导数
%x1'=x'=2*x(2)^2-2
%x2'=y'=2*x(2)*x(3)-x(1)-1
%x3'=z'=2*x(3)^2-2*x(2)-4
%
%微分方程表达式
odefun=@(t,x)[2*x(2).^2-2
2*x(2).*x(3)-x(1)-1
2*x(3).^2-2*x(2)-4];
%初值,就是各个状态变量的初值
x0=[1 0 2];
%微分变量区间
tspan=[3 0]; %注意这里必须写成[3 0]写成[0 3]是错误的,一楼就是错误的
%调用ode45函数
[t,x]=ode45(odefun,tspan,x0);
%绘制[x,y,z]曲线
plot3(x(:,1),x(:,2),x(:,3))
x