Simulera kastparabel med python
Hej bästa ni!
Uppgiften är:
Jag försökte lösa deluppgift a. Tänkte såhär , vad är felet och varför min for-loop är fel?Och jag har lite svårt med att lösa probem i python för glömmer bort vilka hjälpmedel python har ex hur man skriver plot osv
Jag kan inte Python, men om du menar att variablerna x och y är arrayer eller listor så ska du väl skriva x[t] och y[t] istället för x(t) och y(t) här:
Modulen du ska importera heter väl NumPy, inte numy?
Yngve skrev:Modulen du ska importera heter väl NumPy, inte numy?
Jaaa det heter numpy och inte numy
Yngve skrev:Jag kan inte Python, men om du menar att variablerna x och y är arrayer eller listor så ska du väl skriva x[t] och y[t] istället för x(t) och y(t) här:
Det kan jag inte heller hahah. Jag vet inte om variablerna x och y är arrayer eller listor men de ska sparas i x_position=[] och y_position0[] då blir de listor. Och förstår inte heller varför ska man spara de för jag trodde att efter att for-loopen är klar då skrivs ut alla värde på x(t) och y(t) för de olika värde på t. Jag ser att min grund python kunskaper är kaos hahah
OK, om du bara använder x och y som tillfällig lagring så kan du ta bort (t) på båda ställena och bara skriva x respektive y istället.
Yngve skrev:OK, om du bara använder x och y som tillfällig lagring så kan du ta bort (t) på båda ställena och bara skriva x respektive y istället.
Gjorde det men det är ändå fel.
Visa din uppdaterade kod och vilka felmeddelanden du får.
Yngve skrev:Visa din uppdaterade kod och vilka felmeddelanden du får.
Nu verkar som att inget är fel men jag får inte plotten. JAg skrev plt.show(), jag kör koden i spyder
Jag har inte alls använt din miljö, men det här kanske har med saken att göra: https://stackoverflow.com/questions/42655533/python-spyder-choose-where-and-when-to-show-plots
Jag felsöker gärna din kod men tänker inte knappa in den från ett foto av din skärm. Använd ”infoga programmeringskod” {:} så blir det mycket enklare för alla.
sictransit skrev:Jag felsöker gärna din kod men tänker inte knappa in den från ett foto av din skärm. Använd ”infoga programmeringskod” {:} så blir det mycket enklare för alla.
Här är koden=)
"#skapa program som simulerar kastparabeln och plottar den#Simulerar banan tills föremålet slår marken. hur långt kom föremålet
import numpy as npimport matplotlib.pyplot as plt
v0=10 #utgångshastighetenalpha0=np.pi/4 #utgångsvinkeln i radianer g=9.82 #tyngdaccelerationdt= 0.005 #tidssteg
#tömma listor för att lagra positionerna x och yx_position=[]y_position=[]t=0 y=0x=0
# Total flygtid
T = 2 * v0 * np.sin(alpha0) / g
# Totala flygtiden
t_värde=np.arange(0, T, dt)
for t in t_värde:
x= v0*t*np.cos(alpha0)
y= -0.5*g*t**2 + v0*t*np.sin(alpha0)
if y<0:
break
x_position.append(x) #sparar horisentella positioney_position.append(y) #sparar vertikala positionen #Plottar
plt.figure(figsize=(12,8))plt.plot(x_position, y_position, 'purple', label='Simulerad Kastprabel ')plt.title('Simulerad katparabel med analytisk beräkning')plt.xlabel('Horisentellt avstånd (m)')plt.ylabel('Häjd över marken (m)')plt.grid()plt.legend()plt.show()
simulerade_Xavstånd= x_position[-1] #ger sista värädet från listan x_position
print (f'Föremålet kom: {simulerade_Xavstånd:.2f} meter innan det slog i marken')
print(f"Max X-position: {x_position[-1]}")print(f"Max Y-position: {y_position[-1]}") "
I min miljö, som är helt olik din (miniconda på RedHat) så får jag ett fint fönster om jag gör detta:
import matplotlib.pyplot as plt
plt.title("hej")
plt.show()