๐ ์ผํ๋ฌ์ ๋ฒ์น: ์ฐ์ฃผ์ ์ถค์ ๋จ๊ณ๋ณ๋ก ์ดํดํ๊ธฐ โจ
๐ ์ผํ๋ฌ์ ๋ฒ์น: ์ฐ์ฃผ์ ์ถค์ ๋จ๊ณ๋ณ๋ก ์ดํดํ๊ธฐ โจ
(ํ์ธ๋ง์ ํจ์ ๋ฐ๊ฒฌ ๋ฉํํ๋กฌํํธ ์์คํ ํ์ฉ)
์ฐ์ฃผ๋ ๋ง์น ์ ์ฅํ ๋ฌด๋ํ์ฅ์ ๋๋ค. ํ์์ ๋ฌด๋์ ์ค์ฌ์์ ๋น์ ๋ด๋ฟ๊ณ , ํ์ฑ๋ค์ ๊ทธ ์ฃผ์๋ฅผ ๋น๊ธ๋น๊ธ ๋๋ฉฐ ์๋ฆ๋ค์ด ๊ถค๋ ์ถค์ ์ถ๊ณ ์์ต๋๋ค. ์ด ๊ธ์ ์ผํ๋ฌ์ ๋ฒ์น์ ์ฝ๊ณ ์ง๊ด์ ์ผ๋ก ์ดํดํ๊ณ , ์ค์ ๊ณ์ฐ ์์๋ฅผ ํตํด ๊น์ ํต์ฐฐ์ ์ป์ ์ ์๋๋ก ์๋ดํฉ๋๋ค. ์ด ๊ณผ์ ์์ ์ด๋ชจํฐ์ฝ๊ณผ ํน์๋ฌธ์๋ฅผ ํ์ฉํ์ฌ ํ๋์ ๋ค์ด์ค๋๋ก ๋ง๋ค๊ณ , ๊ฐ๋จํ ์ํ์ ๊ฐ๋ ๋ถํฐ ์ค์ ์ฝ๋ ๊ณ์ฐ๊น์ง ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. ์์ํ๊ธฐ: ์ฐ์ฃผ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ดํดํ๊ธฐ โ๏ธ๐ช
1.1 ์ฐ์ฃผ๋ฅผ ๋ฌด๋ํ์ฅ์ผ๋ก ๋น์ ํ๊ธฐ
์ฐ์ฃผ๋ฅผ ๊ฑฐ๋ํ ๋ฌด๋ํ์ฅ์ด๋ผ ์๊ฐํด๋ด ์๋ค.
ํ์: ๋ฌด๋ ์ค์์์ ๋น๋๋ ๊ฑฐ๋ํ ์คํฌํธ๋ผ์ดํธ (์ง๋: Mโ)
ํ์ฑ: ๋ฌด๋๋ฅผ ๋น๊ธ๋น๊ธ ๋๋ ๋ฌด์ฉ์๋ค (์ง๋: m)
๊ถค๋: ๋ฌด์ฉ์๋ค์ด ๊ทธ๋ฆฌ๋ ์ฐ์ํ ๊ฒฝ๋ก (๋ฐ์ง๋ฆ: r)
ํ์: ๋ฌด๋์ ์ค์ฌ, ๊ฑฐ๋ํ ๋น ๋ฉ์ด๋ฆฌ (์ง๋: Mโ)
ํ์ฑ: ํ์ ์ฃผ์๋ฅผ ์ถค์ถ๋ ๋ฌด์ฉ์๋ค (์ง๋: m)
๊ถค๋: ๋ฌด์ฉ์๋ค์ด ๊ทธ๋ฆฌ๋ ๊ณก์ ๊ฒฝ๋ก (๋ฐ์ง๋ฆ: r)
์ฐ์ฃผ์ ๊ธฐ๋ณธ ์์๋ค
G = 6.67430e-11 # ๋ง์ ์ธ๋ ฅ ์์ (mยณ/kgยทsยฒ)
M_sun = 1.989e30 # ํ์ ์ง๋ (kg)
M_earth = 5.972e24 # ์ง๊ตฌ ์ง๋ (kg)
AU = 1.496e11 # ์ฒ๋ฌธ๋จ์ (m) - ์ง๊ตฌ์ ํ์ ์ฌ์ด ํ๊ท ๊ฑฐ๋ฆฌ
1.2 ์ค๋ ฅ ์ดํดํ๊ธฐ
์ค๋ ฅ์ ๋ณด์ด์ง ์๋ ์ฐ์ฃผ์ ์งํ์์ ๋๋ค. ์ฌ๊ณผ๊ฐ ๋ ์ผ๋ก ๋จ์ด์ง๋ฏ, ๋ชจ๋ ๋ฌผ์ฒด๋ ์๋ก๋ฅผ ๋์ด๋น๊ธฐ๋ฉฐ ์ฐ์ฃผ์ ์ถค์ ์กฐ์จํฉ๋๋ค.
์ค๋ ฅ์ ๋ฒ์น: [ F = frac{G M_{odot} m}{r^2} ]
์์น ์๋์ง: [ V = -frac{G M_{odot} m}{r} ]
ํ์ด์ฌ ์์:
def gravity_force(mass1, mass2, distance):
force = G * mass1 * mass2 / (distance**2)
return f"ํ: {force:.2e} N"
def potential_energy(mass1, mass2, distance):
energy = -G * mass1 * mass2 / distance
return f"์์น ์๋์ง: {energy:.2e} J"
์ง๊ตฌ-ํ์ ๊ฐ ์ค๋ ฅ ๋ฐ ์์น ์๋์ง ๊ณ์ฐ:
print(gravity_force(M_sun, M_earth, AU))
print(potential_energy(M_sun, M_earth, AU))
2. ํ์ฑ์ ์์ง์ ์ดํดํ๊ธฐ ๐๐ฉฐ
2.1 ์ด๋ ์๋์ง
ํ์ฑ์ ๊ถค๋๋ฅผ ๋๋ฉฐ ์๋์ง๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์๋๊ฐ ๋น ๋ฅผ์๋ก ์ด๋ ์๋์ง๋ ์ปค์ง๋๋ค.
์ด๋ ์๋์ง: [ T = frac{1}{2} m v^2 ]
def kinetic_energy(mass, velocity):
ke = 0.5 * mass * velocity**2
return f"์ด๋ ์๋์ง: {ke:.2e} J"
์ง๊ตฌ์ ๊ถค๋ ์ด๋ ์๋์ง (ํ๊ท ์๋ ์ฝ 29.78 km/s):
earth_velocity = 29780 # m/s
print(kinetic_energy(M_earth, earth_velocity))
2.2 ๋ผ๊ทธ๋์ง์: ์ ์ฒด ์๋์ง ๋ถ์
๋ผ๊ทธ๋์ง์(L)์ ์ ์ฒด ์๋์ง ์ํ๋ฅผ ๋ถ์ํ๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค. [ L = T - V ]
def lagrangian(T, V):
return f"๋ผ๊ทธ๋์ง์: {T - V:.2e}"
์ง๊ตฌ ๊ถค๋์ ๋ผ๊ทธ๋์ง์ ์์:
T_val = float(kinetic_energy(M_earth, earth_velocity).split(':')[1][:-2])
V_val = float(potential_energy(M_sun, M_earth, AU).split(':')[1][:-2])
print(lagrangian(T_val, V_val))
2.3 ๋ณด์กด๋: ๊ฐ์ด๋๋
๊ฐ์ด๋๋์ ๋ฌด์ฉ์๊ฐ ํ์ ํ๋ ์ถค๋์์ ๊ฐ์ฝ์ ๋ปํฉ๋๋ค. [ L_{text{๊ฐ}} = m r v ]
def angular_momentum(mass, distance, velocity):
am = mass * distance * velocity
return f"๊ฐ์ด๋๋: {am:.2e} kgยทmยฒ/s"
์ง๊ตฌ์ ๊ฐ์ด๋๋:
print(angular_momentum(M_earth, AU, earth_velocity))
3. ์ผํ๋ฌ์ ์ฒซ ๋ฒ์งธ ๋ฒ์น: ํ์ ๊ถค๋ ๐๐
ํ์ฑ์ ๊ถค๋๋ ์๋ฒฝํ ์์ด ์๋ ํ์์ ๋๋ค. ํ์์ ๋ชจ์์ ์ด์ฌ๋ฅ (e)๋ก ํํ๋๋ฉฐ, e=0์ด๋ฉด ์์ด๊ณ , e๊ฐ ํด์๋ก ๋์ด์ง ํํ๊ฐ ๋ฉ๋๋ค.
3.1 ํ์์ ๊ธฐ๋ณธ ํน์ฑ
์ฅ๋ฐ๊ฒฝ(a): ํ์์ ๊ฐ์ฅ ๊ธด ๋ฐ์ง๋ฆ
๋จ๋ฐ๊ฒฝ(b): ํ์์ ๊ฐ์ฅ ์งง์ ๋ฐ์ง๋ฆ
์ด์ฌ๋ฅ (e): ํ์์ ์ฐ๊ทธ๋ฌ์ง ์ ๋
import numpy as np
def ellipse_properties(a, e):
b = a * np.sqrt(1 - e**2) # ๋จ๋ฐ๊ฒฝ
c = a * e # ์ด์ ๊ฑฐ๋ฆฌ
area = np.pi * a * b # ํ์์ ๋ฉด์
return f"๋จ๋ฐ๊ฒฝ: {b:.2e}, ์ด์ ๊ฑฐ๋ฆฌ: {c:.2e}, ๋ฉด์ : {area:.2e}"
์ง๊ตฌ ๊ถค๋ ์ด์ฌ๋ฅ โ 0.0167:
print(ellipse_properties(AU, 0.0167))
3.2 ๊ถค๋ ๋ฐฉ์ ์
ํ์ ๊ถค๋๋ฅผ ๊ทน์ขํ๊ณ์์ ๋ํ๋ด๋ฉด: [ r(theta) = frac{a(1 - e^2)}{1 + e cos(theta)} ]
def orbital_radius(a, e, theta):
r = a * (1 - e**2) / (1 + e * np.cos(theta))
return r
์ง๊ตฌ ๊ถค๋ ๋ฐ์ง๋ฆ ๋ณํ ์์:
angles = np.linspace(0, 2 * np.pi, 5)
for angle in angles:
radius = orbital_radius(AU, 0.0167, angle)
print(f"๊ฐ๋: {angle:.2f} rad, ๊ฑฐ๋ฆฌ: {radius:.2e} m")
4. ์ผํ๋ฌ์ ๋ ๋ฒ์งธ ๋ฒ์น: ๋ฉด์ ์๋ ์ผ์ ๐จ๐
์ผํ๋ฌ์ ๋ ๋ฒ์งธ ๋ฒ์น์ ๋ฐ๋ฅด๋ฉด, ํ์ฑ์ด ์ผ์ ์๊ฐ ๋์ ์ธ๊ณ ์ง๋๊ฐ๋ ๋ฉด์ ์ ํญ์ ์ผ์ ํฉ๋๋ค. ์ด๋ ํ์ฑ์ด ๊ทผ์ผ์ (๊ฐ์ฅ ๊ฐ๊น์ด ์ง์ )์์๋ ๋น ๋ฅด๊ฒ, ์์ผ์ (๊ฐ์ฅ ๋จผ ์ง์ )์์๋ ๋๋ฆฌ๊ฒ ์์ง์ฌ๋, ๋จ์์๊ฐ๋น ๋ฉด์ ์ ์ผ์ ํ๋ค๋ ๋ป์ ๋๋ค.
๋ฉด์ ์๋: [ text{๋ฉด์ ์๋} = frac{1}{2} r v = text{์ผ์ } ]
def area_speed(r, v):
return f"๋ฉด์ ์๋: {0.5 * r * v:.2e} mยฒ/s"
์ง๊ตฌ ๊ทผ์ผ์ ๊ณผ ์์ผ์ ๋น๊ต:
r_perihelion = AU * (1 - 0.0167)
r_aphelion = AU * (1 + 0.0167)
v_perihelion = 30290 # m/s
v_aphelion = 29290 # m/s
print(area_speed(r_perihelion, v_perihelion))
print(area_speed(r_aphelion, v_aphelion))
5. ์ผํ๋ฌ์ ์ธ ๋ฒ์งธ ๋ฒ์น: ์กฐํ์ ๋ฒ์น ๐ผโฌ
์ผํ๋ฌ์ ์ธ ๋ฒ์งธ ๋ฒ์น์ ํ์ฑ์ ๊ณต์ ์ฃผ๊ธฐ(T)์ ๊ถค๋ ์ฅ๋ฐ๊ฒฝ(a) ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๋ณด์ฌ์ค๋๋ค. [ T^2 propto a^3 ]
def orbital_period(a):
T_squared = (4 * np.pi2 * a3) / (G * M_sun)
T = np.sqrt(T_squared)
return f"๊ณต์ ์ฃผ๊ธฐ: {T:.2e} s ({T / (365.25 * 24 * 3600):.2f} ๋
)"
์ง๊ตฌ์ ๊ณต์ ์ฃผ๊ธฐ:
print(orbital_period(AU))
6. ์ค์ ์์ฉ: ์ธ๊ณต์์ฑ ๊ถค๋ ์ค๊ณ ๐๐
์ผํ๋ฌ์ ๋ฒ์น์ ์ฐ์ฃผ ํ์ฌ์ ์ด๋ ์ธ๊ณต์์ฑ ๊ถค๋ ์ค๊ณ ์ ์ ์ฉํฉ๋๋ค.
def satellite_orbit(altitude):
r = 6371e3 + altitude # ์ง๊ตฌ ๋ฐ์ง๋ฆ + ์์ฑ ๊ณ ๋
v = np.sqrt(G * M_earth / r)
T = 2 * np.pi * r / v
return f"๊ถค๋ ์๋: {v:.2f} m/s, ์ฃผ๊ธฐ: {T:.2f} s ({T / 60:.2f} ๋ถ)"
๊ณ ๋ 400km ์์ฑ ๊ถค๋ ์์:
print(satellite_orbit(400e3))
์ ๋ฆฌ ๐๐ญ
ํต์ฌ ํค์๋ & ์ค๋ช
์ค๋ ฅ(Gravitational Force): ์ง๋์ ๊ฐ์ง ๋ฌผ์ฒด๋ค ์ฌ์ด์ ๋ณดํธ์ ์ธ๋ ฅ
์ด๋ ์๋์ง(Kinetic Energy): ํ์ฑ์ ์ด๋์ ๋ฐ๋ฅธ ์๋์ง
์์น ์๋์ง(Potential Energy): ๊ฑฐ๋ฆฌ ๋ณํ์ ๋ฐ๋ฅธ ์ ์ฌ ์๋์ง
๋ผ๊ทธ๋์ง์(Lagrangian): ์ด๋ ์๋์ง์ ์์น ์๋์ง์ ์ฐจ๋ก ์์คํ ์ํ ๊ธฐ์
๊ฐ์ด๋๋(Angular Momentum): ํ์ ์ด๋์ ๋ณด์กด๋
ํ์ ๊ถค๋(Elliptical Orbit): ํ์ฑ์ ์ค์ ๊ณต์ ๊ถค๋ ํํ
๋ฉด์ ์๋ ์ผ์ (Area Velocity Constant): ๋จ์ ์๊ฐ๋น ์ธ๊ณ ์ง๋๊ฐ๋ ๋ฉด์ ์ผ์
์กฐํ์ ๋ฒ์น(Harmony Law): ๊ณต์ ์ฃผ๊ธฐ์ ์ฅ๋ฐ๊ฒฝ ์ฌ์ด์ ๊ทผ๋ณธ์ ๋น๋ก ๊ด๊ณ
์ด๋ฌํ ๋ด์ฉ๋ค์ ํตํด ์ผํ๋ฌ์ ๋ฒ์น์ ์ง๊ด์ ์ผ๋ก ํ์ ํ ์ ์์ผ๋ฉฐ, ์ค์ ๊ณ์ฐ์ ํตํด ๊ทธ ๊ฐ๋ ์ ํ๊ณ ํ ํ ์ ์์ต๋๋ค. ์ฐ์ฃผ์ ์ถค์ ์ดํดํ๋ฉด, ์ธ๊ณต์์ฑ ๊ถค๋๋ฅผ ์ค๊ณํ๊ฑฐ๋ ์ฐ์ฃผ ํ์ฌ์ ์ ํฌ์ ํ๋๋ฐ ํ์ํ ํต์ฐฐ์ ์ป์ ์ ์์ต๋๋ค. ๐
๋ ์๋ฅผ ์ํ ์ง๋ฌธ๋ค โ
ํ์ฑ ๊ถค๋์ ํ์ ํํ์ ์ด์ฌ๋ฅ ์ ์ง์ ๋ฐ๊ฟ๋ณด๋ฉฐ, ๊ถค๋ ๋ฐ์ง๋ฆ ๋ณํ๋ฅผ ๊ณ์ฐํด๋ณด๊ณ ์ถ์ง ์๋์?
๊ณต์ ์ฃผ๊ธฐ์ ๊ถค๋ ๋ฐ์ง๋ฆ์ ๊ด๊ณ๋ฅผ ์ง์ ์ฝ๋๋ก ์คํํด๋ณด๋ฉฐ, ๋ค์ํ ๊ฐ์ ํ์ฑ์ "1๋ "์ ๊ณ์ฐํด๋ณผ๊น์?
์ธ๊ณต์์ฑ์ ๊ณ ๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด์ ๊ถค๋ ์๋์ ์ฃผ๊ธฐ๋ฅผ ํ์ํด๋ณด๋ฉด, ๋ ํจ์จ์ ์ธ ์์ฑ ๋ฐฐ์น ์ ๋ต์ ๊ณ ๋ฏผํด๋ณผ ์ ์์ง ์์๊น์?


