본문 바로가기

분류 전체보기321

램버트 정리 (Lambert’s theorem) 램버트(Lambert)는 궤도 운동을 하는 물체에 대한 두 지점 사이의 비행시간(time of flight)은 두 지점까지의 거리의 합, 두 지점을 직선으로 연결한 코드(chord) 길이, 궤도의 장반경만의 함수가 아닐까 생각했다. 나중에 라그랑지에 의해서 증명된 이 내용을 램버트 정리(Lambert's theorem)라고 한다. 램버트 정리는 케플러 방정식에서 도출할 수 있으며, 둘은 비슷한 문제를 푸는 관계라고 볼 수 있다. 케플러 방정식의 경우와 마찬가지로 램버트의 정리도 타원, 포물선, 쌍곡선의 세 가지 경우로 나뉜 램버트 방정식으로 표현되는데 수학적인 형식은 다음과 같다. \[ t_2-t_1=f(r_1+r_2, c, a) \tag{1} \] 여기서 \(r_1, r_2\) 는 궤도의 촛점(지구 중.. 2023. 12. 6.
케플러 문제 (Kepler’s problem) - 5 타원궤도, 포물선궤도, 쌍곡선궤도의 케플러 방정식을 이용하여 케플러 문제 (Kepler's problem)를 풀어보았는데(https://pasus.tistory.com/313). 이번에는 범용(universal) 케플러 방정식을 이용하여 케플러 문제를 풀어보도록 하겠다. 범용 케플러 방정식은 다음과 같았다. (https://pasus.tistory.com/310). \[ \begin{align} \sqrt{\mu} (t-t_0 )=S(z) \chi^3+ \frac{ \vec{r}_0 \cdot \vec{v}_0}{\sqrt{\mu}} \chi^2 C(z)+r_0 \chi \left( 1-zS(z) \right) \tag{1} \end{align} \] 여기서 \(z= \frac{\chi^2}{a}\) 이.. 2023. 12. 2.
케플러 문제 (Kepler’s problem) - 4 우주비행체의 비행시간과 실제 비행각과의 함수 관계를 다루는 문제를 케플러 문제 (Kepler's problem)라고 한다. 케플러 문제는 비행시간(time of flight) 계산 문제와 예측(prediction) 문제로 나눌 수 있다. 비행시간 계산 문제는 시간 \(t=t_0\) 에서 실제 비행각(true anomaly) \(\theta_0\)가 주어졌을 때 비행각이 \(\Delta \theta\) 만큼 변화하기까지 필요한 비행시간 \(t-t_0\) 을 계산하는 문제다. 예측 문제는 비행시간 계산 문제의 역으로서 시간 \(t=t_0\) 에서 실제 비행각 \( \theta_0\) 과 비행시간 \(t-t_0\) 이 주어졌을 때 실제 비행각 \(\theta (t)\) 를 계산하는 문제다. 이전 게시글을 통해.. 2023. 12. 1.
라그랑지 계수 (Lagrange coefficients) - 2 라그랑지 계수(Langrange coefficients)를 실제 비행각(true anomaly)의 변화량 \(\Delta \theta\) 의 함수로 표현했는데(https://pasus.tistory.com/311), 이를 범용변수(universal variable) \(\chi\) 의 함수로 표현할 수도 있다. 라그랑지 계수는 궤도중심좌표계(perifocal frame)의 각 축 성분을 이용하여 다음과 같이 계산했었다. \[ \begin{align} f &= \frac{x\dot{y}_0-y\dot{x}_0}{h}, \ \ \ \ \ g= \frac{-xy_0+yx_0}{h} \tag{1} \\ \\ \dot{f} &= \frac{\dot{x} \dot{y}_0- \dot{y} \dot{x}_0}{h},.. 2023. 11. 30.
라그랑지 계수 (Lagrange coefficients) - 1 어느 우주비행체의 초기 위치벡터 \(\vec{r}_0\) 와 속도벡터 \(\vec{v}_0\) 가 주어졌을 때, 실제 비행각(true anomaly)이 \(\Delta \theta\) 만큼 변화한 후, 변화된 위치벡터와 속도벡터 \(\vec{r}, \vec{v}\) 를 초기 위치벡터 및 속도벡터, 그리고 \(\Delta \theta\) 의 함수로 표현하고자 한다. 우주비행체는 궤도면(orbital plane) 상에서만 운동하므로(https://pasus.tistory.com/96) 위치벡터와 속도벡터 \(\vec{r}, \vec{v}\) 는 항상 궤도면 상에 존재한다. 따라서 임의의 시간에서의 위치벡터와 속도벡터는 초기 위치벡터와 속도벡터 \(\vec{r}_0, \vec{v}_0\) 의 선형 조합으로 표.. 2023. 11. 27.
케플러 문제 (Kepler’s problem) - 3 비행시간(time of flight)을 계산할 수 있는 케플러 방정식(Kepler's equation)은 \(e \approx 1\) 근방에서 계산 정확도가 크게 저하된다. 특히 \(E\) 가 \(0\) 에 가까우면 \(M_e=E-e \sin E \approx E-E=0\) 이 되므로 계산 결과의 신뢰도가 떨어진다. 또한 케플러 방정식은 궤도의 모양에 따라서 다른 방정식을 사용해야 하는 불편함이 따른다. 이러한 두 가지 단점을 극복하고자 새로운 변수를 도입한 케플러 방정식이 개발되었다. 이 방정식은 모든 궤도에 대해서 유효한 범용 방정식이다. 이 방정식을 유도해 보자. 역학적 에너지(https://pasus.tistory.com/173) \(\mathcal{E}\) 의 정의로부터 시작한다. \[ \mat.. 2023. 11. 25.
케플러 문제 (Kepler’s problem) - 2 타원궤도와 비슷한 방법으로 이번에는 쌍곡선궤도의 케플러 문제를 풀어보자. 원점이 두 초점 사이의 중간에 있는 직교 좌표계에서 쌍곡선 방정식을 표현하면 다음과 같다. \[ \frac{x^2}{a^2} - \frac{y^2}{b^2} =1 \tag{1} \] 한편 이전 게시글(https://pasus.tistory.com/171)에서 쌍곡선 방정식을 극좌표계로 다음과 같이 표현한 바 있다. \[ r= \frac{a(e^2-1)}{1+e \cos \theta }, \ \ \ \ \ a \gt 0, \ \ \ e \gt 1 \tag{2} \] 위 그림에 나와있는 것처럼 \(x\) 는 다음과 같다. \[ \begin{align} x &= -a-r_p+r \cos \theta \tag{3} \\ \\ &=-a-a(.. 2023. 11. 22.
케플러 문제 (Kepler’s problem) - 1 궤도가 주어졌을 때 우주비행체가 궤도상의 한 지점에서 다른 지점까지 비행하는데 걸리는 비행시간(time of flight)을 함수의 적분 해를 이용하여 계산해 보았다 (https://pasus.tistory.com/307). 하지만 케플러는 미적분이 발명되기 80여년전에 이미 기하학적인 방법을 사용하여 시간 \(t=t_0\) 에서의 실제 비행각(true anomaly) \(\theta_0 = \theta(t_0)\) 와 임의의 실제 비행각 \(\theta(t)\) 가 주어졌을 때 비행시간 \(t-t_0\) 을 계산하였고, 또 역으로 시간 \(t=t_0\) 에서의 실제 비행각 \(\theta_0 \) 와 임의의 비행시간 \(t-t_0\) 가 주어졌을 때 실제 비행각 \(\theta(t)\) 를 구하는 예측.. 2023. 11. 18.
궤도의 비행각과 비행시간 시간 \(t=t_0\) 에서 주어진 위치벡터 및 속도벡터를 고전 궤도요소(COE)로 변환하면 궤도의 크기, 모양, 자세에 대해 알 수 있다 (https://pasus.tistory.com/287). 궤도의 크기, 모양, 자세는 ECI좌표계에서 일정하게 유지되고 6개의 궤도요소 중에서 궤도상의 우주비행체의 위치를 나타내는 실제 비행각(true anomaly) \(\theta\) 만이 시간의 함수이므로, 우주비행체는 마치 우주공간에 있는 미리 정해진 철로를 따라 운행하는 기차와 같다고 볼 수 있다. 이제 궤도가 주어졌을 때 우주비행체가 궤도상의 한 지점에서 다른 지점까지 비행하는데 걸리는 비행시간(time of flight)을 계산해 보도록 하자. 궤도 상에서 우주비행체의 위치는 실제 비행각으로 나타낼 수 .. 2023. 11. 16.
플롭 (Flop) 선형대수 수치 알고리즘의 복잡성을 표현하는 방법 중의 하나로 알고리즘을 수행하는 데 필요한 부동소수점 연산의 총 횟수를 사용한다. 부동소수점 연산 (floating point operation)을 간단히 플롭(flop)이라고 하는데, flop은 두 개의 부동소수점 숫자의 덧셈, 뺄셈, 곱셈 또는 나눗셈 등을 한 번 수행하는 것으로 정의한다. 컴퓨터의 성능을 수치로 나타내는 단위로서 사용되는 FLOPS도 있다. 이 때의 FLOPS는 FLoating point Operations Per Second의 약자로 해당 컴퓨터가 처리할 수 있는 초당 얼마나 많은 연산을 처리하는 지를 나타내는 단위다. 여기서는 부동소수점 연산(flop)의 횟수(count) 라는 의미의 flops에 대해서 설명한다. 플롭의 횟수, 즉.. 2023. 11. 9.