수치 미분
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
수치 미분은 컴퓨터를 사용하여 함수의 도함수를 근사하는 방법들을 의미한다. 주로 유한 차분, 고차 방법, 복소 변수 방법, 미분 구적법 등이 사용된다. 유한 차분은 가장 기본적인 방법으로, 함수의 값을 이용하여 도함수를 계산하며, 전진, 후진, 중심 차분 등의 방법이 있다. 고차 방법은 더 높은 정확도를 위해 사용되며, 복소 변수 방법은 복소 평면에서의 함수 값을 활용하여 반올림 오차를 줄일 수 있다. 미분 구적법은 함수 값의 가중 합을 사용하여 도함수를 근사하며, 편미분 방정식을 푸는 데 사용된다.
더 읽어볼만한 페이지
- 미분학 - 기울기 (벡터)
기울기(벡터)는 스칼라장의 특정 지점에서 값이 가장 빠르게 증가하는 방향과 변화율을 나타내는 벡터로, 함수의 등위면에 수직이며 크기는 해당 방향의 변화율을 나타내고, 스칼라 함수의 각 성분에 대한 편미분으로 구성되며 나블라 연산자로 표현된다. - 미분학 - 음함수와 양함수
음함수와 양함수는 함수의 표현 방식에 따른 분류로, 독립변수와 종속변수의 관계가 명시적으로 나타나는 경우를 양함수, 관계식이 한 식 안에 포함된 경우를 음함수라 하며, 음함수는 양함수로 표현하기 어렵거나 불가능한 경우가 있고, 음함수 미분법, 음함수 정리 등을 통해 여러 분야에서 활용된다. - 수치해석학 - 수학적 최적화
수학적 최적화는 주어진 집합에서 실수 또는 정수 변수를 갖는 함수의 최댓값이나 최솟값을 찾는 문제로, 변수 종류, 제약 조건, 목적 함수 개수에 따라 다양한 분야로 나뉘며 여러 학문 분야에서 활용된다. - 수치해석학 - 선형대수학
선형대수학은 벡터, 벡터 공간, 행렬 등의 개념으로 선형 방정식과 선형 변환을 연구하는 수학 분야로, 선형성을 활용해 행렬로 표현 및 계산하며, 연립일차방정식 해법, 고유값/고유벡터를 통한 행렬 분석, 벡터 공간의 기저와 차원 등을 다루고 물리학, 공학, 컴퓨터 과학 등 다양한 분야에 응용된다.
수치 미분 | |
---|---|
개요 | |
분야 | 수학의 한 분야인 수치해석학 |
목적 | 함수값을 알고 있는 점에서의 정보를 바탕으로 그 함수에 대한 도함수의 값을 추정하는 것 |
관련 개념 | 미분, 근사, 오차, 수치 적분 |
방법 | |
차분 근사 | 함수의 값을 이산적으로 측정하여 도함수를 근사하는 방법 |
고차 도함수 | 테일러 급수를 이용하여 고차 도함수를 구하는 방법 |
복소수 변수 사용 | 복소수 변수를 사용하여 도함수를 구하는 방법 |
오차 | |
절단 오차 | 테일러 급수를 유한한 항에서 끊음으로써 발생하는 오차 |
라운드 오프 오차 | 유한 정밀도 연산으로 인해 발생하는 오차 |
활용 | |
방정식 풀이 | 뉴턴 방법 등 |
최적화 | 경사 하강법 등 |
물리 시뮬레이션 | 유체 역학, 전자기학 등 |
주의사항 | |
오차 제어 | 절단 오차와 라운드 오프 오차를 균형 있게 관리하는 것이 중요함 |
안정성 | 수치 미분 방법은 불안정할 수 있으므로 주의해야 함 |
같이 보기 |
2. 유한 차분
유한 차분은 도함수를 근사하는 가장 기본적인 방법 중 하나이다. 뉴턴의 차분 몫을 이용하여 함수 f(x)의 도함수를 근사한다.
두 점 추정:
- (x, f(x))와 (x + h, f(x + h))를 지나는 할선의 기울기를 계산한다.[1] 여기서 h는 x의 작은 변화를 나타내는 양수 또는 음수이다. 이 할선의 기울기는 다음과 같다.
:
h가 0에 가까워지면 할선의 기울기는 접선의 기울기에 접근한다. 따라서 f'(x)는 다음과 같은 극한값으로 정의된다.
:
h에 0을 바로 대입하면 부정형이 되므로, 이 방법으로 도함수를 직접 계산하는 것은 직관적이지 않다.
- (x - h, f(x - h))와 (x + h, f(x + h))를 지나는 할선의 기울기를 계산하는 방법도 있다. 이 방법은 대칭 차분 몫이라고 불리며, 기울기는 다음과 같다.[1]
:
대칭 차분 몫은 1차 오차가 상쇄되므로, 작은 h 값에 대해 전진 차분이나 후진 차분보다 접선에 대한 더 정확한 근사치를 제공한다.[2][3] 그러나 이 방법은 x에서의 함수값이 아닌, x-h 와 x+h 에서의 함수값을 사용한다.
추정 오차::
여기서 c는 x - h와 x + h 사이의 어떤 점이다. 이 오차는 반올림 오차를 포함하지 않는다.
TI-82, TI-83, TI-84, TI-85를 포함한 여러 계산기에서 대칭 차분 몫을 도함수 근사에 사용한다.[2][3]
2. 1. 기본 원리
수치 미분은 주어진 점 주변의 함수 값을 이용하여 도함수를 근사하는 방법이다. 가장 간단한 방법으로는 유한 차분 근사를 사용하는 것이 있다. 유한 차분에는 전진 차분, 후진 차분, 중심 차분 등 다양한 방식이 존재한다.이 방법은 기본적으로 두 점을 이용해 추정하는데, (x, f(x))와 (x + h, f(x + h))를 지나는 할선의 기울기나, (x - h, f(x - h))와 (x + h, f(x + h))를 지나는 할선의 기울기를 계산하는 방식이 있다. 여기서 h는 x의 작은 변화를 나타내며 양수 또는 음수일 수 있다. h가 0에 가까워짐에 따라 할선의 기울기는 접선의 기울기에 접근하며, 이를 통해 도함수를 근사적으로 구할 수 있다.
2. 1. 1. 전진 차분
(x, f(x))와 (x + h, f(x + h))를 지나는 할선의 기울기를 계산하는 방법이다.[1] 여기서 h는 x의 작은 변화를 나타내며, 양수 또는 음수일 수 있다. 이 할선의 기울기는 뉴턴의 차분 몫(1차 나눗셈 차이라고도 함)으로 표현된다.:
h가 0에 가까워질수록 이 할선의 기울기는 접선의 기울기에 가까워진다. 따라서 f'(x)는 다음과 같은 극한값으로 정의된다.
:
h에 0을 바로 대입하면 부정형이 되므로, 이 방법으로 도함수를 직접 계산하는 것은 직관적이지 않다.
2. 1. 2. 후진 차분
가장 간단한 방법은 유한차분 근사를 사용하는 것이다.후진 차분은 (x - h, f(x - h))와 (x, f(x))를 지나는 할선의 기울기를 이용하는 방식이다.
2. 1. 3. 중심 차분
작은 숫자 h에 대해, (x - h, f(x - h))와 (x + h, f(x + h))를 지나는 할선의 기울기를 계산하여 미분값을 근사하는 방법이다. 이 선의 기울기는 다음과 같다.:
이 공식은 대칭 차분 몫이라고도 불린다.[1] 1차 오차가 상쇄되므로 전진/후진 차분보다 더 정확한 근사값을 얻을 수 있다.[2][3] h가 작을수록, 이 할선의 기울기는 접선의 기울기에 더 가까워진다. 추정 오차는 다음과 같이 주어진다.
:
여기서 c는 x - h와 x + h 사이의 어떤 점이다. 이 오차는 반올림 오차를 포함하지 않는다.
대칭 차분 몫은 TI-82, TI-83, TI-84, TI-85를 포함한 여러 계산기에서 도함수를 근사하는 방법으로 사용된다.[2][3]
2. 2. 오차 분석
유한 차분 근사는 테일러 급수를 통해 분석할 수 있다. 테일러 급수에 따르면,이므로, 전방 차분 오차는 h에 비례한다.
중심 차분법(대칭 차분 몫)의 경우,
이므로, 중심 차분 오차는 에 비례한다.
따라서 h가 작을수록 오차가 줄어든다. 그러나 실제 계산에서는 반올림 오차 또한 고려해야 한다.[4][5][6] 반올림 오차는 숫자가 제한된 정밀도로 표현되고 계산이 수행되기 때문에 발생한다.
기본 중심 차분의 경우 최적의 스텝은 머신 엡실론의 세제곱근이다.[7] x와 x + h에서 평가된 수치 미분 공식의 경우, 큰 반올림 오차를 생성하지 않으면서 작은 h를 선택하는 방법은 이다(단, x = 0일 때는 제외). 여기서 머신 엡실론 ε은 일반적으로 배정밀도의 경우 2.2e-16 정도이다.[8] 최적의 정확도를 위해 반올림 오차와 할선 오차의 균형을 맞추는 h 공식은[9]
(단, 일 때는 제외)이며, 이를 사용하려면 함수에 대한 지식이 필요하다.
컴퓨터 계산에서는 h를 더 정밀하게 표현할 수 있도록 다음과 같은 방법을 사용한다.
```text
h := sqrt(eps) * x;
xph := x + h;
dx := xph - x;
slope := (F(xph) - F(x)) / dx;
```
C 및 유사한 언어에서는 xph가 volatile 변수라는 지시문을 통해 컴파일러 최적화를 방지할 수 있다.
2. 3. 스텝 사이즈 (h) 선택
h가 너무 작으면 뺄셈으로 인해 큰 반올림 오차가 발생한다. 실제로 모든 유한 차분 공식은 불량 조건[4]이며 소거로 인해 h가 충분히 작으면 0 값을 생성한다.[5] 너무 크면 할선의 기울기 계산은 더 정확하게 계산되지만, 할선을 사용하여 접선의 기울기를 추정하는 것은 더 나빠질 수 있다.[6]기본 중심 차분의 경우 최적의 스텝은 머신 엡실론의 세제곱근이다.[7] x와 x + h영어에서 평가된 수치 미분 공식의 경우, 큰 반올림 오차를 생성하지 않으면서 작은 h를 선택하는 방법은 이다(단, x = 0일 때는 제외). 여기서 머신 엡실론 ε영어은 일반적으로 배정밀도의 경우 정도이다.[8] 최적의 정확도를 위해 반올림 오차와 할선 오차의 균형을 맞추는 h 공식은[9]
(단, 일 때는 제외)이며, 이를 사용하려면 함수에 대한 지식이 필요하다.
컴퓨터 계산의 경우, x가 반드시 어떤 정밀도(32비트 또는 64비트 등)로 표현 가능한 부동 소수점 숫자를 가지고 있지만, x + h영어는 거의 확실하게 해당 정밀도로 정확하게 표현될 수 없기 때문에 문제가 악화된다. 이는 x + h영어가 주변의 기계 표현 가능한 숫자로 변경(반올림 또는 절사)될 것이며, 그 결과 가 h와 같지 않다는 것을 의미한다. 즉, 두 함수 평가가 정확히 h만큼 떨어져 있지 않다는 것이다. 이와 관련하여, 대부분의 소수 분수는 이진법에서 순환 수열이기 때문에 (1/3이 십진법에서 그런 것처럼) 과 같은 겉보기에 둥근 단계는 이진법에서는 둥근 숫자가 아닐 것이다. 즉, 0.000110011001100...2이다. 가능한 접근 방식은 다음과 같다.
```
h := sqrt(eps) * x;
xph := x + h;
dx := xph - x;
slope := (F(xph) - F(x)) / dx;
```
그러나 컴퓨터를 사용하면 컴파일러 최적화 기능이 실제 컴퓨터 산술의 세부 사항에 주의를 기울이지 못하고 대신 수학의 공리를 적용하여 와 h영어가 동일하다고 추론할 수 있다. C 및 유사한 언어에서는 xph영어가 volatile 변수라는 지시문이 이를 방지한다.
3. 고차 방법
고차 도함수를 근사하여 더 높은 정확도를 얻는 방법들이 존재한다.[10]
3. 1. 고차 유한 차분 공식
여러 점을 사용하여 도함수를 근사하며, 오차 항의 차수를 높인다. 5점 스텐실 등을 예로 들 수 있다.[10]1차 도함수에 대한 5점 방법(1차원 5점 스텐실)은 다음과 같다.
:
여기서 이다.
다른 스텐실 구성 및 도함수 차수에 대해서는 유한 차분 계수 계산기를 사용하여 모든 스텐실과 모든 도함수 차수에 대한 도함수 근사 방법을 생성할 수 있다(해결책이 존재하는 경우).
4. 복소 변수 방법
함수가 정칙 함수인 경우, 복소 평면에서의 함수 값을 이용하여 도함수를 계산할 수 있다.[5] 이는 수치 미분에 대한 고전적인 유한 차분 근사가 조건이 좋지 않은 반면, 복소 변수를 이용하는 방법은 안정적이기 때문이다.
임의 차수의 도함수는 코시 적분 공식을 사용하여 계산할 수 있다.[19]
```
f^{(n)}(a) = \frac{n!}{2\pi i} \oint_\gamma \frac{f(z)}{(z - a)^{n+1}} \,\mathrm{d}z
```
여기서 적분은 수치 적분으로 수행된다.
수치 미분을 위해 복소 변수를 사용하는 것은 1967년 Lyness와 Moler에 의해 시작되었으며,[20] 이들의 알고리즘은 고차 도함수에 적용할 수 있다. 복소 라플라스 변환의 수치적 역변환을 기반으로 하는 방법은 Abate와 Dubner에 의해 개발되었다.[21] 방법이나 함수의 특성에 대한 지식 없이 사용할 수 있는 알고리즘은 Fornberg에 의해 개발되었다.[4]
4. 1. 복소 단계 도함수
정칙 함수 가 실수선에서 실수 값을 가지며 근처의 복소 평면에서 값을 평가할 수 있는 경우, 안정적인 방법으로 도함수를 계산할 수 있다.[5] 예를 들어, 1차 도함수는 복소 단계 도함수 공식을 사용하여 계산할 수 있다.[12][13][14]:
정확한 도함수를 얻기 위해 권장되는 단계 크기는 이다.[6] 이 공식은 테일러 급수 전개를 통해 얻을 수 있다.
:
복소 단계 도함수 공식은 1차 도함수 계산에만 유효하다. 임의 차수의 도함수를 계산하기 위한 일반화는 다중 복소수를 사용하여 다중 복소 도함수를 생성한다.[15][16][17]
:
여기서 는 다중 복소 허수 단위를 나타낸다. () 연산자는 레벨 의 다중 복소수의 번째 성분을 추출한다. 예를 들어, 는 실수 성분을 추출하고 는 마지막, "가장 허수" 성분을 추출한다.
이 방법은 혼합 도함수에 적용할 수 있으며, 예를 들어 2차 도함수의 경우 다음과 같다.
:
다중 복소 연산의 C++ 구현이 가능하다.[18]
4. 2. 다중 복소수 방법
다중 복소수를 이용하면 임의 차수의 도함수를 계산할 수 있다.[15][16][17] 혼합 편미분도 계산할 수 있다.:
여기서 는 다중 복소 허수 단위를 나타낸다. () 연산자는 레벨 의 다중 복소수의 번째 성분을 추출한다. 예를 들어, 는 실수 성분을 추출하고 는 마지막, "가장 허수" 성분을 추출한다. 이 방법은 혼합 도함수에 적용할 수 있으며, 예를 들어 2차 도함수의 경우는 다음과 같다.
:
다중 복소 연산의 C++ 구현이 가능하다.[18]
4. 3. 코시 적분 공식
코시 적분 공식을 이용하면 임의 차수의 도함수를 계산할 수 있다.[19]:
여기서 적분은 수치 적분으로 수행한다.
5. 미분 구적법 (Differential Quadrature)
미분 구적법은 함수 값의 가중 합을 사용하여 도함수를 근사하는 방법이다.[22][23] 노이즈가 있는 데이터로부터 도함수를 계산할 수 있게 해주기 때문에 실용적인 측면에서 흥미로운 방법이다. 이름은 가중 합이 심슨 공식 또는 사다리꼴 공식과 같은 방법에서 사용되는 수치 적분을 의미하는 ''구적법''과 유사하다. 가중 계수를 결정하는 다양한 방법이 있으며, 예를 들어 Savitzky–Golay 필터가 있다. 미분 구적법은 편미분 방정식을 푸는 데 사용된다.
노이즈가 있는 데이터로부터 도함수를 계산하는 데는 더 많은 방법이 있다.[24]
참조
[1]
서적
Numerical Analysis
Brooks/Cole
2000
[2]
서적
Windows on Teaching Math: Cases of Middle and Secondary Classrooms
https://archive.org/[...]
Teachers College Press
[3]
서적
Kaplan AP Calculus AB & BC 2015
Kaplan Publishing
[4]
논문
Numerical Differentiation of Analytic Functions
1981
[5]
논문
Using Complex Variables to Estimate Derivatives of Real Functions
1998
[6]
웹사이트
Engineering Design Optimization
http://flowlab.group[...]
Cambridge University Press
2021-10-01
[7]
서적
Numerical Analysis
Pearson
2012
[8]
문서
Chapter 5.7
http://www.nrbook.co[...]
Numerical Recipes in C
[9]
문서
http://www.uio.no/st[...]
[10]
문서
Table 25.2
[11]
서적
Elementary Real and Complex Analysis
[12]
간행물
The Complex-Step Derivative Approximation
[13]
웹사이트
Differentiation With(out) a Difference
https://sinews.siam.[...]
[14]
웹사이트
article
https://blogs.mathwo[...]
[15]
웹사이트
Archived copy
http://russell.ae.ut[...]
2012-11-24
[16]
간행물
Using multicomplex variables for automatic computation of high-order derivatives
[17]
웹사이트
Computation of higher-order derivatives using the multi-complex step method
http://folk.ntnu.no/[...]
[18]
웹사이트
mcx (multicomplex algebra library)
https://github.com/i[...]
[19]
서적
Complex variables: introduction and applications
Cambridge University Press
2003
[20]
간행물
Numerical differentiation of analytic functions
[21]
간행물
A New Method for Generating Power Series Expansions of Functions
1968-03
[22]
서적
Differential Quadrature and Its Application in Engineering: Engineering Applications
Springer
2000
[23]
서적
Advanced Differential Quadrature Methods
CRC Press
2009
[24]
간행물
Numerical differentiation of experimental data: local versus global methods
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com