본문 바로가기

728x90

수학

(29)
파이썬을 이용한 몬테 카를로 적분(Monte Carlo Integration) 구현 이 포스팅에서는 지난 시간에 설명한 몬테 카를로 시뮬레이션 방법을 프로그램 언어 파이썬으로 구현해 보도록 하겠습니다. 적분은 몬테 카를로 시뮬레이션을 이용해서 할 수 있는 것의 가장 기본적인 어플리케이션입니다. 사실, 몬테 카를로 시뮬레이션은 "어려운 적분을 하기 위한 계산 방법론 이다" 라고 말해도 과언이 아닐 정도로 몬테 카를로 시뮬레이션의 적분에 대한 응용은 기본적이면서도 활용 범위가 넓습니다. 몬테 카를로 적분을 통한 계산 값이 정확하기 위해서는 몬테 카를로 시뮬레이션에서 하는 랜덤 샘플링의 횟수가 매우 커야 하는데요, 따라서 컴퓨터로 계산할 수 밖에 없습니다. 컴퓨터 프로그램 언어를 이용해서 원하는 알고리듬을 코딩 언어로 구현해야하는데, 프로그램 언어 중에서 배우기 쉽고, 활용 범위가 넓은 파이..
몬테 카를로 시뮬레이션(Monte Carlo Simulation) 의 이해 : 원주율값 구하기 (+파이썬 시뮬레이션 코드) 몬테카를로 시뮬레이션(혹은 알고리듬)이란 무엇인지를 정의하기란 매우 어려운데, 그 이유는 이 방법론을 수학과 응용수학 분야에서 매우 광범위하게 사용하기 때문입니다. (1 )이 시뮬레이션을 이용하여 계산 하려는 대상(값) (2) 이 시뮬레이션을 이용해야 하는 이유 (2) 이 시뮬레이션의 전체 혹은 일부를 이용하는 방법 등에 따라서, 몬테 카를로 시뮬레이션에 대한 정의는 조금씩 다를 텐데요, 그러나 이 방법론을 사용하는 모든 경우를 아우를 수 있는 핵심점인 키워드는 "반복적인 무작위적 샘플링" 입니다. 위키피디아의 몬테 카를로 시뮬레이션을 소개하는 첫 문장은 Monte Carlo methods, or Monte Carlo experiments, are a broad class of computational ..
[선형대수-3, 고전역학-1] 행렬대각화를 이용한 결합진동자(coupled oscillator)의 운동방정식의 쉬운 풀이 복습 : 행렬대각화를 이용하여 이변수 이차형식을 일변수 함수의 합으로 나타내기 ​ 지난 포스팅에서는 행렬대각화를 이용하여 복잡한 이차형식을 간단한 형태로 변환하는 방법을 알아보았습니다. 간단히 요약하면, 이변수 이차형식 $$f(x,y) = f(\vec{x}) = ax^2 + by^2 + 2cxy = \vec{x}^T A vec{x}, A = \begin{pmatrix}2a&c\\c&2b\end{pmatrix} $$ 에 대해서 행렬 $A$의 고유벡터를 기저로 하는 좌표 $(x', y')$를 이용하여 위 이차형식을 표현하면, $$f(x,y)=f(\vec{x})=f(\vec{x}')=\vec{x}'^TD\vec{x}'=\lambda _1x'^2+\lambda _2y'^2$$ 와 같이 $xy$ 항이 없는 간단한..
[선형대수-2] 이차형식과 행렬 대각화 : 고유값에 따른 타원곡선의 결정 이번 포스팅에서는 행렬의 대각화가 이차형식에 대해 이해하는데 어떻게 활용 될 수 있는지를 알아보겠습니다. 행렬의 대각화를 이용해 복잡한 것을 단순하게 이해하는 가장 기본적인 예시라고 할 수 있습니다. 이 과정만 제대로 이해한다면 앞으로 다룰 더 복잡한 과정도 쉽게 이해할 수 있습니다. ​ 이차식 ​ 변수 $x$에 대한 이차식(이차함수) $$y=ax^2+bx+c$$ 은 중학교 시절에 처음 나오는 것 같은데, 수포자라고 하더라도 한 번 쯤은 들어 봤고, 한 번 쯤은 그래프를 그려봤고, 한 번 쯤은 근의 공식을 외웠던 중요한 함수 입니다. 이차함수는 해석적인 방법으로 해를 쉽게 구할 수 있고, 그래프 역시 쉽게 그릴 수 있으며, 테일러 근사와 같은 방법을 활용하여 임의의 함수를 부분적으로 근사할 때 꼭 나오는..
[선형대수-1] 행렬대각화 : 행렬의 고유값과 고유벡터의 기하학적 의미 행렬? ​ 아마 이 글을 읽으시는 분 중에서 행렬을 모르시는 분은 없을 거라 생각합니다. 이 글을 읽는 대부분의 분들은 네이버나, 구글에서 고유값, 고유벡터 등을 검색어로 이 글을 접하시게 됐을 텐데, 위 검색어로 검색을 했다는 것은 행렬에 대해서는 알고 있지만, 행렬의 고유값과 고유벡터가 무엇인지를 모르시는 경우가 대부분일거라고 생각합니다. 행렬을 아는 사람에게 왜 행렬에 대해서 이야기를 하나면, 행렬이 무엇인지를 다시 한 번 생각해 보면 행렬의 고유값과 고유벡터가 어떤 의미를 갖는지에 대해서 좀 더 쉽게 혹은 좀 더 깊이 있게 이해할 수 있기 때문입니다. ​ 제가 고등학교에 다닐 때는 행렬은 수학1에서 배웠습니다. 그 당시 교육과정(매우 오래전의 이야기 입니다)은 고등학교 1학년에서 공통 수학을, 2..

728x90