
用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))
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)