发布网友 发布时间:2022-04-16 20:56
共2个回答
懂视网 时间:2022-04-17 01:17
matlab解微分方程组方法是:
1、首先,在matlab中解常微分方程有两种方法,一种是符号解法,另一种是数值解法。在本科阶段的微分数学题,基本上可以通过符号解法解决。
2、用matlab解决常微分问题的符号解法的关键命令是dsolve命令。该命令中可以用D表示微分符号,其中D2表示二阶微分,D3表示三阶微分,以此类推。值得注意的是该微分默认是对自变量t求导,也可以很容易在命令中改为对其他变量求导。
3、该命令的最完整的形式“r=dsolve(“eqn1”,“eqn2”,……,“cond1”,“cond2”,……,“var”)”。解释eqni表示第i个微分方程,condi表示第i个初始条件,var表示微分方程中的自变量,默认为t。
4、首先启动matlab软件,在命令行中欢快地敲入“dsolve(“Dy=3*x*x”,“x”)”,然后轻松地摁一下键盘上的enter建,最后答案就出来了。
热心网友 时间:2022-04-16 22:25
题主给出的微分方程组是一个典型的混沌系统(Lourenz),该系统具有强烈的初值依赖性和和不可预测性。为了求解此问题,我们可以来考虑:
首先,自定义求解微分方程组的函数,即
function dy=func(t,y)
dy=zeros(3,1);
dy(1)=10*(y(1)+y(2)); %dx/dt
dy(2)=20*y(1)-y(2)-y(1)*y(3); %dy/dt
dy(3)=y(1)*y(2)-8*y(3); %dz/dt
其二,确定初值,由于当x(0)=0,y(0)=0,z(0)=0 该系统是无法触发的,只有当x(0,y(0),z(0)略大于0该系统才会触发。这里我们取
y0=[1e-6,1e-6,1e-6]
其三,确定时间范围,因电脑的关系,暂取t=[0,2]
其四,使用ode45函数,求解t、x、y、z值
其五,根据x、y、z值,使用plot3函数绘制x(t),y(t),z(t)相位图
按上述流程完善代码,并运行后得到如下结果。
追问好厉害,谢谢