12 svar
68 visningar
I am Me behöver inte mer hjälp
I am Me 720
Postad: 25 nov 10:15 Redigerad: 25 nov 10:18

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 

Yngve 40323 – Livehjälpare
Postad: 25 nov 10:31

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:

Yngve 40323 – Livehjälpare
Postad: 25 nov 10:33 Redigerad: 25 nov 10:34

Modulen du ska importera heter väl NumPy, inte numy?

I am Me 720
Postad: 25 nov 10:41
Yngve skrev:

Modulen du ska importera heter väl NumPy, inte numy?

Jaaa det heter numpy och inte numy

I am Me 720
Postad: 25 nov 10:49
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 

Yngve 40323 – Livehjälpare
Postad: 25 nov 10:55

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.

I am Me 720
Postad: 25 nov 11:40
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.

Yngve 40323 – Livehjälpare
Postad: 25 nov 12:24

Visa din uppdaterade kod och vilka felmeddelanden du får.

I am Me 720
Postad: 25 nov 13:39
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 

Laguna Online 30566
Postad: 25 nov 14:04

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

sictransit 1084 – Livehjälpare
Postad: 25 nov 21:36 Redigerad: 25 nov 21:36

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. 

I am Me 720
Postad: 26 nov 08:41 Redigerad: 26 nov 08:46
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]}")  "

Laguna Online 30566
Postad: 27 nov 10:28

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()

Svara
Close