언어/Python

일반인을 위한 물리 코딩 - 중간 과제 어린왕자 행성 크기와 중력, 중력 가속도

이게될까 2024. 4. 14. 08:08
728x90
728x90

 

1)    어린 왕자 행성의 크기를 인터넷에서 찾아서 추정하고, 표면 중력이 지구 중력과 같으려면 행성의 질량이 어느 정도이어야 하는가?

2)    어린왕자의 키가 대략 1m일 때, 발에 작용하는 중력가속도와 머리에 작용하는 중력가속도의 차이는 어떻게 되는가?

3)    어린 왕자 행성에서 어린 왕자가 탈출하려면 속력은 얼마 이상이어야 하는가?

4)    탈출하지 못하고 계속 원 궤도를 도는 속도는 얼마인가?

Web VPython 3.2
# 별
plant = sphere(pos = vector(0,0,0), radius = 3.84, color = color.yellow)

# 어린왕자
man = box(pos =vector(3.84+0.6,0,0),size = vec(1,0.4,0.4),color = color.blue)
man.mass = 25 #kg

earth_mass = 5.792e24 #kg
earth_radious = 6.4e9 #m

G = 6.67e-11#Nm^2/kg^2

earth_g = G * earth_mass/(earth_radious*earth_radious)
plant.g = earth_g

# 1) 어린 왕자 행성의 크기를 인터넷에서 찾아서 추정하고, 표면 중력이 지구 중력과 같으려면 행성의 질량이 어느 정도이어야 하는가? 
plant.mass = plant.g /G * plant.radius *plant.radius
print('행성의 질량:' ,plant.mass)

# 2) 어린왕자의 키가 대략 1m일 때, 발에 작용하는 중력가속도와 머리에 작용하는 중력가속도의 차이는 어떻게 되는가?
head_g = G * plant.mass /((plant.radius+1)*(plant.radius+1))
print('중력가속도의 차이: ', (plant.g - head_g))


# 3) 어린 왕자 행성에서 어린 왕자가 탈출하려면 속력은 얼마 이상이어야 하는가?
escape_v = sqrt(2*G*plant.mass/plant.radius)
print('탈출속도 : ' , escape_v)


# 4) 탈출하지 못하고 계속 원 궤도를 도는 속도는 얼마인가?
nonescape_v = sqrt(G*plant.mass/plant.radius)
print('공전 속도: ',nonescape_v)

# 초기 속도 설정으로 탈출, 및 공전 확인할 수 있습니다.
man.v = vector(0, escape_v,0)
plant.v = -man.mass/plant.mass *man.v

t = 0 
dt = 60

while t<60 * 60 * 24 :
    rate (60)
    
    r = man.pos - plant.pos
    
    man.F = -G* plant.mass*man.mass /mag(r)**2*norm(r)
    plant.F = -  man.F
    man.v = man.v + man.F /man.mass * dt
    plant.v = plant.v + plant.F /plant.mass * dt
    man.pos = man.pos + man.v*dt
    plant.pos = plant.pos + plant.pos * dt
    t = t + dt

 

728x90