diff --git a/Total_Delta_V_Lunar_Assist.m b/Total_Delta_V_Lunar_Assist.m
deleted file mode 100644
index 3292e676cb754f6bbb5a4efbd0780914f4e886d9..0000000000000000000000000000000000000000
--- a/Total_Delta_V_Lunar_Assist.m
+++ /dev/null
@@ -1,602 +0,0 @@
-%% Function Description (Trajectory Computation between Earth and Mars with Lunar Gravity Assist)
-% This script computes the trajectory of a spacecraft traveling from Earth to Mars using 
-% a lunar gravity assist. The lunar gravity assist is a maneuver that uses the Moon's gravitational 
-% field to alter the spacecraft's trajectory and velocity, enabling a more efficient transfer to Mars. 
-% This approach reduces the total delta-V required for the mission, saving fuel and optimizing the transfer path.
-
-% The script begins by clearing the workspace, closing figures, and setting the output format 
-% for a fresh environment. It also sets text size and formatting options for consistency in plots 
-% and visualizations. It then defines several constants needed for the simulation, including conversion 
-% factors, gravitational parameters, and the initial orbital elements for the spacecraft's Earth parking orbit.
-
-% Key steps and calculations in this script are:
-% - Defining the initial conditions for the spacecraft's orbit around Earth, including the semi-major axis, 
-%   eccentricity, inclination, right ascension of the ascending node (RAAN), and argument of periapsis.
-% - Loading SPICE kernels to access planetary and lunar ephemerides and gravitational models, 
-%   providing accurate state vectors for the Earth, Moon, and other celestial bodies involved in the transfer.
-% - Calculating state vectors (position and velocity) for Earth and the Moon over a specified observation period 
-%   using SPICE functions. These vectors are crucial for determining the spacecraft's trajectory relative to 
-%   Earth, the Moon, and the Sun.
-% - Utilizing a Lambert solver to determine the initial and final velocity vectors required for the interplanetary 
-%   transfer from Earth to the Moon, and subsequently from the Moon to Mars. The Lambert solver accounts for 
-%   gravitational influences and computes the optimal transfer trajectory using the patched conic approximation.
-% - Implementing a lunar gravity assist by computing the change in the spacecraft's velocity vector (v-infinity) 
-%   due to the Moon's gravitational field. This change is used to adjust the spacecraft's trajectory towards Mars.
-% - Iterating over a range of possible pump (alpha) and crank (kappa) angles to find the optimal configuration 
-%   that minimizes the delta-V required for the transfer. The script evaluates each configuration and selects 
-%   the one that results in the lowest delta-V, indicating the most efficient trajectory.
-% - Propagating the trajectory using numerical integration (ode45) to simulate the spacecraft's path through 
-%   Earth's Sphere of Influence (SOI), its encounter with the Moon, and its eventual exit from Earth's SOI.
-% - Plotting the results, including the Earth's position, the Moon's trajectory, the spacecraft's path, and the 
-%   V-infinity globe showing the delta-V contours for different lunar gravity assist configurations.
-
-% The script is designed for flexibility, allowing for adjustments to various parameters, such as the initial 
-% orbital elements, observation periods, and transfer modes. It provides a comprehensive approach to computing 
-% efficient transfer trajectories for interplanetary missions using gravity assists.
-
-% Author: Thomas West
-% Date: September 3, 2024
-
-%% Script
-% Clear all variables from the workspace to ensure a fresh start
-clearvars;
-% Close all open figures to clear the plotting space
-close all;
-% Clear the command window for a clean output display
-clc;
-% Set the display format to long with general number formatting for precision
-format longG;
-% Set the text size format
-set(groot, 'DefaultAxesFontSize', 18, 'DefaultTextFontSize', 18, 'DefaultAxesFontName', 'Times New Roman', 'DefaultTextFontName', 'Times New Roman');
-
-%% Calling Spice Functions
-% Add paths to required SPICE toolboxes for planetary data access
-addpath(genpath('C:/Users/TomWe/OneDrive/Desktop/University [MSc]/Major Project/MATLAB Code/SPICE/mice'));
-addpath(genpath('C:/Users/TomWe/OneDrive/Desktop/University [MSc]/Major Project/MATLAB Code/SPICE/generic_kernels'));
-addpath(genpath('C:/Users/TomWe/OneDrive/Desktop/University [MSc]/Major Project/MATLAB Code/Functions'));
-
-% Load SPICE kernels for planetary and lunar ephemerides and gravitational models
-cspice_furnsh(which('de430.bsp')); % Binary SPK file containing planetary ephemeris
-cspice_furnsh(which('naif0012.tls')); % Leapseconds kernel, for time conversion
-cspice_furnsh(which('gm_de431.tpc')); % Text PCK file containing gravitational constants
-cspice_furnsh(which('pck00010.tpc')); % Planetary constants kernel (sizes, shapes, etc.)
-
-% Semi-major axes of Earth and moon orbits in km (average distances)
-a_earth = 149597870.7; % 1 AU in km, average distance from the Earth to the Sun
-
-a = 6878;  % Semi-major axis in km
-e = 0.0;  % Eccentricity
-i = deg2rad(75);  % Inclination in radians
-Omega = deg2rad(270 + 309.1746);
-
-omega = 0;  % Argument of periapsis in radians
-meanAnomalyDeg = 0; % degrees
-mu = 3.986e5;  % Earth's gravitational parameter in km^3/s^2
-
-%% Launch Details and Configuration
-LaunchDate = '24 Oct 2026 16:32:00 (UTC)'; % Update this line with your desired start date 17, 3.77096302004596 24
-ArrivalDate = '26 Oct 2026 13:16:00  (UTC)'; % Update this line with your desired end date
-
-Step = 0.1;
-
-DM = 1; % Transfer mode setting: 
-% -1 for a Type II trajectory, which takes the longer path, more than 180 degrees around the central body. 
-% This path may be chosen for specific mission requirements like thermal management or avoiding solar conjunctions.
-
-% +1 for a Type I trajectory, representing the shorter path, less than 180 degrees around the central body. 
-% This is generally more energy-efficient and quicker, suitable for missions prioritizing speed and fuel efficiency.
-
-%% Data Collection
-% Convert both dates to Ephemeris Time using SPICE functions
-et0 = cspice_str2et(LaunchDate);  % Convert the launch date to seconds past J2000
-et_end = cspice_str2et(ArrivalDate);  % Convert the arrival date to seconds past J2000
-
-% Calculate the total duration in seconds between start and end dates
-total_duration = et_end - et0; % Difference in ephemeris time gives duration in seconds
-
-% Calculate the number of days between the start and end date
-num_days = total_duration / 60; % Convert seconds to days using the number of seconds in a day
-
-% Round num_days to the nearest whole number to avoid fractional days
-num_days = round(num_days); % Rounding to ensure an integer number of days for vector generation
-
-% Generate a time vector from start to end date using the calculated number of days
-et = linspace(et0, et_end, num_days + 1); % Generates evenly spaced time points including both endpoints
-
-for tt = 1:length(et)  % Loop over each time point
-    Xmoon(:, tt) = cspice_spkezr('301', et(tt), 'ECLIPJ2000', 'NONE', '399');
-end
-
-% Constants
-mu_Earth = 398600.4418;  % Gravitational parameter of Earth in km^3/s^2
-
-% Define gravitational parameter for Moon (adjust as needed)
-mu_moon = 4902.8;  % Moon's gravitational parameter in km^3/s^2
-
-% Define the critical radius of periapsis
-critical_rp = 1737.4 + 100;  % Radius that indicates a potential crash
-
-% Calculate the orbital period (s) of the satellite using Kepler's third law
-P = 2 * pi * sqrt(a^3 / mu);
-
-% Create a time vector 't_vec' with 1000 points spanning one orbital period
-t_vec = linspace(0, P, 100000);
-
-% Calculate the Mean motion (rad/s)
-n = sqrt(mu / a^3);
-
-% Define time vector and orbital elements
-theta_vec = linspace(0, 2*pi, length(t_vec));  % True anomaly from 0 to 2*pi
-
-% Initialize matrix to store state vectors
-X_matrix = zeros(6, length(t_vec));
-
-% Calculate state vectors across the time vector
-for k = 1:length(t_vec)
-    X_matrix(:, k) = COE2RV([a, e, i, Omega, omega, theta_vec(k)], mu);
-end
-
-% Extract initial and final state vectors
-X_initial = X_matrix(:, 1);
-
-% Plot Satellite's trajectory if X_matrix is defined
-if exist('X_matrix', 'var')
-    
-    % Assuming a circular orbit for simplicity where mean anomaly = true anomaly
-    meanAnomalyRad = deg2rad(meanAnomalyDeg); % Convert degrees to radians
-    
-    % Find the index where the true anomaly (theta_vec) is closest to 90 degrees
-    [~, idx90] = min(abs(theta_vec - meanAnomalyRad));
-    
-end
-
-%% Lambert Solver
-delta_t = (et_end - et0);  % Calculate the transfer time in seconds
-epsilon = 1e-6;  % Set a small number for numerical precision in calculations
-
-% Spacecraft initial position vector
-r0 = X_matrix(1:3, 1);  % Extract Earth's position vector at launch
-
-% Spacecraft final position vector at Moon
-rf = Xmoon(1:3, end);  % Extract Moon' position vector at the arrival time
-
-% Call the Lambert solver function with the gathered data
-[v0, vf] = lambert_solver_moon(r0, rf, delta_t, mu, DM);  % Compute initial and final velocity vectors using the Lambert solver
-
-% Vectors
-r_enc_vector = Xmoon(1:3, end);
-v_sc_vector = vf;
-v_ga_vector = Xmoon(4:6, end);
-
-% Assume v_sc is the same as the escape velocity at this point
-v_inf_vector = vf - v_ga_vector;
-
-% Calculate magnitudes of vectors
-r_enc = norm(r_enc_vector);
-v_inf = norm(v_inf_vector);
-v_ga = norm(v_ga_vector);
-v_sc = norm(v_sc_vector);
-
-% Display the results
-fprintf('V-Infinity Value = %.2f Km/s.\n', v_inf);
-
-% Calculate vector q3 as the normalized version of v_ga
-q2 = v_ga_vector / norm(v_ga_vector);
-
-% Calculate vector q2 as the normalized cross product of v_ga and r_enc
-q3 = cross(r_enc_vector, v_ga_vector);
-q3 = q3 / norm(q3);  % Normalize to make it a unit vector
-
-% Calculate vector q1 as the cross product of q2 and q3
-q1 = cross(q2, q3); % This is already unit length if q2 and q3 are unit vectors
-
-% Initialize a figure for plotting
-figure;
-hold on;  % Hold the plot for multiple data series
-xlabel('Alpha (pump angle) [degrees]');
-ylabel('Kappa (crank angle) [degrees]');
-title('V-Infinity Globe Delta-V Contour Plot for Lunar Gravity Assist');
-grid on;
-
-% Define the range and resolution of alpha and kappa
-alpha_range = -180:Step:180;
-kappa_range = -90:Step:90;
-[Alpha, Kappa] = meshgrid(alpha_range, kappa_range);
-DeltaVGrid = zeros(size(Alpha));  % Initialize delta-V grid to zeros
-
-% Define v_Moon_required
-v_Moon_required = [-1.973070; 2.268442; 0.492901];
-
-% Loop over alpha and kappa angles
-for i = 1:length(alpha_range)
-    for j = 1:length(kappa_range)
-        alpha_deg = alpha_range(i);
-        alpha = deg2rad(alpha_deg);
-        kappa_deg = kappa_range(j);
-        kappa = deg2rad(kappa_deg);
-        
-        % Calculate new v_infinity for current alpha and kappa
-        v_infinity_new = v_inf * sin(alpha) * cos(kappa) * q1 + ...
-                         v_inf * cos(alpha) * q2 + ...
-                         v_inf * sin(alpha) * sin(kappa) * q3;
-        
-        % Calculate geocentric velocity
-        v_geocentric = v_infinity_new + v_ga_vector;
-        v_magnitude = norm(v_geocentric);
-
-        % Calculate delta-V
-        DeltaVGrid(j, i) = norm(v_geocentric - v_Moon_required);
-
-        % Specific orbital energy
-        epsilon = (v_magnitude^2) / 2 - mu_Earth / norm(r_enc_vector);  % Calculate specific orbital energy
-
-        % Turning angle and eccentricity
-        dot_product = dot(v_infinity_new, v_inf_vector);
-        angle_magnitude = norm(v_infinity_new) * norm(v_inf_vector);
-        turning_angle = acos(dot_product / angle_magnitude);
-        eccentricity = -1 / cos(turning_angle);
-
-        rp = mu_moon / (norm(v_infinity_new)^2 * (eccentricity - 1));
-
-        % Check for crashing into the Moon or not escaping Earth's SOI
-        if rp < critical_rp || epsilon < 0
-            DeltaVGrid(j, i) = NaN;  % Set to NaN to avoid plotting
-        else
-            % Calculate delta-V
-            DeltaVGrid(j, i) = norm(v_geocentric - v_Moon_required);
-        end
-    end
-end
-
-% Define the delta-V range and step size
-deltaV_min = 0;  % Minimum delta-V in km/s
-deltaV_max = 4;  % Maximum delta-V in km/s
-deltaV_step = 0.1;  % Step size for each color change in km/s
-
-% Calculate the number of levels in the colormap based on the range and step size
-nLevels = floor((deltaV_max - deltaV_min) / deltaV_step);
-
-% Find the minimum delta-V in the grid excluding NaN values
-[minDeltaV, idx] = min(DeltaVGrid(:));
-[iRow, iCol] = ind2sub(size(DeltaVGrid), idx); % Convert linear index to subscript
-
-% Extract the corresponding alpha and kappa values
-minAlpha = alpha_range(iCol); % Corresponding alpha value
-minKappa = kappa_range(iRow); % Corresponding kappa value
-
-% Display the results
-fprintf('The minimum delta-V is %.5f km/s, found at alpha (Pump) = %.2f degrees and kappa (Crank) = %.2f degrees.\n', minDeltaV, minAlpha, minKappa);
-
-% Plot the contour map
-contourf(Alpha, Kappa, DeltaVGrid, linspace(deltaV_min, deltaV_max, nLevels));
-colormap(jet(nLevels));  % Color map setup
-hColorbar = colorbar;  % Display a color bar indicating the delta-V values
-caxis([deltaV_min deltaV_max]);  % Set color axis scaling
-
-% Define the tick marks for the color bar
-ticks = deltaV_min:0.2:deltaV_max;
-set(hColorbar, 'Ticks', ticks, 'TickLabels', arrayfun(@num2str, ticks, 'UniformOutput', false));
-
-% Optional: Customize tick label formatting if necessary
-set(hColorbar, 'TickLabelInterpreter', 'latex', 'FontSize', 10);
-
-% Mark the minimum delta-V point with a hollow magenta circle
-hold on;
-plot(minAlpha, minKappa, 'mx', 'MarkerSize', 10, 'MarkerFaceColor', 'none', 'MarkerEdgeColor', 'm', 'LineWidth', 2);
-
-% Set axes labels and title
-xlabel('Pump Angle [degrees]');
-ylabel('Crank Angle [degrees]');
-title('V-Infinity Globe Delta-V Contour Plot for Lunar Gravity Assist');
-
-% Add legend entry for the minimum delta-V point with more precise formatting
-legend('Minimum Delta-V', sprintf('Min Δv: %.6f km/s at α (Pump Angle) = %.2f°, κ (Crank Angle) = %.2f°', minDeltaV, minAlpha, minKappa));
-
-% Adjust the legend position and box
-hLegend = legend('show');
-set(hLegend, 'Location', 'bestoutside', 'Box', 'on');
-
-hold off;
-
-% Legend and colormap settings
-legend('show');
-
-v0_delta = norm(v0 - X_matrix(4:6, idx90));
-v0
-X_matrix(4:6, idx90)
-v0 - X_matrix(4:6, idx90)
-% Display the delta-v
-disp('Delta-v for the inital transfer (km/s):');
-disp(v0_delta);  % Output the computed delta-v value
-
-delta_v_final = 1.109200;
-
-% Display the delta-v
-disp('Delta-v for the final transfer (km/s):');
-disp(delta_v_final);  % Output the computed delta-v value
-
-% Display the delta-v
-disp('Total Delta-v for the transfer (km/s):');
-disp(delta_v_final + v0_delta);  % Output the computed delta-v value
-
-Pump = deg2rad(minAlpha);
-Crank = deg2rad(minKappa);
-
-% Calculate new v_infinity for current alpha and kappa
-v_infinity_new = v_inf * sin(Pump) * cos(Crank) * q1 + v_inf * cos(Pump) * q2 + v_inf * sin(Pump) * sin(Crank) * q3;
-
-v_geocentric = v_infinity_new + v_ga_vector;
-
-v_magnitude = norm(v_geocentric);
-
-% Specific orbital energy
-epsilon = (v_magnitude^2) / 2 - mu_Earth / norm(r_enc_vector);  % Calculate specific orbital energy
-
-% Turning angle and eccentricity
-dot_product = dot(v_infinity_new, v_inf_vector);
-angle_magnitude = norm(v_infinity_new) * norm(v_inf_vector);
-turning_angle = acos(dot_product / angle_magnitude);
-turning_angle_deg = rad2deg(turning_angle);
-eccentricity = -1 / cos(turning_angle);
-
-rp = mu_moon / (norm(v_infinity_new)^2 * (eccentricity - 1));
-
-Velocity_Increase = norm(v_geocentric) - norm(vf);
-
-% Display the results
-% Display vector information along with magnitudes
-fprintf('Velocity Vector of Spacecraft Before Lunar Assist (Geocentric) (km/s): [%f, %f, %f], Magnitude: %f km/s\n', vf, norm(vf));
-fprintf('Velocity Vector of Spacecraft After Lunar Assist (Geocentric) (km/s): [%f, %f, %f], Magnitude: %f km/s\n', v_geocentric, norm(v_geocentric));
-fprintf('Velocity Increase in Geocentric Frame from Lunar Gravity Assist: %f km/s\n', Velocity_Increase); % Assuming vf is before and v_geocentric is after for increase calculation
-fprintf('Required Moon Velocity (v_Moon_required) (km/s): [%f, %f, %f], Magnitude: %f km/s\n', v_Moon_required, norm(v_Moon_required));
-fprintf('Velocity Vector of Spacecraft Before Lunar Assist (Selenocentric) (km/s): [%f, %f, %f], Magnitude: %f km/s\n', v_inf_vector, norm(v_inf_vector));
-fprintf('Velocity Vector of Spacecraft After Lunar Assist (Selenocentric) (km/s): [%f, %f, %f], Magnitude: %f km/s\n', v_infinity_new, norm(v_infinity_new));
-
-fprintf('Specific Orbital Energy (epsilon): %f km^2/s^2\n', epsilon);
-fprintf('Turning Angle: %f degrees\n', turning_angle_deg);
-fprintf('Eccentricity: %f\n', eccentricity);
-fprintf('Periapsis Distance (rp): %f km\n', rp);
-
-% Define the time span of the simulation
-tspan_1 = [0 delta_t]; % Time span from t = 0 to the transfer time in seconds for the simulation
-
-% Initial state vector (position and velocity)
-initial_state_1 = [r0; v0]; % Combine the position vector and initial velocity vector into a single state vector
-
-%% Propagate Orbit
-% Propagate the trajectory using ode45
-options = odeset('RelTol', 1e-13, 'AbsTol', 1e-13);  % Set options for numerical solver to high precision
-[t_out_1, state_out_1] = ode45(@(t, y) Orbit_Propagation(t, y, mu), tspan_1, initial_state_1, options);  % Numerically integrate the trajectory
-
-% Extract the position vectors from the output state for plotting
-positions_1 = state_out_1(:, 1:3);  % Extract position data from the output state for subsequent use in plotting
-velocities_1 = state_out_1(:, 4:6);  % Extract velocity data from the output state for subsequent use in plotting
-
-%% Propagate Orbit
-TOF_Leave_SOI = delta_t * 1.935807;
-
-tspan_2 = [0 TOF_Leave_SOI];
-
-% Initial state vector (position and velocity)
-initial_state_2 = [r_enc_vector; v_geocentric]; % Combine the position vector and initial velocity vector into a single state vector
-
-% Propagate the trajectory using ode45
-[t_out_2, state_out_2] = ode45(@(t, y) Orbit_Propagation(t, y, mu), tspan_2, initial_state_2, options);  % Numerically integrate the trajectory
-
-v_leaving_Moon = state_out_2(1, 4:6);
-disp('Velocity vector after Lunar Assist (km/s):');
-disp(v_leaving_Moon);  % Output the computed delta-v value
-
-v_leaving_SOI = state_out_2(end, 4:6);
-disp('Velocity vector leaving Earths SOI (km/s):');
-disp(v_leaving_SOI);  % Output the computed delta-v value
-
-disp('Velocity vector required to transfer to Mars at SOI (km/s):');
-disp(v_Moon_required');  % Output the computed delta-v value
-
-diff = v_Moon_required' - v_leaving_SOI;
-norm_diff = norm(diff);
-
-disp('Delta V vector (km/s):');
-disp(diff);  % Output the computed delta-v value
-disp('Delta V magnitude (km/s):');
-disp(norm_diff);  % Output the computed delta-v value
-
-Total_Delta_V = v0_delta + norm_diff;
-disp('Total velocity required for inital transfer (Lunar Assist) (km/s):');
-disp(Total_Delta_V);  % Output the computed delta-v value
-
-disp('Total velocity required for inital transfer (No Lunar Assist) (km/s):');
-disp(4.0357);  % Output the computed delta-v value
-
-V_Saved = 4.03578041578003 - Total_Delta_V;
-disp('Total velocity saved using a Lunar gravity assist (km/s):');
-disp(V_Saved);  % Output the computed delta-v value
-
-%% Propagate Orbit
-% Propagate the trajectory using ode45
-options = odeset('RelTol', 1e-13, 'AbsTol', 1e-13);  % Set options for numerical solver to high precision
-[t_out, state_out_1] = ode45(@(t, y) Orbit_Propagation(t, y, mu), tspan_1, initial_state_1, options);  % Numerically integrate the trajectory
-
-% Extract the position vectors from the output state for plotting
-positions_1 = state_out_1(:, 1:3);  % Extract position data from the output state for subsequent use in plotting
-velocities_1 = state_out_1(:, 4:6);  % Extract velocity data from the output state for subsequent use in plotting
-
-%% Find the index where the distance to Xmoon(1:3, end) is < 66100 km on approach
-Xmoon_end = Xmoon(1:3, end); % Assuming Xmoon is defined with your data
-approach_idx = find(arrayfun(@(idx) norm(positions_1(idx, :) - Xmoon_end') < 66100, 1:size(positions_1, 1)), 1, 'first');
-
-%% Propagate Orbit
-TOF_Leave_SOI = delta_t * 1.935807
-
-tspan_2 = [0 TOF_Leave_SOI];
-
-Exit_SOI = [245873; 273749; 41212.8];
-
-% Initial state vector (position and velocity)
-initial_state_2 = [r_enc_vector; v_geocentric]; % Combine the position vector and initial velocity vector into a single state vector
-
-% Propagate the trajectory using ode45
-[t_out, state_out_2] = ode45(@(t, y) Orbit_Propagation(t, y, mu), tspan_2, initial_state_2, options);  % Numerically integrate the trajectory
-
-% Extract the position vectors from the output state for plotting
-positions_2 = state_out_2(:, 1:3);  % Extract position data from the output state for subsequent use in plotting
-velocities_2 = state_out_2(:, 4:6);  % Extract velocity data from the output state for subsequent use in plotting
-
-%% Find the index where the distance to Xmoon(1:3, end) is > 66100 km on departure
-departure_idx = find(arrayfun(@(idx) norm(positions_2(idx, :) - Xmoon_end') > 66100, 1:size(positions_2, 1)), 1, 'first');
-
-%% Display results
-fprintf('Approach Index: %d, Time: %f seconds\n', approach_idx, t_out_1(approach_idx));
-fprintf('Departure Index: %d, Time: %f seconds\n', departure_idx, t_out_2(departure_idx));
-
-%% Display Geocentric Position Vectors at Critical Indices
-% Approach Index Geocentric Position
-approach_pos_geocentric = positions_1(approach_idx, :);
-fprintf('Approach Position Geocentric (km): [%f, %f, %f]\n', approach_pos_geocentric);
-
-% Departure Index Geocentric Position
-departure_pos_geocentric = positions_2(departure_idx, :);
-fprintf('Departure Position Geocentric (km): [%f, %f, %f]\n', departure_pos_geocentric);
-
-%% Calculate and Display Selenocentric Position Vectors
-% Approach Position Selenocentric
-approach_pos_selenocentric = approach_pos_geocentric - Xmoon_end';
-approach_pos_selenocentric_mag = norm(approach_pos_selenocentric);  % Calculate magnitude
-fprintf('Approach Position Selenocentric (km): [%f, %f, %f], Magnitude: %f km\n', approach_pos_selenocentric, approach_pos_selenocentric_mag);
-
-% Departure Position Selenocentric
-departure_pos_selenocentric = departure_pos_geocentric - Xmoon_end';
-departure_pos_selenocentric_mag = norm(departure_pos_selenocentric);  % Calculate magnitude
-fprintf('Departure Position Selenocentric (km): [%f, %f, %f], Magnitude: %f km\n', departure_pos_selenocentric, departure_pos_selenocentric_mag);
-
-%% Plotting
-figure;
-hold on;
-
-% Plot Earth as a sphere with radius 6378 km
-[Xe, Ye, Ze] = sphere(50);  % Create a 50x50 sphere
-earthRadius = 6378;  % Earth's radius in km
-surf(Xe * earthRadius, Ye * earthRadius, Ze * earthRadius, 'EdgeColor', 'none', 'FaceColor', 'blue', 'DisplayName', 'Earth');
-
-%% Plot Satellite's trajectory if X_matrix is defined
-if exist('X_matrix', 'var')
-    plot3(X_matrix(1, :), X_matrix(2, :), X_matrix(3, :), 'm--', 'LineWidth', 0.5, 'DisplayName', 'Satellite Parking Orbit Trajectory');
-    plot3(X_matrix(1, 1), X_matrix(2, 1), X_matrix(3, 1), 'g.', 'MarkerSize', 10, 'DisplayName', 'Satellite Initial Position');
-end
-
-% Plot Moon trajectory
-plot3(Xmoon(1, :), Xmoon(2, :), Xmoon(3, :), 'Color', [0.5, 0.5, 0.5], 'LineWidth', 2, 'DisplayName', 'Moon Trajectory');
-
-% Annotations for initial and final positions of the Moon
-plot3(Xmoon(1, 1), Xmoon(2, 1), Xmoon(3, 1), 'o', 'MarkerFaceColor', 'none', 'Color', [0.5, 0.5, 0.5], 'DisplayName', 'Moon Initial Position');
-plot3(Xmoon(1, end), Xmoon(2, end), Xmoon(3, end), 'o', 'MarkerFaceColor', [0.5, 0.5, 0.5], 'Color', [0.5, 0.5, 0.5], 'DisplayName', 'Moon Final Position');
-
-% Define the radius of the Moon's Sphere of Influence
-moonSOIRadius = 66100;  % Modify this value as needed
-
-% Plot transparent sphere of influence for the Moon at its final position
-[Xsoi, Ysoi, Zsoi] = sphere(50); % Generate sphere data
-
-% Translate sphere data to the final position of the Moon
-Xsoi = Xsoi * moonSOIRadius + Xmoon(1, end);
-Ysoi = Ysoi * moonSOIRadius + Xmoon(2, end);
-Zsoi = Zsoi * moonSOIRadius + Xmoon(3, end);
-
-
-% Plotting Earth as a reference point
-plot3(0, 0, 0, 'bo', 'MarkerFaceColor', 'blue', 'DisplayName', 'Earth');
-
-
-% Plotting the transfer trajectory
-plot3(positions_1(:, 1), positions_1(:, 2), positions_1(:, 3), 'm-', 'LineWidth', 1, 'DisplayName', 'Transfer Trajectory (Earth To Moon)');
-
-% Plotting the transfer trajectory
-plot3(positions_2(:, 1), positions_2(:, 2), positions_2(:, 3), 'm-', 'LineWidth', 1, 'DisplayName', 'Transfer Trajectory (Moon To SOI Exit)');
-
-% Enable data tips and customize them
-dcm_obj = datacursormode(gcf);
-set(dcm_obj,'UpdateFcn',{@myupdatefcn, positions_1, velocities_1});
-
-% Add legends and labels
-legend show;
-xlabel('X (km)');
-ylabel('Y (km)');
-zlabel('Z (km)');
-title('Propagated Transfer Orbit from Earth to SOI Edge Via Lunar Gravity Assist');
-grid on;
-axis equal;
-view(3);  % Set the view to 3D perspective
-
-% Legend to identify plot elements
-legend('show', 'Location', 'bestoutside');
-
-% Hold off to finalize the plot
-hold off;
-
-fprintf('Specific Orbital Energy (epsilon): %f km^2/s^2\n', epsilon);
-fprintf('Turning Angle: %f degrees\n', turning_angle_deg);
-fprintf('Eccentricity: %f\n', eccentricity);
-fprintf('Periapsis Distance (rp): %f km\n', rp);
-
-mu = 4902.8;  % Moon's gravitational parameter in km^3/s^2
-a = -mu / 2 * epsilon;  % Semi-major axis in km
-e = eccentricity;  % Eccentricity
-i = deg2rad(0);  % Inclination in radians
-Omega = deg2rad(0);
-
-omega = 0;  % Argument of periapsis in radians
-meanAnomalyDeg = 359.9644; % degrees
-
-% Calculate the orbital period (s) of the satellite using Kepler's third law
-P = 2 * pi * sqrt(a^3 / mu);
-
-% Create a time vector 't_vec' with 1000 points spanning one orbital period
-t_vec = linspace(0, P, 100000);
-
-% Calculate the Mean motion (rad/s)
-n = sqrt(mu / a^3);
-
-% Define time vector and orbital elements
-theta_vec = linspace(0, 2*pi, length(t_vec));  % True anomaly from 0 to 2*pi
-
-% Initialize matrix to store state vectors
-X_matrix = zeros(6, length(t_vec));
-
-% Calculate state vectors across the time vector
-for k = 1:length(t_vec)
-    X_matrix(:, k) = COE2RV([a, e, i, Omega, omega, theta_vec(k)], mu);
-end
-
-% Extract initial and final state vectors
-X_initial = X_matrix(:, 1);
-
-%% Plotting
-figure;
-hold on;
-
-%% Plot Satellite's trajectory if X_matrix is defined
-if exist('X_matrix', 'var')
-    plot3(X_matrix(1, :), X_matrix(2, :), X_matrix(3, :), 'b--', 'LineWidth', 0.5, 'DisplayName', 'Satellite Trajectory');
-end
-
-% Add legends and labels
-legend show;
-xlabel('X (km)');
-ylabel('Y (km)');
-zlabel('Z (km)');
-title('2D Gravity Assist Layout');
-grid on;
-axis equal;
-xlim([-10e4, 10e4]);  % Set limits for the x-axis
-ylim([-10e4, 10e4]);  % Set limits for the y-axis
-view(3);  % Set the view to 3D perspective
-
-% Legend to identify plot elements
-legend('show', 'Location', 'bestoutside');
-
-% Hold off to finalize the plot
-hold off;
-
-%% Clean up by unloading SPICE kernels
-cspice_kclear;  % Unload all SPICE kernels and clear the SPICE subsystem
\ No newline at end of file