Solving a second order ODE with ode45???
Mostra commenti meno recenti
I'm very much a beginner with Matlab, but I did manage to solve this before in a simpler problem, however applying the same technique here doesn't seem to be working! Am I overlooking something?
For context, I'm trying to find the position of an orbiting body over time given initial position and velocity vectors. The vector R points from the centre of the larger mass (which does not lie at the origin) to the centre of the orbiting mass.
Any help at all would be greatly appreciated!
function A2Q2()
close all
clc
x0 = 3207;
y0 = 5459;
z0 = 2714;
dx0 = -6.532;
dy0 = 0.7835;
dz0 = 6.142;
f0 = [x0 y0 z0 dx0 dy0 dz0];
[t,f] = ode45(@Eq, [0 3.4*60*60], f0);
plot3(f(:,1),f(:,2),f(:,3))
end
function dRdt = Eq(t,f)
mS = 100; % Placeholder value!!
mE = 5.972e24;
G = (6.67384e-11)/1000;
mu = G*(mS + mE);
x = f(1);
y = f(2);
z = f(3);
dx = f(4);
dy = f(5);
dz = f(6);
r = sqrt((x^2)+(y^2)+(z^2));
d2x = -(mu/(r^3))*x;
d2y = -(mu/(r^3))*y;
d2z = -(mu/(r^3))*z;
dRdt = [dx dy dz d2x d2y d2z]';
end
Risposte (0)
Categorie
Scopri di più su Numerical Integration and Differential Equations in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!