한빛미디어 Engineering Numerical Analysis Learning by MATLAB 1/37
CHAPTER 05
테일러 다항식
Taylor Polynomial
방성완
중앙대학교 전자전기공학부
2012. 12. 31
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 2/37
테일러 다항식의 오차
5.3
다항식의 계산
5.4
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 3/37
학습목표
테일러 급수를 기초로 테일러 다항식의 개념을 이해할 수 있다.
간단한 테일러 다항식을 구하여 복잡한 형태의 함수를 근사시킬 수 있다.
단순화시킨 테일러 다항식과 실제 구하려는 함수 사이에 발생하
는 오차를 측정할 수 있다.
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 4/37
테일러 급수(Taylor series)
: 함수를 미분 가능한 한 점의 값으로 계산되는 각 항들의 무한한 합으로 표시
미분 가능한 함수를 다항식의 형태로 근사
테일러 정리
: 특정 조건을 만족하는 임의의 함수가 테일러 급수로 표현
평균값 정리를 임의의 n차수(order) 도함수에 일반화시킨 형태로 전개
실제 함수 f(x)를 x = a 근처에서 전개
테일러 정리
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 5/37
5.1 테일러 급수
5.1 테일러 급수
테일러 다항식의 근삿값(approximation): 일반화시킨 식 (5.1)
f(x)가 n차 항까지 연속적인 도함수값을 가지면 모든 항을 유효하게 이용
n → ∞이고 Rn → 0이면, 이 전개를 x = a에서 f(x)에 대한 테일러 급수라 부름
Rn: 함수 f(x)의 나머지항의 미분
b: a와 x 사이의 값
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 6/37
맥클로린(Maclaurin) 급수
: 모든 항의 변수가 음수가 아닌 정수의 거듭제곱(power)을 갖는 급수 확장의 유형
식 (5.2)에서 a = 0인 경우
삼각함수 f(x) = sin(x)에 대한 테일러 급수의 전개
1차, 2차, 3차, ···, n차 미분의 계산 먼저
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 7/37
5.1 테일러 급수
5.1 테일러 급수
식 (5.2)에 사인(sine)함수에 대한 미분 결과 대입
맥클로린 급수, a = 0, 이라고 가정
sin(0) = 0, cos(0) = 1로 계산
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 8/37
예제
5-1
테일러 급수 전개하기식 (5.2)를 이용하여 다음 함수의 테일러 급수를 전개하라. 이때 a = 0이라고 가정한다.
(a) f(x) = cos(x) (b) f(x) = ex
Tip !
(a) 식 (5.2)에 코사인함수에 대한 미분항을 대입
(b) 식 (5.2)에 지수함수에 대한 미분항을 대입
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 9/37
5.1 테일러 급수
5.1 테일러 급수
MATLAB
5-1
테일러 급수 구하기매트랩의 심볼릭 수학 도구상자를 이용하여 [예제 5-1]의 두 함수를 실행하라. 처음 항 네 개까지만 나타내라.
Tip !
taylor 함수: 매트랩 심볼릭 도구상자에서 제공
기본 구문
f: 전개시키려는 함수
n: f에 의해서 정의되는 테일러 급수의 처음 n – 1항까지 표시 a: x = a에서 평가되는 값
a = 0: 매개변수 a가 생략
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 10/37
테일러 다항식의 근삿값
: 복잡한 함수를 쉽게 풀 수 있다
테일러 다항식으로 함수의 근삿값 찾기
선형 다항식: 변수 x에 대한 다항식이 1차 이하의 항들로 구성
a0: 0차항, 상수
a1: 1차항, 계수
x = a인 점에서 p1(x)와 f(x)가 다음 상태를 만족
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 11/37
5.2 테일러 다항식의 근삿값
5.2 테일러 다항식의 근삿값
식 (5.5)에 의해서 선형 다항식은 다음과 같은 고유의 근삿값 얻음
x = a인 점에서 y = p1(x)의 그래프는 y = f(x)의 그래프와 접선을 가짐
x = a 인 점에서 2차 다항식 p2(x) = a0 + a1
x + a
2x
2와 f(x)가 다음 상태를 만족 식 (5.7)에 의해서 2차 다항식은 다음과 같은 고유의 근삿값 얻음
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 12/37
x = a인 점에서 확장시킨 n차 다항식이 다음 상태를 만족
일반적인 테일러 다항식의 근삿값
다른 표현의 식 (5.10)
x가 a에 근접하면 가 된다.
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 13/37
5.2 테일러 다항식의 근삿값
5.2 테일러 다항식의 근삿값
x = 4인 점에서 함수 에 대한 2차 테일러 다항식의 근삿값을 구하고 이를 이용하여 의 값을 구해보자
식 (5.2)를 이용한 2차 테일러 다항식
1차 미분과 2차 미분: ,
2차 테일러 다항식에 a = 4 대입
위 식에 x = 5 대입
곱셈과 덧셈 연산만으로도 충분히 복잡한 함수의 근삿값을 찾는다.
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 14/37
예제
5-2
테일러 다항식의 근삿값 구하기x가 상수 2에 근접하는 x = 2인 점에서 함수 에 대한 선형(혹은 1차) 및 2차 테일러 다항식의 근삿값을 각각 구하라.
Tip !
선형 테일러 다항식의 근삿값
2차 테일러 다항식의 근삿값
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 15/37
5.2 테일러 다항식의 근삿값
5.2 테일러 다항식의 근삿값
MATLAB
5-2
테일러 다항식의 근삿값 구하기[예제 5-2]에서 구한 선형 및 2차 테일러 다항식의 근삿값을 매트랩을 이용하여 그려라.
이때 x의 범위는 1.0~3.0사이에 있다고 가정한다. 또한 x 값은 0.1씩 증가시킨다.
Tip !
fx는 함수 를, p1과 p2는 선형과 2차 테일러 다항식의 근삿값을 각각 표시한다.
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 16/37
[그림 5-2] [MATLAB 5-2] 실행 결과
와 비교하여 그려진 선형 및 2차 테일러 다항식
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 17/37
5.3 테일러 다항식의 오차 공식
5.3 테일러 다항식의 오차 공식
2차 테일러 다항식의 곡선이 1차 테일러 다항식의 곡선보다 f(x)에 더 가깝다
f(x)와 완전히 중첩되지 않고 일정한 틈새 형성
이 틈새가 테일러 다항식과 평가하려는 함수 f(x) 사이에 발생하는 오차
만일 틈새가 없이 완전히 중첩되면, 오차는 전혀 발생하지 않음을 의미
함수 f(x)와 테일러 다항식 pn(x) 사이에서 발생하는 오차를 구하는 공식
x = a에서 테일러 다항식을 근사
식 (5.3)의 나머지 항과 동일
점 cx는 x와 a 사이에 있을 때만 제한적으로 값을 알 수 있음
점 cx는 x와 a 사이에 있지 않으면 알 수 없음
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 18/37
점 cx를 고려하지 않고 더욱 정확하게 표현한 식 (5.12)
식 (5.13)이 식 (5.12)보다 정확한 오차를 계산
식 (5.12)가 주로 테일러 다항식에 대한 오차 계산에 이용
대개 점 cx는 변수 x와 근접하는 상수 a의 범위 내에서만 알 수 있음
식 (5.10)에서 테일러 다항식의 첫 번째 항 표현
식 (5.14)에 대한 테일러 오차 공식
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 19/37
5.3 테일러 다항식의 오차 공식
5.3 테일러 다항식의 오차 공식
중간값(mean-value) 정리
: 함수 f(x)는 폐구간 [a, b]에서 연속 함수이고 개구간 (a, b)에 점 cx가 놓여 있을 때, 이 구간에서 미분이 가능
식 (5.15)에 중간값 정리 적용
테일러 오차 공식 혹은 테일러 나머지 정리는 중간값 정리를 일반화시킨 형태
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 20/37
[예제 5-1] 다시 살펴 보기
지수함수 ex에 대한 n차 테일러 다항식의 근삿값
식 (5.18)에 대한 오차
점 cx는 0과 x 사이
만일 x가 0 값에 근접하면 , 점 cx도 0 값에 근접
위의 식은 pn+1(x)의 마지막 항과 동일
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 21/37
5.3 테일러 다항식의 오차 공식
5.3 테일러 다항식의 오차 공식
자연상수 e
탄젠트(tangent) 곡선의 기울기에서 유도
특정 실수로 무리수이면서 초월수
무리수이기 때문에 근삿값만 추정함
부동 소수점 다섯 자리까지 표시, 2.71828
식 (5.18)에서 x = 1 대입한 자연상수 e의 근삿값 계산
위 식에 대한 오차
경계에 대한 오차
cx는 0과 1 사이 경계에 놓임
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 22/37
자연상수 e에 대한 오차의 범위
n = 3인 경우의 오차
실제 계산
자연상수값 2.71828에서 위의 값을 뺀 값 0.05161는 오차 범위 내에 존재
테일러 다항식의 경계 오차 공식으로 식 (5.12) 변환
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 23/37
5.3 테일러 다항식의 오차 공식
5.3 테일러 다항식의 오차 공식
x = 0에서 지수함수에 대한 3차 테일러 다항식의 경계 오차
네 번 미분한 지수함수도 지수함수 자신
0~1 사이의 경계에서 네 번 미분한 최대값은
a
= 1점에서 존재 최종적으로 계산된 절대 오차
n = 3에 대한 오차 결과의 오른쪽 경계값과 동일
a
= 0의 작은 값을 적용하면 왼쪽 경계값과 동일 n = 8인 경우로 확장하면 오차 범위는 급격하게 감소
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 24/37
예제
5-3
테일러 다항식 근삿값의 경계 오차 구하기5.2절에서 x = 4인 점에서 함수 에 대한 2차 테일러 다항식을 이용하여 의 근삿값 2.234375를 구하였다. 테일러 다항식에 대한 경계 오차와 절대 오차를 구하고 각각의 결과를 비교하라.
Tip !
식 (5.20)를 이용
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 25/37
5.3 테일러 다항식의 오차 공식
5.3 테일러 다항식의 오차 공식
MATLAB
5-3
테일러 다항식의 절대 오차의 최댓값 구하기[그림 5-3]의 매트랩 스크립트를 이용하여 선형 테일러 다항식과 2차 테일러 다항식의 절대 오차의 최댓값을 계산하라.
Tip !
max는 최댓값을 실행
abs는 절댓값을 실행
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 26/37
덧셈과 곱셈이 반복되는 n차 다항식 풀이
식 (5.21)에서 남아 있는 항들의 각 항을 서로 독립적으로 계산
다양한 x 값을 이용하여 다항식의 계수들을 구함
연산 횟수(operation count)의 중요성
: 덧셈 혹은 곱셈에 대한 연산 횟수를 줄임으로써 컴퓨터 실행 속도 향상
식 (5.21)에서 n번의 덧셈 연산 횟수 필요
다음과 같이 식 (5.21)에서 번의 곱셈 연산 횟수 필요
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 27/37
5.4 다항식의 계산
5.4 테일러 다항식의 계산
중첩된 곱셈 형태 이용
: 식 (5.21)의 연산 횟수를 줄인다.
차수를 증가시킨 중첩된 곱셈 형태
차수 n에 대한 중첩된 곱셈의 일반식
식 (5.21)과 식 (5.22)에 대한 덧셈 연산 횟수는 동일한 n번
식 (5.22)에 대한 곱셈 연산 횟수는 n번으로 감소
n = 20인 경우 식 (5.21)의 횟수는 210번, 그러나 식 (5.22)의 횟수는 20번
다항식의 차수가 증가할수록 중첩된 곱셈은 더욱 효과적
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 28/37
주어진 7차 다항식
a = 1에서 선형 테일러 다항식
0 ≤ x ≤ 2의 경계에서 오차 계산
여기서
a = 1 에서 p100(x)를 구하는 방법
f(x)를 100번 미분하고 각 항들에 대한 계수를 계산
7차 다항식은 8번째 미분항부터 나머지 미분항까지는 0
p100(x) = p7(x)
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 29/37
5.4 다항식의 계산
5.4 테일러 다항식의 계산
호너의 방법(Horner’s method)
(1) 다항식을 계산하는 알고리즘에 유리한 형태인 단항식으로 변형시키는 방법 (2) 고차 방정식에서 제곱근을 뽑아내는 방법을 일반화 시킴
수학에서 다루고 있는 조립제법(synthetic division)과 매우 밀접
조립제법은 임의의 다항식을 1차 다항식으로 나누었을 때의 몫인 다항식의 계수 및 나머지를 구하는 방법
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 30/37
[그림 5-5] 호너의 방법으로 구한 테일러 다항식의 계수들
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 31/37
5.4 다항식의 계산
5.4 테일러 다항식의 계산
[그림 5-5]의 처음 행 세 개
자세한 실행 과정 설명
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 32/37
3행~5행에 대하여 과정 ①부터 ⑦까지 반복 실행
f ‘(1) = 72 얻음
같은 방법으로 남아 있는 차수의 계수를 연속으로 구함
호너의 방법을 이용한 최종 결과
p100(x) = 20 + 72(x – 1) + 146(x – 1)2 + 186(x – 1)3 + 152(x – 1)4 + 78(x – 1)5 + 23(x – 1)6 + 3(x – 1)7
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 33/37
5.4 다항식의 계산
5.4 테일러 다항식의 계산
호너의 방법에 중첩된 곱셈 이용
x = z인 점에서 중첩된 곱셈이용한 다항식
부분적으로 다시 표현한 식 (5.23)의 계수
bn-1, ··· , b0: 가장 안쪽에 위치한 괄호부터 바깥쪽으로 향하는 괄호 안의 값
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 34/37
식 (5.25)를 이용하여 다시 쓴 식 (5.21)
다항식 p(x)에 대한 근 찾기(rootfinding) 실행
뉴턴 방법으로 다항식의 근을 찾을 때 유용 (7장에서 자세히 배울 예정)
식 (5.25)의 몫
식 (5.25)를 (x – z)로 나눈 형태의 수식
q(x)는 몫이고 b0은 나머지
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 35/37
5.4 다항식의 계산
5.4 테일러 다항식의 계산
만일 z가 식 (5.25)의 근이면 p(z) = 0이고 나머지 b0 = 0
다시 쓴 식 (5.25)
p(x)의 남은 근들을 찾기 위해서 q(x)의 근 찾기에 초점을 맞춤
식 (5.25)를 x에 대해서 미분
x = z인 점에서 다시 쓴 식 (5.29)
식 (5.29)와 식 (5.30)은 중첩된 곱셈을 이용한 근 찾기의 또 다른 방법
x = z인 점에서 p(z)에 중첩된 곱셈과 p’(z)를 계산하는 중간 과정 이용
p(x)와 p’(x)의 값을 동시에 구할 수 있다
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 36/37
예제
5-4
중첩된 곱셈 방법으로 근 찾기다음 물음에 답하라.
(a) 중첩된 곱셈을 이용하여 근 찾기를 실행하려고 한다. 다음 다항식을 중첩된 곱셈형 으로 다시 나타내라.
(b) x = z = 3에서 계수 bi를 순서대로 나타내라.
(c) (b)에서 구한 계수들을 이용하여 다항식을 다시 정의하라.
(d) 중첩된 곱셈 방법을 이용하여 (c)에서 구한 다항식 q(x)를 변형하고, x = z = 3에서 계수 ci 를 순서대로 나타내라.
Tip !
식 (5.24)와 식 (5.25)를 이용
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 37/37