목록Season 1/수학 (15)
Graphics Programming
Richard S. Millman과 George D. Parker의 책 의 표기를 따름. simple surface의 coefficients of the second fundamental form은 로 정의되는 함수들이다. coordinate transform , ,에 대해 다음이 성립한다. 증명
학교에서 정보보호이론을 수강하고 있는데 유클리드 알고리즘이 나온다. 2000년도 더 된 알고리즘이지만 그 증명이나 절차가 나에겐 직관적으로 와닿지가 않아서 몇 번을 봐도 세부사항을 곧잘 까먹었다. (사실 무슨 알고리즘이든 며칠 지나면 디테일을 까먹게 되지만.. -.-) 이번 기회에 확실하게 배우고 넘어갔지만 확장 유클리드 알고리즘은 한층 아리송해서 여기에 정리해본다. 유클리드 알고리즘은 잘 알고 있다고 가정한다. 유클리드 알고리즘은 다음과 같다. 두 양의 정수 ($ a $), ($ b $) 의 최대공약수 ($ gcd(a, b) $)는 다음과 같은 절차를 거쳐 구할 수 있다. $$ r_0 \leftarrow a, r_1 \leftarrow b $$$$ r_{i+1} = r_{i-1} - q_i r_i,~~..
축 분리 정리(분리축 정리)는 컴퓨터에서 두 볼록 물체의 교차 판정을 논할 때 흔히 언급되는 정리다. 두 물체를 투영한 구간(interval)이 겹치지 않는 축이 하나라도 존재한다면, 두 물체는 교차하지 않은 것이다. 간단한 그림을 몇 가지 그려보면 금방 그 의미를 알 수 있다. 인터넷에서 이 정리를 검색해보면 대부분은 바로 구현으로 넘어간다. "자, 이런 정리가 있어. 그러니까 우리가 앞으로 할 일은 각각의 모서리를 분리축으로 활용해서 투영을 하면 그 경우의 수가 MN + M + N가지고 시간복잡도는 이러쿵저러쿵..." 여기서 수학적인 부분을 확실하게 따져보자. 축 분리 정리를 간단하게 증명해보자. 두 볼록 도형 A, B가 교차할 때, 그 교집합을 ($ I = A \cap B \neq \phi $)이라..
서로 다른 k+1 개 점 ($ (x_0, y_0) $) ~ ($ (x_n, y_n) $)을 보간하는 k차 라그랑주 다항식은 다음과 같은 꼴이다. 주어진 점들은 반드시 지나야 하기 때문에 ($L(x_i) = y_i$) 를 만족하며, ($L_k (x)$) 는 ($x_0$) ~ ($x_n$) 에 대해 다음 성질을 만족하는 k차 다항식이다. 예를 들어 ($ L_0(x_0) = 1 $) 이고 ($ L_0(x_1) = L_0(x_2) = ... = L_0(x_n) = 0 $) 이다. ($ L_0(x) $) 를 구하는 방법은 여러 가지가 있겠지만 선형대수학에 맛들려 에서 역행렬을 구해 곱하겠다면 무운을 빈다. ($ L_0(x_1) = L_0(x_2) = ... = L_0(x_n) = 0 $) 이므로 n개의 x값 ($..
중간값 정리 - 위키피디아http://ko.wikipedia.org/wiki/%EC%A4%91%EA%B0%84%EA%B0%92_%EC%A0%95%EB%A6%AC 뉴턴법으로 어떻게 구해보려고 쇼를 하다가 미적분학 강의 때 중간값 정리 보고 '아.. -_-' 하며 구현했다. 함수 f:R->R 이 해를 구하려는 구간 내에서 연속이다고 가정한다. 그러면 f(a)와 f(b)의 부호가 다를 경우 그 사이에 f(c) = 0인 지점이 반드시 있는데 c가 바로 방정식 f(x) = 0의 해다. 그러니 정의역에서 해를 구할 구간을 적당히 잡고 적당한 간격으로 함숫값을 추출해서 바로 전에 추출한 함숫값과 부호가 다르면 그 구간에서 이진 분할을 하든 열 조각으로 쪼개든 하여 범위를 점점 좁혀나가면 해의 근사값을 얻을 수 있다...
lambertW 함수 설명 - Wolfram http://mathworld.wolfram.com/LambertW-Function.html - Wikipedia http://en.wikipedia.org/wiki/Lambert_W_function - 네이버 baek449 http://blog.naver.com/baek449/120102271153 급수 전개로 구현하려고 했는데 오차가 너무 심해서 뉴튼법을 썼다. package codeonwort.math { /** * 램버트W 함수 (뉴튼법을 이용하여 근사치 계산) */ public function lambertW(x:Number, iteration:uint=10):Number { var soln:Number = x var exp_soln:Number fo..