Matlab - Duda Problema de los tres cuerpos (Restringido)

 
Vista:
Imágen de perfil de Kevin

Duda Problema de los tres cuerpos (Restringido)

Publicado por Kevin (2 intervenciones) el 18/01/2023 00:06:58
Que tal, buen día.
Tengo un pequeño inconveniente con un programa que estoy trabajando.
Deseo obtener una grafica como la primer imagen, dicha imagen fue hecha con Python, estoy haciendo algo similar con MATLAB pero la grafica que obtengo es como la segunda imagen, no logro hacer que la trayectoria quede dentro del circulo azul graficado.
Alguien tiene alguna sugerencia? creo que puede ser por el vector "r" cuando lo gráfico
Estoy usando el Ode45 para resolver las ecuaciones diferenciales, que son las que se muestran
1
2
3

Adjunto el codigo que llevo trabajando

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
clear all;
clc;
 
%masas Tierra-Luna
m1=5.974E24;  %kg
m2=7.348E22; %kg
pi2=m2/(m1+m2);
 
%condiciones iniciales
x0= 1-pi2;
y0= 0.0455;
z0= 0;
vx0= -0.5;
vy0= 0.5;
vz0= 0;
 
 
%Después colocamos todo en vectores de estado
r0 =[x0 y0 z0]
v0 =[vx0 vy0 vz0];
Y_0 =[r0 v0];
 
t_0 = 0;  % nondimensional time
t_f = 20; % nondimensional time
tp=linspace(t_0,t_f,1000)
 
%resolvemos la ecuación con ODE45 de Matlab Runge-Kutta 4-5
[t,Y]=ode45(@crtbp,[t_0 t_f], Y_0);
 
r = Y(:, 1:3);
v = Y(:, 4:6);
 
 
 
w=linspace(0,2*pi,100);
x_2 =((1 - pi2)*cos(w));
y_2 =((1 - pi2)*sin(w));
 
figure
plot(t,Y);
 
figure
plot(r(:,1),r(:,2),'r');
hold on
plot(x_2,y_2,'b');
hold on
plot(-pi2,0,'b*');
hold on
plot(1-pi2,0,'g*');
hold on
plot(x0,y0,'ro');
 
%Funcion para resolver las ecuaciones de movimiento
function dxdt=crtbp(t,x)
m1=5.974E24;  %kg
m2=7.348E22; %kg
pi2=m2/(m1+m2);
 
% Renombrar variables de las ecuaciones de movimientos
% x=x(1) x'=x(2) y=x(3) y'=x(4) z=x(5) z'=x(6)
% x=x1 , x1'=x2 . y=x3 , x3'=x4
%=2*+x-(1-pi2/(sigma)^3)*(x+pi2)-(Pi2/(psi)^3)*(x-1+pi2)
%=-2*+y-(1-pi2/(sigma)^3)*y-(Pi2/(psi)^3)*y
%=-(1-pi2/(sigma)^3)*z-(Pi2/(psi)^3)*z
sig=[(x(1) + pi2),x(3),x(5)];
phi=[(x(1) - 1 + pi2),x(3),x(5)];
s=norm(sig);
p=norm(phi);
dxdt(1)=x(2);
dxdt(2)=x(1)+2*x(4)-((1-pi2/(s)^3)*(x(1)+pi2))-(pi2/(p)^3)*(x(1)-1+pi2);
dxdt(3)=x(4);
dxdt(4)=x(3)-2*x(2)-((1-pi2/(s)^3)*x(3))-(pi2/(p)^3)*x(3);
dxdt(5)=x(6);
dxdt(6)=-((1-pi2/(s)^3)*x(5))-((pi2/(p)^3)*x(5));
dxdt=[dxdt(1);dxdt(2);dxdt(3);dxdt(4);dxdt(5);dxdt(6)];
end
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