用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
你找到某种混沌系统的表达式,作图就行了,比如经典的洛伦兹吸引子的程序如下:% 第一个程序:lorenzfun.m
function dy=lorenzfun(t,y)
p=10
r=28
b=8/3
%p=16
%b=4.0
%r=45.92
dy=zeros(3,1)
dy(1,:)=p*(-y(1)+y(2))
dy(2,:)=r*y(1)-y(2)-y(1)*y(3)
dy(3,:)=y(1)*y(2)-b*y(3)
% 第一个程序:lorenztest.m
[t,yy]=ode45('lorenzfun',[0:0.01:100],[-1
0 1]) %模拟t=0~100步长0.01的10001个点,初值[-1
01]
x=yy(:,1)
y=yy(:,2)
z=yy(:,3)
figure(1)
plot3(x,y,z)
xlabel('x(t)'),ylabel('y(t)'),zlabel('z(t)')
title('Lorenz吸引子图')
x=x(1001:end)%抛弃前面的一些点
你在matlab下运行lorenztest看看能不能找到点感觉
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)