Ich benutze MATLAB, um den Lorenz-Attraktor zu zeichnen, und habe mich gefragt, wie ich die XYZ-Koordinaten in eine 3D-druckbare Datei exportieren kann! Ich habe Probleme, von den XYZ-Koordinaten zu einer Oberfläche zu gehen (sollte ich das auch tun?). Darüber hinaus scheint mir sogar der Lorenz Attraktor als "Oberfläche" nicht richtig zu sein, da mein Verständnis ist, dass es eher ein "Pfad" ist. Mein Code so weit:3D Drucken des Lorenz Attractor mit MATLAB
clear all; clc; clf;
dt = .01;
n = 100; %Number of Drawings
t = 0:dt:n; %Time Scale
%INITIAL CONDITIONS
x = 1;
y = 1;
z = 1;
xyz0 = [x y z];
%SOLVE ODE
[t,xyz] = ode45(@rhs, t, xyz0);
x = xyz(:,1);
y = xyz(:,2);
z = xyz(:,3);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%% PLOTTING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%plot3(x,y,z);
rotate3d on;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%% RHS FOR ODE45 %%%%%%%%%%%%%%%%%%%%%%%%
function xyzdot = rhs(t,xyz)
sigma = 10;
b = 8/3;
r = 100;
x = xyz(1);
y = xyz(2);
z = xyz(3);
dxdt = sigma*(y - x);
dydt = r*x - y - x*z;
dzdt = x*y - b*z;
xyzdot = [dxdt; dydt; dzdt];
end
Ich habe versucht, diese früher:
[X,Y] = meshgrid(x,y);
surf(X, Y, z);
Aber nichts funktioniert. Der Fehler sagt z muss eine Matrix sein, und ich bin ein bisschen verloren. Jede Hilfe wird geschätzt! Danke,