Python - Graficar diagrama de fases en 3d

 
Vista:

Graficar diagrama de fases en 3d

Publicado por haank (1 intervención) el 13/12/2019 19:27:39
Tengo un sistema de 3 Ecuaciones diferenciales con 3 variables(x(t), y(t), z(t)) y necesito graficar el diagrama de fases 3D, ya sea en una aplicacion que lo haga o a traves de codigo. He encontrado muchos resultados para dos variables pero ninguno para 3. Por favor quien pueda ayudarme con esto...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Graficar diagrama de fases en 3d

Publicado por sara (1 intervención) el 20/09/2021 05:37:25
close all;clear all;clc;
limites=5;
[x1,x2,x3,t]=ndgrid(-limites:0.5:limites,-limites:0.5:limites,-limites:0.5:limites,-limites:0.5:limites);
dx1=-(5+x2.^5+x3.^8).*x1;
dx2=-x1+4.*x3.^2;
dx3=-(2+sin(t)).*x3;
r=sqrt(dx1.^2+ dx2.^2+ dx3.^2);
hold on;
grid on;
set(gca,'FontSize',5);
axis([-5 5 -5 5 -5 5]);
title('Diagrama de fase.')
xlabel('x1') ;ylabel('x2');zlabel('x3');
tspan=[0 200];

for i=0:10
i
x0=8* rand (1,3) -4;
[t,x]=ode45(@(t,x)odefcn(x,t),tspan,x0);
plot3(x(:,1),x(:,2),x(:,3),'lineWidth',1);
end

function dxdt = odefcn(x,t)
dxdt =zeros(3,1);
dxdt(1)=-(5+x(2).^5+x(3).^8)*x(1);
dxdt(2)=-x(1)+4*x(3).^2;
dxdt(3)=-(2+sin(t))*x(3);
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar