作业帮 > 综合 > 作业

不理解这个MATLAB程序,能用数学公式帮我解释下吗.

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/19 15:33:33
不理解这个MATLAB程序,能用数学公式帮我解释下吗.
funtion y=ill(t,x)
a=1;b=0.3;
y=[a*x(1)*x(2)-b*x(1),-a*x(1)*x(2)]';
ts=0:50;
x0=[0.02,0.98];
[t,x]=ode45(ill',ts,x0);[t,x]
plot(t,x(:,1),t,x(:,2)),grid,pause
plot(x(:,2),x(:,1)),grid,
不理解这个MATLAB程序,能用数学公式帮我解释下吗.
要求解的微分方程组是ill函数
dx1=a*x1*x2-b*x1;
dx2=-a*x1*x2
这些是为了用ode45求解微分方程组
ts=0:50;%时间区间
x0=[0.02,0.98];%初始值
[t,x]=ode45('ill',ts,x0);
[t,x]
plot(t,x(:,1),t,x(:,2)),grid,pause
plot(x(:,2),x(:,1)),grid,
再问: 那这个ode45是怎样的一个求解过程啊?
再答: ode45是用4阶龙格库塔法(Runge-Kutta)方法提供候选解,5阶方法控制误差,是一种自适应步长的方法。 而我们平时用的4阶和5阶龙格库塔法的公式中步长是给定的。具体算法和原理你可以看Dormand, J. R. and P. J. Prince, "A family of embedded Runge-Kutta formulae," J. Comp. Appl. Math., Vol. 6, 1980, pp 19-26. matlab将这种4阶龙格库塔法函数化,不需要你自己编具体的算法,只需要你调用这个函数,就可以求解,还是很方便的,求解方法在数值计算算法中非常流行