不理解这个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,
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程序,能用数学公式帮我解释下吗.](/uploads/image/z/17117675-35-5.jpg?t=%E4%B8%8D%E7%90%86%E8%A7%A3%E8%BF%99%E4%B8%AAMATLAB%E7%A8%8B%E5%BA%8F%2C%E8%83%BD%E7%94%A8%E6%95%B0%E5%AD%A6%E5%85%AC%E5%BC%8F%E5%B8%AE%E6%88%91%E8%A7%A3%E9%87%8A%E4%B8%8B%E5%90%97.)
要求解的微分方程组是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阶龙格库塔法函数化,不需要你自己编具体的算法,只需要你调用这个函数,就可以求解,还是很方便的,求解方法在数值计算算法中非常流行
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阶龙格库塔法函数化,不需要你自己编具体的算法,只需要你调用这个函数,就可以求解,还是很方便的,求解方法在数值计算算法中非常流行