# Eksempel 6.2.1 AMS side 153 # Mars Express <3 # Ann-Cecilie Larsen, 11 March 2023 # a.c.larsen@fys.uio.no # Last version: 04 March 2024 import numpy as np import matplotlib.pyplot as plt # Lese datafil t, x, y, z = np.loadtxt('marsexpresslr.txt', usecols = [0, 1, 2, 3], unpack = True) n = len(t) r = np.zeros((n,3),float) # Posisjonsvektor, antall rader: n; antall kolonner: 3 r[:, 0] = x # For alle rader fyller vi x-verdiene i kolonne 0 r[:, 1] = y # For alle rader fyller vi y-verdiene i kolonne 1 r[:, 2] = z # For alle rader fyller vi z-verdiene i kolonne 2 # Vi vil gjerne plotte forflytningen i xy-planet, s? vi regner ut dr: for i in range(n-1): plt.plot(r[i, 0], r[i, 1], 'o') # Plotte x- og y-posisjon dr = r[i+1, :] - r[i, :] # Regne ut forflytning b?de for x, y, og z, og for alle datapunkter # Vi plotter kun i xy-planet plt.quiver(r[i, 0], r[i, 1], dr[0], dr[1], angles = 'xy', scale_units = 'xy', scale = 1) # S? vil vi ogs? gjerne regne ut endring i hastighet Delta v, prop. med akselerasjon for i in range(1,n-1): plt.plot(r[i, 0], r[i, 1], 'o') # Plotte x- og y-posisjon # Regne ut endring i hastighet for alle datapunkter dr2 = (r[i+1, :] - r[i, :]) - (r[i, :] - r[i-1, :]) # Igjen plotter vi kun i xy-planet. "quiver"-funksjonen som lager piler: # https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.quiver.html plt.quiver(r[i, 0], r[i, 1], dr2[0], dr2[1], angles = 'xy', scale_units = 'xy', scale = 1) plt.xlabel('x [km]') plt.ylabel('y [km]') plt.axis('equal') plt.tight_layout() plt.show()