전체 글368 태양동기궤도(Sun Synchronous Orbit) 태양동기궤도(SSO, sun synchronous orbit)는 인공위성의 궤도면(orbital plane)이 지구 공전 궤도와 동일한 각속도로 회전하게 만들어서 궤도면이 지구와 태양 사이의 각을 일정하게 유지하게 한 궤도다. 이를 '궤도가 태양과 동기화되어 있다' 하여 태양동기궤도라고 한다. 궤도면과 태양 사이의 각이 일정하게 유지되면 승교선의 지방시(LTAN, local time of ascending node)가 고정되기 때문에, 이 궤도를 도는 SSO 위성을 동일한 지방시(local time)에 동일한 위도로 통과시킬 수 있어서 매일 같은 태양의 조도 조건에서 원격 관측의 임무를 용이하게 수행할 수 있고, 상대적으로 위성의 태양 전지판 제어를 간소화할 수 있다. 아래 그림은 지구가 태양 주위를 공.. 2025. 2. 23. [LLM] Llama3.2가 알려주는 주식 매매 결정 Llama3.2:3B 모델에게 특정 주식의 데이터를 던져주고 해당 주식을 팔 것인지 (SELL), 살 것인지 (BUY), 그냥 들고 있을 것인지 (HOLD) 판단하게 하고, 그 이유를 물어보려고 한다. 주식 데이터 수집은 KRX에서 한국의 주식 데이터를 스크래핑하는 파이썬 모듈인 pykrx를 이용한다. 특정 주식의 시가(open), 고가(high), 저가(low), 종가(close), 거래량(volume), 거래대금, 등락률은 pykrx의 get_market_ohlcv 함수를 이용하여 얻을 수 있다. get_market_ohlcv 함수는 시작일/종료일/티커 세 개의 파라미터를 입력받아 OHLCV를 일자별로 정렬하여 DataFrame으로 반환한다. 다음은 2025년1월1일 부터 2025년 2월 1.. 2025. 2. 15. [LLM] Ollama 모델에서 OpenAI Chat API 사용하기 Ollama에서도 OpenAI의 chat completions API를 사용할 수 있게 되어서 OpenAI용으로 구축된 기존 툴을 Ollam를 통해 이용할 수 있다. 기존의 Ollama 파이썬 라이브러리를 이용하는 방법과 OpenAI의 client.chat.completions.create()를이용하는 방법을 비교해 보기 위하여 Llama3.2:3B에게 피보나치(Fibonacci) 수열을 생성하는 파이썬 함수를 코딩해 보라고 했다. 먼저 파이썬 라이브러리를 이용하는 방법은 다음과 같다. import ollamaresponse = ollama.chat( model="llama3.2:3b", #model = 'deepseek-r1:8b', messages=[ { .. 2025. 2. 15. 시뮬레이티드 어닐링 (SA)의 TSP 적용 시뮬레이티드 어닐링 (SA, simulated annealing)은 처음에 순회외판원문제(TSP, traveling salesman problem)와 같은 조합 최적화(combinatorial optimization) 문제를 해결하기 위해 도입되었다. 대표적인 조합 최적화 문제인 TSP는 \(n\) 개의 서로 다른 도시의 좌표 \((x,y)\) 가 주어졌을 때, 각 도시를 한번씩 모두 방문하는 최단 경로를 찾는 문제다. TSP는 이동 경로 계획, 생산 계획, 적재 계획, 마이크로칩 설계, 유전학 등 응용 분야가 꽤 넓다. 조합 최적화 문제의 대부분은 NP-hard문제에 해당하기 때문에 다항식 시간 최적해를 구할 수 없다. 이 때문에 개별 개체의 수가 매우 큰 경우에는 최적해 대신에 빠르고 효율적으로 계산.. 2025. 2. 12. 시뮬레이티드 어닐링 (Simulated Annealing) 시뮬레이티드 어닐링 (SA, simulated annealing)은 1983년에 커크패트릭(Kirkpatrick)이 개발한 최적화 알고리즘으로서 물리적 어닐링 과정을 최적화의 관점에서 모방하여 알고리즘을 개발했다고 한다. 시뮬레이티드 어닐링(SA)은 처음에 순회외판원문제(TSP, traveling salesman problem)와 같은 조합 최적화 문제를 해결하기 위해 도입되었지만 최근에는 연속형 최적화 문제 해결에도 적용되고 있다. 물리적 어닐링은 금속을 가열하여 액체 상태로 만든 다음 규칙적인 결정성 구조를 형성할 때까지 천천히 냉각시키는 방법이다. 냉각 과정에는 냉각이 시작되는 초기 온도와 냉각 속도 등 두가지 주요 파라미터가 있는데, 이 값에 따라 고체 상태의 금속의 강성과 원자 구조의 규칙성이 .. 2025. 2. 12. [MCMC] 메트로폴리스-헤이스팅스 알고리즘 앞선 게시글 (https://pasus.tistory.com/358)에서, 천이 커널(transition kernel) \(K\) 를 목표 확률밀도함수(pdf) \(p(\mathbf{x})\) 가 정상(stationary) 분포가 되도록 설계할 수 있다면, 마르코프 체인을 통해 목표 확률 분포에서 추출한 것과 동일한 샘플을 생성할 수 있음을 확인했다. 그렇다면, 우리가 원하는 목표 확률밀도함수에 대해 천이 커널을 어떻게 설계할 수 있을까? 메트로폴리스(Metropolis)가 처음 제안하고 이후 헤이스팅스(Hastings)가 일반화한 방법에 따르면, 이산(discrete) 상태 공간에서도 계산이 어려운 천이 커널의 명시적인 함수를 구하는 대신, 이전 샘플이 주어졌을 때 새로운 샘플을 추출하는 절차를 명확히.. 2025. 2. 1. [B-Plane] B-평면 타켓팅 - 2 행성 간 임무를 수행하는 동안 우주비행체는 섭동력의 영향을 받아 원하는 임무 궤도에서 벗어날 수 있으므로 실제 B-벡터도 설계한 값과 차이가 발생한다. 이러한 오차를 조정하기 위해서 슈팅방법(shooting method) 기반의 B-평면 타겟팅 방법을 사용하여 우주비행체의 속도벡터를 조정하는데 이를 궤적수정기동(TCM, trajectory correction manuever)이라고 한다. 목표로 하는 B-벡터를 \(\vec{B}^\star\), 현재의 B-벡터를 \(\vec{B}\) 라고 하고 테일러 시리즈를 이용하여 전개한 후 1차 절삭하면 B-벡터의 오차 \( \Delta \vec{B}= \vec{B}^\star- \vec{B}\) 와 속도벡터 섭동 \(\Delta \vec{v}\) 의 관계를 .. 2025. 1. 31. [B-Plane] B-평면 타켓팅 - 1 B-평면 타겟팅(B-plane targeting)은 우주 탐사에서 행성 플라이바이(flyby)나 행성의 접근 경로를 설계할 때 사용되는 중요한 개념이다. B-평면 타켓팅의 목표는 B-평면 상에서 특정 목표점을 맞추는 것이며 이 과정을 통해서 행성 플라이바이, 궤도 진입 (orbit insertion) 또는 행성 착륙 목표 지점 타겟팅의 조건을 만족시킬 수 있다. 또한 행성 간 임무를 수행하는 동안 우주비행체는 섭동력의 영향을 받아 궤도가 원하는 임무 궤도에서 벗어날 수 있으므로 현재 우주비행체의 상태벡터와 목표점 좌표를 바탕으로 오차를 보정하기 위한 궤적수정기동(TCM, trajectory correction manuever)을 설계하는 데에도 B-평면 타겟팅을 적용할 수 있다. 먼저 B-평면 타.. 2025. 1. 30. HiPPO - 3 이전 게시글(https://pasus.tistory.com/363)에서 함수 \(f(x), \ 0 \lt x \le t\) 를 N차원 부분 함수공간으로 투사한 근사 함수 \(g(x), \ 0 \lt x \le t\) 를 다음과 같이 유도하였다. \[ \begin{align}& g(x)= \sum_{n=0}^{N-1} c_n (t) \sqrt{(2n+1)} P_n \left( \frac{2x}{t}-1 \right) \tag{1} \\ \\& \dot{\mathbf{c}}(t)= - \frac{1}{t} A \mathbf{c}(t)+ \frac{1}{t} Bf(t) \end{align} \] 식 (1)에 의하면 HiPPO는 본질적으로 연속시간(continuous-time) 에서 정의된 상미분 .. 2025. 1. 12. HiPPO - 2 이전 게시글(https://pasus.tistory.com/362)에서 함수 \(f(x), \ 0 \lt x \le t\) 를 \(N\)차원 부분 함수공간으로 투사한 근사 함수 \(g(x), \ 0 \lt x \le t\) 를 다음과 같이 유도하였다. \[ \begin{align} g(x) & = \sum_{n=0}^{N-1} c_n (t) \sqrt{(2n+1)} P_n \left( \frac{2x}{t}-1 \right) \tag{1} \\ \\ c_n (t) &= \int_0^t f(x) \sqrt{(2n+1)} P_n \left( \frac{2x}{t}-1 \right) \frac{1}{t} \ dx \end{align} \] 식 (1)에서 계수 \(c_n (t)\) 에 관한 적분식을 미분방.. 2025. 1. 9. HiPPO - 1 언어 모델링이나 음성 인식, 강화학습 또는 주식 데이터 분석 등 시계열 데이터를 다루는 AI 분야에서는 매우 긴 시퀀스 데이터를 효과적으로 학습하고 표현(representation)할 필요가 있다. 그러나 모든 과거 데이터를 저장하고 처리하는 것은 저장 공간과 계산 자원의 한계로 인해 비효율적일 뿐만 아니라 실질적으로 불가능하다. 특히 온라인 환경에서는 데이터가 지속적으로 유입되기 때문에 이전 데이터를 적절히 요약(summarization)하면서도 중요한 패턴과 정보를 유지하는 메모리 메커니즘이 필요하다. 이러한 문제를 해결하기 위해 등장한 것이 바로 HiPPO (High-order Polynomial Projection Operators)다. HiPPO는 '고차 다항식 투사 연산자'를 의미하는 것으로서.. 2025. 1. 8. [B-Plane] 좌표변환 B-평면과 관련하여 3개의 평면을 정의할 수 있다. 목표(target) 행성의 적도면(equatorial plane), 진입 궤도면(orbital plane), 그리고 B-평면(B-plane)이 그것이다. 또한 각 평면에서 각각 행성중심관성좌표계 \(\{a\}\), 궤도중심좌표계(perifocal frame) \(\{p\}\), 그리고 TRS좌표계 \(\{s\}\) 를 정의할 수 있다. 아래 그림에 이 3개의 평면과 좌표계가 나와 있다. 그림에서 \(i\) 는 궤도의 경사각, \(\vec{h}\) 는 각운동량 벡터다. TRS좌표계 \(\{s\}\) 는 행성의 중심에 원점이 있고 점근선벡터 \(\hat{S}\) 를 z축, \(\hat{T}\) 을 x축, \(\hat{R}\) 을 y축으로하는 좌표계다... 2025. 1. 4. [B-Plane] B-평면의 정의 우주비행체가 목표로 한 도착지 행성의 중력권으로 접근하는 단계에서의 궤도 설계는 행성의 궤도에 진입할지 또는 플라이바이(fly-by) 기동을 할지 등, 임무 목적에 따라 달라지며 이와 관련하여 설정된 조건의 충족을 목표로 삼아 수행된다. 예를 들어 행성의 궤도에 진입하는 것을 목적으로 할 경우 특정 시간에 특정 고도, 특정 경사각을 가진 궤도의 지점으로 도착해야 한다는 목표를 설정할 수 있을 것이다. 이러한 목표를 도착 타겟팅이라고 한다. 도착 타겟팅은 도착지 행성을 기준으로 진입 점근선(incoming asymptote)을 원하는 위치와 방향으로 배치하는 것으로써 달성될 수 있는데 이 때 사용되는 유용한 방법이 B-평면 타켓팅(B-plane targeting)이다. B-평면은 점근선의 위치와 방향을 단.. 2024. 12. 30. 쌍곡선 궤도의 기하학 이체문제 가정하에서 우주비행체가 가질 수 있는 궤도의 모양은 원, 타원, 포물선, 쌍곡선이 있다 (https://pasus.tistory.com/171). 이 중에서 포물선과 쌍곡선 궤도를 열린 궤도라고 하는데 이 궤도를 취해야 이체문제의 중심 질점으로부터 무한대 거리까지 비행할 수 있기 때문이다 (https://pasus.tistory.com/173). 우주비행체가 포물선 궤도를 따를 경우 무한대의 거리에서는 속도가 \(0\) 이지만, 쌍곡선 궤도를 따를 경우에는 무한대의 거리에서 속도가 \(v_\infty= \sqrt{2 \mathcal{E}}\) 로서 유한한 값을 갖는다. 여기서 \(\mathcal{E}\) 는 궤도의 역학적 에너지이다. 현실적으로 행성 또는 천체의 중심에서 거리가 무한대인 지점으로.. 2024. 12. 27. 이전 1 2 3 4 ··· 27 다음