Python ile Atış Problemi Örneği
Aşağıdaki veriler ışığında Python ile atış problemi örneği kodlayacağız. Atış sorumuz aşağıdaki şekilde açıklanmıştır:
- 50 m/s başlangıç hızıyla ve yatay eksene 60° başlangıç açısıyla bir top fırlatılmıştır.
- Topun zaman 0 ile 20 saniye arasındaki 0,5’lik artışlarla değiştiğinde bir parçacığın yatay ve dikey konumunu belirleyen bir program yazın.
- Program ayrıca topun ulaşabileceği maksimum yüksekliği de görüntülesin.
- İlk olarak while döngüsü kullanarak çözümümüzü yapalım:
import math
t = 0
v = 50
g = 9.81
liste = []
print (a)
while t <= 20:
x= v*math.cos(60*math.pi/180)*t #radyan dereceye çevrildi
y= v*math.sin(60*math.pi/180)*t - 0.5*g*t*t #radyan dereceye çevrildi
liste.append (y)
print(f"Yatayda aldığı yol: {x}\nDüşeyde aldığı yol: {y}\n")
t+=0.5
print ("Maksimum yükseklik:",max(liste))
Kodu çalıştırmak için: Trinket
- İkinci olarak for döngüsü kullanarak çözümümüzü yapalım:
import numpy as np
import math
t = 0
v = 50
g = 9.81
liste = []
for t in np.arange (0, 20, 0.5): #artış float olduğu için np.arange kullanıldı
x= v*math.cos(60*math.pi/180)*t #radyan dereceye çevrildi
y= v*math.sin(60*math.pi/180)*t - 0.5*g*t*t #radyan dereceye çevrildi
liste.append (y)
print(f"Yatayda aldığı yol: {x}\nDüşeyde aldığı yol: {y}\n")
t+=0.5
print ("Maksimum yükseklik:",max(liste))
Kodu çalıştırmak için: Trinket
- Daha okunaklı bir çözüm için fonksiyonları kullanalım:
import math
# Başlangıç değerleri
u = 50 # m/s
theta = math.radians(60) # derece cinsinden açıyı radyan cinsine dönüştürme
g = 9.81 # m/s^2
# Yatay ve dikey konumları hesaplayan fonksiyonlar
def x_position(t):
return u * math.cos(theta) * t
def y_position(t):
return u * math.sin(theta) * t - 0.5 * g * t**2
# Zaman aralığı ve adım büyüklüğü
t = 0
step = 0.5
max_time = 20
max_height = 0
print("Time(s) | X-Position(m) | Y-Position(m)")
print("--------------------------------------")
while t <= max_time:
x = x_position(t)
y = y_position(t)
print(f"{t:7.2f} | {x:13.2f} | {y:13.2f}")
if y > max_height:
max_height = y
t += step
print("--------------------------------------")
print(f"Maksimum yükseklik: {max_height:.2f} m")
Bu program, belirtilen zaman aralığındaki her adımda topun yatay (x) ve dikey (y) konumunu yazdırır. Ayrıca, program sonunda topun ulaşabileceği maksimum yüksekliği de görüntüler. Kodu çalıştırmak için: Trinket