1. little O notation
두 함수 f(x)와 g(x)가 어떤 a에 대하여
|f(x)|≤εg(x)
를 만족하는 모든 양의 상수 $\varepsilon $ 이
0<|x−a|<δ에서 존재하게 하는 $\delta $가 존재한다면,
f(x)=o(g(x)) x →a 라고 표현한다.
동일한 말로 g(x)가 0이 아닐때, f(x)=o(g(x)) x →a 는
lim과 동치이다.
근데 일단 이거는 그냥 극한으로 이해하는게 편한것 같다
2. 직관적인 이해
\displaystyle \lim_{ x \to a} \frac{f(x)}{g(x)} = 0으로부터 f(x)가 o(g(x))라는 것은 g(x)가 f(x)보다 빠르게 커진다는 이야기다.
하나 더 생각해보자면, 예를 들어 h →0 에서 f(h) = o(h)라고 한다면 정의에 의해
\displaystyle \lim_{ x \to 0} \frac{f(h)}{h} = 0인데, 이게 무슨말일까
h →0에서 h가 f(h)보다 크다고 말할 수 있다.
h →0에서 h는 0에 가까워지는데 f(h)는 그것보다도 작다. 0이나 다름없다는 소리 그래서 little-O
3. 몇가지 성질
f = o(g)이고 g = o(h)이면 f = o(o(h)) = o(h)
f = o(g)이고 c가 0이 아닌 상수이면 cf = o(g)
x →a 에서 f(x) = o(x)이고 g(x) = o(x)이면 f+g = o(x)
f = o(F)이고 g = o(G)이면 fg = o(FG)
4. big O notation
두 함수 f,g에 대하여 x →a에서 f(x) = O(g(x))라는 것은
0< \left| x-a \right| < \delta을 만족하는 모든 x에 대해
\left| f(x) \right| \leq M g(x)를 만족시키는 양의 상수 \delta와 M이 존재한다는 것이다.
극한의 정의로 보면
\displaystyle \lim sup_{ x \to a} \frac{\left|f(x) \right|}{g(x)} < \infty 이다.
5. 프로그래밍에서의 이해
프로그래밍에서는 충분히 큰 입력데이터 n에 대해 알고리즘의 시간복잡도를 big O notation을 이용해서 표현한다
그러니까
x →∞인 상황이다.
x →∞에서 f(x) = O(g(x))라고 표현한다는 것은 충분히 큰 모든 x에 대하여 f(x)의 절댓값이 g(x)의 양의 상수배 이하라는 것이다.
즉, \left| f(x) \right| \leq M g(x)을 만족시키는 양의 상수 M과 x\geq x_{0}을 만족시키는 충분히 큰 x_{0}가 존재한다.
컴퓨터과학에서는 조금 덜 제한적인 정의가 보편적으로 사용된다.
"정수 n에 대하여 f(n) = O(g(n))이라는 것은 \left| f(x) \right| \leq M g(x)이 n\geq n_{0}에 대한 모든 정수 n에서 성립하게 하는 충분히 큰 정수 n_{0}와 양의 정수 M이 존재한다는 뜻이다."
아무튼 극한으로 표현하자면
\displaystyle \lim sup_{ x \to \infty } \frac{\left|f(x) \right|}{g(x)} < \infty인데
이건 limit superior이 와닿는 표현이 아니라서 말로 이해하는게 좋겠다
6. 주요 성질
6-1) f(x)가 몇가지 항의 합일때, 가장 큰 차수의 항을 제외하고는 나머지는 생략해도 좋다
6-2) f(x)가 어떤 요인들의 곱일때, 상수는 생략해도 좋다.
예를 들어 f(x) = 6x^{4} - 2x^{3} + 5이면 가장 큰 차수의 항을 제외하고 나머지는 생략하여 f(x) = O(6x^{4})
요인들의 곱일때, 상수는 생략할 수 있어서 f(x) = O(x^{4})
사실 이것은 정의에서 $$\left| f(x) \right| \leq M x^{4}$$을 만족하는 양의 상수 M과 x\geq x_{0}인 x_{0}가 존재한다는 뜻이다.
6-3) f1 = O(g1)이고 f2=O(g2)이면, f1 * f2 = O(g1 * g2)이고 f1 + f2 = O(max(g1,g2))
6-4) f*O(g) = O(fg)
7. 주요 사용처
컴퓨터 프로그래밍에서는 알고리즘의 시간복잡도를 계산하는데 사용하고
수학에서는 수식에 대한 근사식으로 주로 사용한다

e^{x}에 대한 근사식으로 1차항까지 근사시키고 싶을때, 1+x+O(x^{2})으로 근사시키는 모습
Big O notation - Wikipedia
From Wikipedia, the free encyclopedia Jump to navigation Jump to search Notation describing limiting behavior Big O notation is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or
en.wikipedia.org
'프로그래밍 > 프로그래밍 개론' 카테고리의 다른 글
증명하기 연습문제3 (0) | 2022.09.15 |
---|---|
증명하기 연습문제2 (0) | 2022.09.15 |
귀류법과 수학적 귀납법 정확히 알기 (0) | 2022.07.13 |
논리학 연습문제1 (0) | 2022.07.12 |
반드시 알아야하는 기초 논리학 - p가 거짓이면 'p이면 q이다'는 왜 참인가? (0) | 2022.07.11 |