Numerical Analysis - 01 Introduction

What is Numerical analysis?

New Definition

많은 사람들은 approximation과 error에 관한 학문이라고 한다.
Numerical analysis is the study of rounding errors.

Lloyd Trefethen이 1993년에 내린 정의는 다음과 같다.
연속적인 수학적 문제를 알고리즘을 개발해 연구하는 것.
Numerical analysis is the study of algorithms for the problems of continuous mathematics.

Errors

절대에러

\(|x-x^*|\)

상대에러

\(\frac{|x-x^*|}{|x|}\)

상대에러는 계산이 비교적 복잡해보이지만 scale의 차이를 반영할 수 있다.

그런데 에러라는건 사실 참값을 알면, 이러한 수학적 계산은 의미가없다.
그렇기 때문에 오차를 계산하는 것은 실제 우리가 참값을 아는 것을 통해, numerical method를 이용해 구한 근사값과의 오차를 구하고,
실제로 참값을 모르는 케이스에 대해 같은 numerical method를 통해 근사값을 만들어 에러를 추측하는 용도로 사용한다.

Source of Errors

오차는 적을수록 좋다.
그래서 오차가 발생하는 환경을 수학적으로 고민할 수 있는데,
그 환경을 수학적으로 모델링(mathematical modeling)해야 한다.

자유낙하 공식같은 것은 바람이나 저항같은 에러를 무시한다.

가능한한 에러가 적으면 좋지만, 수치적 방법을 통해 구하는데 에러가 작았으면 좋다.
가능한한 환경을 잘 파악하면 에러를 최소화할 수 있다.

에러는 세가지 종류가 있다.

  1. 모델의 에러. 지나치게 단순화할 때.
  2. Blunders: 프로그래밍 에러.
  3. Errors in input: 측정의 에러.
  4. Machine errors by computer: 루트2는 컴퓨터로 완벽히 표현할 수 없다.

Arithmetic

1985 IEEE 사용.
Double and extended precision

Algorithms

수학적으로 모델링하였는데, 이를 컴퓨터에 입력해서 계산하려고 하면 알고리즘을 개발해야 한다.

알고리즘이 stable하냐, unstable하냐의 문제가 발생한다.
여러 이유로 unstable해서 결과가 예측하지 못하는 에러가 포함된 값이 나온다면, 수학적으로는 맞을지라도 사용할 수는 없다.

그래서 stableness를 체크해야한다.

만약 수학적으로는 문제가 없지만 unstable하다면, 특정 조건하에 stable하게 바꿀 수 있다면, 그렇게 변환하여야 한다.

Convergence

어떤 iteration이 주어졌을 때, 이것이 수렴하는지 체크해야 한다.

또한 the rate of convergence, 즉 수렴하는 속도도 중요하다.


수치해석의 영역

해석학/함수론의 영역이다. 그런데 계산영역이 추가되는 듯.

집합: 집합에서 시작한다. 이것이 이 집합에 포함되느냐? 저 집합에 포함되느냐?

함수: 이 집합에서 저 집합으로 대응시켜 뭔가 쓸만한걸 만들어보자. 함수를 통해 세상의 많은 현상들을 수학적으로 표현할 수 있다.

실세계에선 실수가 중요하다. 그리고 실세계의 많은 현상들은 연속적이다.

미적: 그렇기 때문에 극한과 연속에 대한 얘기가 나오고, 미분이 등장한다.

선대: 함수가 실수 -> 실수만 다루는게 아니라, \(R^n \rightarrow R^m\), 다차원이면서 서로 다른 차원으로 변환됨.

미분방정식: 자연현상들을 수학적으로 표현함에 있어선 미분이 필수적이다. 그리고 미래를 예측하기 위해선 방정식 개념이 등장한다. 그래서 미분방정식이 등장. 미분방정식은 실세계를 표현함에 매우 유용하다. 수치해석의 많은 부분은 미분방정식을 푸는 것이다.

다변수 비선형, 선형: 변수가 여러개인 비선형 방정식을 풀때 미분방정식은 매우 유용하다. 선형적인 성질의 것들은 선형대수학에서 다룬다.