1. 덧셈과 뺄셈에 의해 전파되는 오차
컴퓨터를 이용하여 수치해를 구할 경우, 오차가 발생한다.
컴퓨터를 이용하여 사칙연산을 할 경우 하나의 연산에 의해 발생한 오차가 다음 연산에도 영향을 미쳐
오차의 크기를 가중시키는 경우가 발생할 수도 있다.
이전 단계에서부터 발생한 오차가 다음 단계에 영향을 미치는 경우를 오차의 전파라고 한다.
이는 다항함수를 이용한 연산에서도 오차가 전파됨을 알 수 있다.
2. Tayler 급수
Tayler 급수는 수치해석에서 근사식 표현방법으로 가장 많이 사용된다.
Tayler 급수는 연속적으로 차원이 높아지는 도함수들의 합을 이용하여 전개한다.
하나의 독립변수 x에만 종속적인 함수 f(x)에 대하여, 점 x0 + h에서 함수의 근삿값은 Tayler 급수로 나타낼 수 있다.
Tayler 급수에서 주의해야 할 사항은 좌변과 우변이 모든 x에 대해서 같은 것이 아니라
x=a 근처에서만 성립한다는 것이다. 즉 x가 a에서 멀어지면 멀어질수록 f(x) = p(x) 로 놓는 것은 큰 오차를 갖게 된다.
한편, 근사다항식의 차수는 높으면 높을수록 f(x)를 좀 더 잘 근사하게 된다.
Tayler 급수는 결국 x=a 에서 f(x)와 동일한 미분계수를 갖는 어떤 다항함수 f(x)로 근사시키는 것이다.
위 식에서 f(a) = p(a), f'(a) = p'(a), f''(a) == p''(a), .. 임은 쉽게 확인할 수 있다.
Tayler 급수를 이용해 이와 같이 x=a 에서 미분계수를 일치시키면 x=a 뿐만 아니라 그 주변의 일정 구간에서도 f(x)와 p(x)가 거의 일치하게 된다.
그런데 문제에 따라서는 f(x) 를 1차 또는 2차까지만 Tayler 전개하는 경우도 많다.
예를 들어 f(x)를 2차 다항함수로 근사할 경우,
와 같이 해 놓고 Q(x) 를 0처럼 무시해 버린다.
이 경우, f(x)를 무한차수 다행함수로 근사하는 것보다 근사오차가 크겠지만,
x가 충분히 a에 가까운 경우에는 근사오차가 거의 없다고 볼 수 있다.
참고로, f(x)에 대한 Tayler 급수는 아래와 같은 형태로 표현될 수 있다.
Tayler 급수가 필요한 이유는 쉽게 말하면
우리가 잘 모르거나 복잡한 함수를 다루기 쉽고 이해하기 위한 다향함수로 대체시키기 위함이다.
또한 어떤 함수를 Tayler 급수로 표현하면 그 함수의 특성을 분석하기가 좀 더 용이해진다.
* 정적분의 계산
부정적분을 계산하기 힘들 함수의 경우에 아래와 같이 Tayler 급수를 활용하면 정적분의 계산값을 근사적으로 구할 수 있다.
* 함수의 점근 (asymptotic) 특성 파악
Tayler 급수를 활용하면 함수(특히 삼각함수, 지수함수, 로그함수와 같은 초월함수)의 점근적 특성을 손쉽게 파악할 수 있다. 예를 들어, 다음과 같이 x=0 근처에서 sin(x) ~ x 임을 Tayler 급수를 이용하면 쉽게 알 수 있다.
* 문제 또는 모델의 단순화
Tayler 급수의 가장 일반적인 활용이다.
즉 어떤 복잡한 또는 잘 모르는 함수가 있을 때, 이 함수를 차원이 낮은 다항함수로 근사하여 사용함으로써
문제 또는 모델을 단순화시키는테 Tayler 급수가 활용될 수 있다.
테일러 급수는 논문 등에서 어떤 이론이나 주장에 대한 근거를 단순화하여 설명할 때 유용하게 사용되는 기법중 하나이다.
한 예로 가우스-뉴턴 방법을 증명하는 데 Tayler 급수가 활용되었다.
3. 프로그램 작성 시 오차를 줄이는 방법
수치해석에서 말하는 오차란 실수를 범하지 않았음에도 불구하고 발생하는 어쩔 수 없는 경우를 말한다.
프로그램 내에서 발생하는 원시오차는 줄일 수 없다 하더라도
계산결과 나타나는 처리 오차는 되도록 줄이도록 해야 한다.
1) C언어나 포트란 같은 언어로 프로그램을 작성하는 경우,
되도록 많은 유효숫자를 기록할 수 있도록 배정도 변수를 사용하는 것이 바람직하다.
2) 곱할 때에는 큰 수로 곱하는 것을 피하는 방법을 생각한다.
3) 나눌 때에는 작은 수로 나눈 것을 피하는 방법을 생각한다.
4) 덧셈은 절대값이 작은 수부터 계산한다.
5) 값이 비슷한 두 수의 뺄셈에 유의한다.
6) 연산 횟수를 줄이는 방법을 생각한다.
댓글