用matlab求解lorenz方程,求问这段程序用的是什么方法

用matlab求解lorenz方程,求问这段程序用的是什么方法,第1张

用matlab求解lorenz方程这段程序的是数值微分方程(组)的变步长四五阶龙格——库塔方法,即ode45()函数。

Lorenz.m

function  s = Lorenz(t,x)

s = [-8/3*x(1)+x(2)*x(3)  %Lorenz方程组

-10*x(2)+10*x(3)

-x(1)*x(2)+28*x(2)-x(3)];

主函数:

x0 = [1e-171e-171e-17]

[t,x] = ode45('Lorenz',[0,150],x0)

axis equal

plot3(x(1:(end/2),1),x(1:(end/2),2),x(1:(end/2),3),'r')

hold on

plot3(x((end/2):end,1),x((end/2):end,2),x((end/2):end,3),'b')

hold off

1、文件1:lorenz.m

2、在命令窗口输入:

[tv,y] = ode45('lorenz',[0:0.1:100],[0,2,9])

其中:tv是时间,就是[0:0.1:100],0是起始时间,0.1是步长,100是结束时间

y是lorenz.m的返回值ret,是一个三维矩阵;

[0,2,9]是y的迭代初始值;

3、plot(y(:,1))


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11657424.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存