原问题为利用ode45求解下面微分方程:

math?formula=%5Cfrac%7Bdx_%7B1%7D%7D%7Bdt%7D%3Dx_%7B2%7D%20

math?formula=%5Cfrac%7Bdx_%7B2%7D%7D%7Bdt%7D%3D7%5Ctimes%20(1-x_%7B1%7D%5E2)x_%7B2%7D-x_%7B1%7D%20

初值为

math?formula=x_%7B1%7D(0)%3D1%2Cx_%7B2%7D(0)%3D0

可以转为二阶微分方程

4acc2701cdc6

利用Matlab求解,下面为源代码

functionMyode45

tspan = [2,4];              %求解区间

y0 = [1 0];                   %y0的初值形式为行向量

[t,x] = ode45(@odefun,tspan,y0);   %使用ode45求解微分方程

plot(t,x(:,1),'-o',t,x(:,2),'-*')  %作图

legend('y1','y‘')

title('y'' ''=-y-7y''y1^2+7')

xlabel('t')

ylabel('y')

function y =odefun(~,x) % 定义ode45函数的参数odefun

y = zeros(2,1);        % 创建列向量

y(1) = x(2);            % 表达式1:dx1/dt=x2 => y(1) =x1'=x(2)

y(2) = 7*(1-x(1)^2)*x(2)-x(1); % 表达式2:dx2/dt=7(1-x1^2)x2-x1 => y(2)=x2'=7*(1-x(1)^2)*x(2)-x(1)

end

end

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐