1. 숫자의 표현과 급수

  • by

선형 대수학, 수치 해석, 확률 및 통계

수학 과목을 정리해 보면서 느꼈지만, 블로그에 수식을 넣는 것도 매우 귀찮은 작업으로 시간이 걸린다.

수식의 기입과 수학적 증명을 이해하는데 시간이 너무 걸린다고 느꼈다.

다른 과목(OS, DB, 알고리즘)이 수학이 아니라 컴퓨터 공학에서 더 중요하다고 생각해 수학은 적당히 타협해 나가기로 했다.

증명을 하고 완벽한 이해를 하는 것이 아니라 공식 사용법을 배우고 도중에 생긴 의문점을 중심으로 정리문의 방향을 취했다.


컴퓨터의 수 표현 및 연산

컴퓨터의 실수는 부동 소수점으로 표현되므로, 오차가 발생하는 것은 대부분이 알고 있는 사실일 것이다.

이에 대해서는 컴퓨터 구조, OS, 각 언어를 공부하면서 자주 언급되기 때문에 상세한 설명은 생략한다.

  • 부동 소수점 연산(가산, 감산)

– 정규화 : 기존 수 -> 0.xxx * 10^k의 모습으로 표현, 2진수에서는 ( 2^k )

– 지수가 큰 쪽에 소수점을 맞춰준다.

– 가수를 계산합니다.

– 원래 자리에 맞게 반올림하고 정규화하여 저장합니다.

-> 오류 발생(둥근)

  • 부동 소수점 연산(곱셈, 나눗셈)

– 정규화

– 가수의 곱셈/제산, 지수끼리는 승산이면 가산하고, 제산이면 감산한다.

– 원래 자리에 맞게 반올림하고 정규화하여 저장합니다.

-> 오류 발생(둥근)

※결합, 분배법칙이 거의 성립하지 않는다.

※계산 순서에 따라 연산 결과가 다를 수 있습니다.

  • 두 개의 부동 소수점 비교

– 두 차이가 허용 오차 이내에 있는지 확인하십시오.

ex. 어떤 수식 A와 B가 있다고 가정해 봅시다.

A와 B는 부동 소수점 연산으로 사람이 할 때와 같은 값입니다.

그러나 컴퓨터의 경우 부동 소수점 계산에서 발생하는 오류로 인해 동일하지 않다고 판단 할 수 있습니다.

-> 따라서, if ( A == B ) -> if ( fabs(AB) < eps ) 로 옮겨놓아야 한다.

eps는 컴퓨터의 공차입니다.


오차

  • 마무리 오차 ( rounding – off error )

– 컴퓨터로 표현되는 수와 실제 수의 차이

ex. 컴퓨터에서 4자리만 기억하는 경우 12.345는 12.34 또는 12.35로 저장됩니다.

실제 수와는 +-0.005의 오차가 발생한다.

  • 절단 오차(truncation error)

– 컴퓨터는 수식 계산에서 “무한 합계”를 계산할 수 없습니다.

따라서, “유한 개”의 합계로 적당히 잘라낸 후 근사값으로 저장한다.

이 때 발생하는 오차는 절단 오차이다.

ex. 테일러 급수


n으로 절단해 버린 경우이다.

  • 오차 계산


  • 오차 한계

– 연산 과정 중에 발생하는 오차의 최대값

  • 기계 오차

– 시스템이 발생하는 오류의 최대값을 의미합니다.

보통 압실론( ε)로 표시된다.

– 이 오차보다 작은 오차는 시스템이 오차로 인식하지 못한다.

ex. 1+ε/2 와 1 은 시스템에서 같은 수로 인식합니다.

– 기계 오차 찾기



급수(시리즈)

수치 해석에서 급수는 수열의 합계라고 생각하면 된다.

무한수는 무한수열의 합계를 나타냅니다.

  • 필요한 급수(=제곱 급수, 파워 시리즈)


  • 테일러(Talyor) 급수

– 조건

1) x = c 로 무한 미분이 가능함

2) x = c에서 f(c)에서 무한 미분된 f'(c)까지의 값을 알 수 있어야 한다.

– 결과

1) 원래의 함수를 f(x) 로 하면 f(x) 의 근사 함수를 구할 수 있다.

2) f(x)는 다항식의 합으로 표현될 수 있다.

– 테일러 급수로 표현 가능한 함수

f(x) = sinx , cosx, e^2 등..

https://namu.wiki/w/%ED%85%8C%EC%9D%BC%EB%9F%AC%20%EA%B8%89%EC%88%98/%EB%AA%A9% EB%A1%9D

테일러 급수/목록 – 우드위키

원하는 무한 급수의 계수를 미지수로 둔다.

y=(1+x)α=a0+a1x+a2x2+⋯⋯=∑n=0∞anxn\displaystyle y=\left( 1+x \right)^\alpha=a_0+a_1 x+a_2 x^2+ \cdots\cdots = \sum_{n=0}^\infty a_n x^ny=(1+x)α=a0 +a1 x+a2 x2+⋯⋯=n=0∑

namu.wiki

– Talyor 전개 : Taylor 급수에 의해 어떤 함수를 표현한 것

– 마크로닌 급수(Maclaurin series): Talyor 급수에서 c=0인 경우


  • n차 테일러 전개와 n차 근사식

– 테일러 급수에서 원래의 함수를 n차 미분까지의 합으로 표현한 것을 n차 테일러 전개라고 한다.

– 1차부터 차례로 n차 테일러 전개식을 알 수 있다.

여기에서는 그 형태만 기록하고 증명은 하지 않는다.


  • n차 근사식 구하기

– f(x) 를 n 다음까지 미분하면서 식을 만든다.

상기 식에 따르면, 2차 근사식은 다음과 같다.

(c=0이라고 가정)

f(x) = f(0) + f'(0) * x + (1/2!
) * f”(0) * x^2

– 위 식을 계산하면 2차 근사식이 됩니다.

여기서 x 값을 대입하면 근사값을 구할 수 있습니다.