Jump to content

Numerical analysis

This is a fully translated article. Click here for more information.
From DawoumWiki, the free Mathematics self-learning
Babylonian clay tablet YBC 7289 (c. 1800–1600 BC) with annotations. The approximation of the square root of 2 is four sexagesimal figures, which is about six decimal figures. 1 + 24/60 + 51/602 + 10/603 = 1.41421296...[1]

수치적 해석학(numerical analysis)은 (이산 수학(discrete mathematics)과 구별되는 것처럼) 수학적 해석학(mathematical analysis)의 문제에 대한 (기호적 조작(symbolic manipulations)과는 반대로) 수치적 근사(approximation)를 사용하는 알고리듬(algorithm)의 연구입니다. 그것은 문제의 정확한 해결책이 아닌 문제의 근사적인 해결책을 찾으려고 시도하는 수치적 방법의 연구입니다. 수치적 해석은 공학과 물리적 과학, 및 21세기에서 생명 과학, 사회 과학, 의학, 영업과 심지어 예술의 모든 분야에서 응용을 찾을 수 있습니다. 컴퓨팅 성능에서 현재 성장으로 인해 보다 복잡한 수치적 해석을 사용할 수 있게 되어, 과학과 공학 분야에서 상세하고 사실적인 수학적 모델을 제공합니다. 수치적 해석의 예제는 천체 역학 (행성, 별과 은하의 움직임 예측)에서 발견되는 보통의 미분 방정식, 데이터 해석에서 수치적 선형 대수,[2][3][4] 및 의학과 생물학에서 살아있는 세포를 모의실험하기 위한 확률론적 미분 방정식마르코프 체인을 포함합니다.

현대 컴퓨터의 출현 전에, 수치적 방법(numerical method)은 종종 큰 인쇄된 테이블에서 데이터를 사용하여 손 보간법(interpolation)에 의존했습니다. 20세기 중반 이후로, 컴퓨터는 필요한 함수를 대신 계산하지만, 많은 동일한 공식이 소프트웨어 알고리듬에서 계속해서 사용됩니다.[5]

수치적 관점은 가장 초기의 수학적 저술로 거슬러 올라갑니다. Yale Babylonian Collection (YBC 7289)의 태블릿은 단위 정사각형대각선의 길이, 2의 제곱근에 대한 육십진수 수치적 근사를 제공합니다.

수치적 해석은 이러한 오랜 전통을 이어가고 있습니다: 자릿수로 변환되고 실제 측정에만 적용할 수 있는 정확한 기호 답변을 제공하는 대신, 지정된 오류 범위 내에서 대략적인 해결책이 사용됩니다.

General introduction

수치적 해석 분야의 전반적인 목표는 난해한 문제에 대한 대략적이지만 정확한 해결책을 제공하는 기법의 설계와 해석이며, 그 다양성은 다음에 의해 제안됩니다:

  • 고급 수치적 방법은 수치적 기상 예측(numerical weather prediction)을 실현하는 데 필수적입니다.
  • 우주선의 궤적을 계산하는 것은 보통의 미분 방정식 시스템의 정확한 수치적 해결책을 요구합니다.
  • 자동차 회사는 자동차 충돌의 컴퓨터 모의실험을 사용함으로써 자동차의 충돌 안전성을 향상시킬 수 있습니다. 그러한 모의실험은 본질적으로 부분 미분 방정식(partial differential equations)을 수치적으로 푸는 것으로 구성됩니다.
  • 헤지 펀드 (민간 투자 펀드)는 모든 수치적 해석 분야의 도구를 사용하여 다른 시장 참여자보다 더 정확하게 주식과 파생 상품의 가치를 계산합니다.
  • 항공사는 정교한 최적화 알고리듬을 사용하여 티켓 가격, 항공기와 승무원 배정, 연료 수요를 결정합니다. 역사적으로, 그러한 알고리듬은 운영 연구(operations research)의 중복 분야 내에서 개발되었습니다.
  • 보험 회사는 계리적(actuarial) 분석을 위해 수치적 프로그램을 사용합니다.

이 섹션의 나머지 부분은 수치적 해석의 몇 가지 중요한 주제에 대해 설명합니다.

History

수치적 해석의 분야는 현대 컴퓨터의 발명보다 수세기 앞서 있습니다. 선형 보간법(Linear interpolation)은 이미 2000년 이상 전에 사용되었습니다. 뉴턴의 방법(Newton's method), 라그랑주 보간 다항식(Lagrange interpolation polynomial), 가우스 소거법(Gaussian elimination), 또는 오일러의 방법(Euler's method)과 같은 중요한 알고리듬의 이름에서 분명한 것처럼 과거의 많은 위대한 수학자들은 수치적 해석에 몰두했습니다.[5] 현대 수치적 해석의 기원은 종종 존 폰 노이만(John von Neumann)허먼 골드스틴(Herman Goldstine)의 1947년 논문과 연결되어 있지만,[6][7][8] 다른 사람들은 현대 수치적 해석을 1912년 E. T. Whittaker에 의한 연구로 거슬러 올라가는 것으로 고려합니다.[6]

수작업 계산을 용이하게 하기 위해, 큰 책은 보간 점과 함수 계수와 같은 데이터의 테이블과 공식과 함께 제작되었습니다. 일부 함수에 대해 종종 십진 점 이하 16자리 이상으로 계산되는 이들 테이블을 사용하여, 주어진 공식에 연결하기 위한 값을 조회하고 일부 함수의 매우 좋은 수치 추정값을 얻을 수 있습니다. 이 분야의 정식의 연구는 어브래머위츠와 스테컨(Abramowitz and Stegun)에 의해 편집된 NIST 간행물이며, 이는 공통적으로 사용되는 매우 많은 공식과 함수 및 여러 점에서의 해당 값에 대한 1000페이지 이상의 책입니다. 함수 값은 컴퓨터를 사용할 수 있을 때 더 이상 유용하지 않지만, 많은 수식의 목록은 여전히 매우 유용할 수 있습니다.

기계식 계산기(mechanical calculator)는 역시 손 계산을 위한 도구로 개발되었습니다. 이들 계산기는 1940년대에 전자 컴퓨터로 발전했고, 이들 컴퓨터가 관리 목적으로도 유용하다는 것이 밝혀졌습니다. 그러나 컴퓨터의 발명은 역시 수치적 해석 분야에 영향을 미쳤는데,[5] 왜냐하면 이제 더 길고 더 복잡한 계산을 수행할 수 있게 되었기 때문입니다.

Leslie Fox Prize for Numerical Analysis은 1985년 Institute of Mathematics and its Applications에 의해 시작되었습니다.

Direct and iterative methods

미지수 양 x에 대해,

3x3 + 4 = 28

위 문제를 해결하는 방법을 생각해 보십시오:

Direct method
3x3 + 4 = 28.
Subtract 4 3x3 = 24.
Divide by 3 x3 =  8.
Take cube roots x =  2.

반복 방법에 대해, 이분법(bisection method)f(x) = 3x3 − 24에 적용합니다. 초기 값은 a = 0, b = 3, f(a) = −24, f(b) = 57입니다.

Iterative method
a b mid f(mid)
0 3 1.5 −13.875
1.5 3 2.25 10.17...
1.5 2.25 1.875 −4.22...
1.875 2.25 2.0625 2.32...

이 테이블에서 해가 1.875와 2.0625 사이에 있다는 결론을 내릴 수 있습니다. 그 알고리듬은 0.2 미만의 오류를 갖는 해당 범위에서 임의의 숫자를 반환할 수 있습니다.

Discretization and numerical integration

2시간 경주에서, 자동차의 속력은 세 순간에 측정되어 다음 테이블에 기록됩니다.

Time 0:20 1:00 1:40
km/h 140 150 180

이산화(discretization)는 자동차의 속력이 0:00에서 0:40까지, 그 다음에는 0:40에서 1:20까지, 마지막으로 1:20에서 2:00까지 일정하다고 말하는 것입니다. 예를 들어, 처음 40분 동안 이동한 총 거리는 근사적으로 (2/3 h × 140 km/h) = 93.3 km입니다. 이렇게 하면 이동한 총 거리를 93.3 km + 100 km + 120 km = 313.3 km로 추정할 수 있으며, 이는 변위가 속도의 적분(integral)이기 때문에 리만 합(Riemann sum)을 사용하는 수치적 적분(numerical integration)의 예입니다 (아래를 참조하십시오).

조건이 나쁜 문제: 함수 을 선택합니다. f(1.1) = 10이고 f(1.001) = 1000: 0.1 미만의 x에서 변화는 거의 1000의 f(x)에서 변화로 바뀜을 주목하십시오. x = 1 근처에서 f(x)를 평가하는 것은 나쁜 조건의 문제입니다.

조건이 좋은 문제: 반대로 x = 10에 가까운 같은 함수 를 평가하는 것은 조건이 좋은 문제입니다. 예를 들어, f(10) = 1/9 ≈ 0.111이고 f(11) = 0.1: x에서 약간의 변화는 f(x)에서 약간의 변화로 이어집니다.

직접 방법은 유한한 수의 단계로 문제에 대한 해를 계산합니다. 이들 방법은 만약 그것들이 무한 정밀도 산술(infinite precision arithmetic)에서 수행되면 정확한 답을 제공할 것입니다. 예를 들면 가우스 소거법(Gaussian elimination), 선형 방정식 시스템을 풀기 위한 QR 인수분해 방법, 및 선형 프로그래밍심플렉스 방법(simplex method) 등이 있습니다. 실제로는 유한 정밀도(finite precision)가 사용되고 결과는 실제 해의 근사치입니다 (안정성을 가정합니다).

직접 방법과 달리, 반복 방법(iterative methods)은 한정된 수의 단계에서 종료될 것으로 예상되지 않습니다. 초기 추측에서 시작하여, 반복 방법은 극한에서만 정확한 해로 수렴하는 연속적인 근사를 형성합니다. 종종 잔여(the residual)를 포함하는 수렴 테스트는 충분하게 정확한 해가 발견된 시기를 결정하기 위해 지정됩니다. 심지어 무한 정밀도 산술을 사용하더라도, 이들 방법은 (일반적으로) 유한한 단계의 숫자 내에서 해에 도달하지 않습니다. 예로는 뉴턴의 방법, 이분법(bisection method), 및 야코비 반복(Jacobi iteration)이 있습니다. 전산 행렬 대수에서, 반복 방법은 일반적으로 큰 문제에 대해 필요합니다.[9][10][11][12]

반복 방법은 수치적 해석에서 직접 방법보다 더 공통적입니다. 일부 방법은 원칙적으로 직접적이지만 보통 그렇지 않은 것, 예를 들어 GMRES추측 그래디언트 방법(conjugate gradient method)처럼 사용됩니다. 이들 방법에 대해 정확한 해를 얻는 데 필요한 단계의 숫자가 너무 커서 반복 방법과 같은 방식으로 근사를 허용됩니다.

Discretization

더욱이, 연속적인 문제는 때때로 그 연속적인 문제의 해에 근사하는 것으로 알려져 있는 불연속적인 문제로 대체되어야 합니다; 이 과정은 '이산화(discretization)'라고 불립니다. 예를 들어, 미분 방정식(differential equation)의 해는 함수(function)입니다. 이 함수는 예를 들어 해당 도메인이 연속체(continuum)일지라도 해당 도메인에서 유한한 숫자의 점에서의 값으로 유한한 양의 데이터로 표현되어야 합니다.

Generation and propagation of errors

오차의 연구는 수치적 해석의 중요한 부분을 형성합니다. 문제 해결에서 오차가 도입될 수 있는 방법에는 여러 가지가 있습니다.

Round-off

반올림 오차(Round-off errors)는 유한한 메모리를 갖는 기계 (모든 실제 디지털 컴퓨터가 그러함)에서 모든 실수를 정확하게 나타내는 것이 불가능하기 때문에 발생합니다.

Truncation and discretization error

잘림 오차(Truncation errors)는 반복 방법이 종료되거나 수학적 절차가 근사화되고 근사 해가 정확한 해와 다를 때 나타납니다. 유사하게, 이산화는 이산 문제의 해가 연속 문제의 해와 일치하지 않기 때문에 이산화 오차(discretization error)를 유발합니다. 의 해를 계산하기 위한 위의 예제에서, 10회 반복 후, 계산된 근은 대략 1.99입니다. 그러므로, 잘림 오차는 대략 0.01입니다.

일단 오차가 생성되면, 그것은 계산을 통해 전파됩니다. 예를 들어, 컴퓨터의 + 연산은 정확하지 않습니다. 유형의 계산은 훨씬 더 부정확합니다.

수학적 절차가 근사화될 때 잘림 오차가 생성됩니다. 함수를 정확하게 적분하기 위해, 영역의 무한한 합을 찾아야 하지만, 수치적으로 영역의 유한한 합만 찾을 수 있고, 따라서 정확한 해의 근사를 구할 수 있습니다. 유사하게, 함수를 미분하기 위해, 미분 원소는 영에 접근하지만, 수치적으로 미분 원소의 비-영 값만 선택될 수 있습니다.

Numerical stability and well-posed problems

수치적 안정성(Numerical stability)은 수치적 해석에서 한 개념입니다. 알고리듬은 만약 그 원인이 무엇이든 오차가 계산 중에 훨씬 더 커지지 않으면 '수치적으로 안정적'이라고 불립니다.[13] 이것은 문제가 '조건이 좋은' 것이면 발생하며, 문제 데이터가 조금만 변경되어도 해가 역시 조금만 변경된다는 의미입니다.[13] 반대로, 문제가 '조건이 나쁜' 것이면, 데이터에서 작은 오차가 큰 오차가 되도록 커지게 될 것입니다.[13]

원래 문제와 해당 문제를 해결하기 위해 사용되는 알고리듬은 모두 '조건이 좋은' 또는 '조건이 나쁜' 것일 수 있고, 임의의 조합이 가능합니다.

따라서 조건이 좋은 문제를 해결하는 알고리듬은 수치적으로 안정적이거나 수치적으로 불안정할 수 있습니다. 수치적 해석의 기술은 잘-제시된 수학적 문제를 풀기 위한 안정적인 알고리듬을 찾는 것입니다. 예를 들어, 2의 제곱근 (대략 1.41421)을 계산하는 것은 잘-제기된 문제입니다. 많은 알고리듬은 x0 = 1.4와 같이 에 대한 초기 근사 x0에서 시작하고, 그런-다음 x1, x2, 등의 향상된 추측을 계산하여 이 문제를 해결합니다. 그러한 방법 중 하나는 xk+1 = xk/2 + 1/xk에 의해 제공되는 유명한 바빌로니아 방법(Babylonian method)입니다. '방법 X'라고 불리는 또 다른 방법은 xk+1 = (xk2 − 2)2 + xk에 의해 제공됩니다.[note 1] 각 스킴의 몇 가지 반복은 초기 추측 x0 = 1.4와 x0 = 1.42와 함께 아래 테이블 형식으로 계산됩니다.

Babylonian Babylonian Method X Method X
x0 = 1.4 x0 = 1.42 x0 = 1.4 x0 = 1.42
x1 = 1.4142857... x1 = 1.41422535... x1 = 1.4016 x1 = 1.42026896
x2 = 1.414213564... x2 = 1.41421356242... x2 = 1.4028614... x2 = 1.42056...
... ...
x1000000 = 1.41421... x27 = 7280.2284...

바빌로니아 방법은 초기 추측과 관계없이 빠르게 수렴하고, 반면에 방법 X는 초기 추측 x0 = 1.4에서 매우 느리게 수렴하고 초기 추측 x0 = 1.42에서 발산합니다. 따라서, 바빌로니아 방법은 수치적으로 안정적이고, 반면 방법 X는 수치적으로 불안정합니다.

수치적 안정성(Numerical stability)은 기계가 유지하는 유효 자릿수의 숫자에 영향을 받습니다. 만약 4개의 최상위 유효 십진 자릿수만 유지하는 기계를 사용하면, 의미 상실에 대한 좋은 예제는 다음과 같은 두 개의 등가 함수에 의해 제공될 수 있습니다:
and
다음의 결과를 비교하여
그리고
위의 두 결과를 비교함으로써, 유효숫자의 손실 (뺄셈이 정확히 계산되었음에도 불구하고 가까운 숫자 에 대한 뺄셈 근사에서 치명적인 취소로 인해 발생함)은 아래와 같이 두 함수가 동등하더라도 결과에 큰 영향을 미친다는 것이 분명합니다:
무한 정밀도를 사용하여 원하는 값은 11.174755...입니다
  • 이 예제는 Mathew; Numerical methods using MATLAB, 3rd ed에서 가져온 것을 수정한 것입니다.

Areas of study

수치적 해석 분야에는 많은 하위-분야가 포함됩니다. 주요한 것들 중 일부는 다음과 같습니다:

Computing values of functions

Interpolation: Observing that the temperature varies from 20 degrees Celsius at 1:00 to 14 degrees at 3:00, a linear interpolation of this data would conclude that it was 17 degrees at 2:00 and 18.5 degrees at 1:30pm.

Extrapolation: If the gross domestic product of a country has been growing an average of 5% per year and was 100 billion last year, it might extrapolated that it will be 105 billion this year.

A line through 20 points
A line through 20 points

Regression: In linear regression, given n points, a line is computed that passes as close as possible to those n points.

How much for a glass of lemonade?
How much for a glass of lemonade?

Optimization: Suppose lemonade is sold at a lemonade stand, at $1.00 per glass, that 197 glasses of lemonade can be sold per day, and that for each increase of $0.01, one less glass of lemonade will be sold per day. If $1.485 could be charged, profit would be maximized, but due to the constraint of having to charge a whole-cent amount, charging $1.48 or $1.49 per glass will both yield the maximum income of $220.52 per day.

Wind direction in blue, true trajectory in black, Euler method in red
Wind direction in blue, true trajectory in black, Euler method in red

Differential equation: If 100 fans are set up to blow air from one end of the room to the other and then a feather is dropped into the wind, what happens? The feather will follow the air currents, which may be very complex. One approximation is to measure the speed at which the air is blowing near the feather every second, and advance the simulated feather as if it were moving in a straight line at that same speed for one second, before measuring the wind speed again. This is called the Euler method for solving an ordinary differential equation.

가장 간단한 문제 중 하나는 주어진 점에서 함수의 평가입니다. 수식에 숫자를 대입하는 가장 간단한 접근 방식은 때때로 그다지 효율적이지 않습니다. 다항식에 대해, 필요한 곱셈과 덧셈의 횟수를 줄이기 때문에 호너의 스킴(Horner's scheme)을 사용하는 것이 더 나은 접근 방식입니다. 일반적으로, 부동-점 산술(floating-point arithmetic)의 사용으로 발생하는 반-올림 오차(round-off errors)를 추정하고 제어하는 것이 중요합니다.

Interpolation, extrapolation, and regression

보간법(Interpolation)은 다음 문제를 해결합니다: 여러 점에서 일부 알려지지 않은 함수의 값이 주어지면, 해당 함수가 주어진 점 사이의 어떤 다른 점에서 가지는 값은 무엇입니까?

외삽법(Extrapolation)은 이제 주어진 점 외부에 있는 점에서 알려지지 않은 함수의 값을 찾아야 한다는 점을 제외하고 보간법과 매우 유사합니다.[14]

회귀(Regression)도 비슷하지만, 데이터가 부정확하다는 점을 고려합니다. 일부 점과 이들 점에서 일부 함수 값 (오차 포함)의 측정이 주어지면, 알려져 있지 않은 함수를 찾을 수 있습니다. 최소 제곱-방법은 이를 달성하는 한 가지 방법입니다.

Solving equations and systems of equations

또 다른 근본적인 문제는 일부 주어진 방정식의 해를 계산하는 것입니다. 방정식이 선형인지 여부에 따라 공통적으로 두 가지 경우가 구별됩니다. 예를 들어 방정식 은 선형이고, 반면에 은 선형이 아닙니다.

선형 방정식의 시스템을 풀기 위한 방법의 개발에 많은 노력을 기울여 왔습니다. 표준 직접 방법, 즉, 일부 행렬 분해를 사용하는 방법은 가우스 소거법, LU 분해, 대칭 (또는 에르미트)과 양수-한정 행렬(positive-definite matrix)에 대한 숄레스키 분해(Cholesky decomposition), 비-정사각 행렬에 대한 QR 분해입니다. 야코비 방법, 가우스-자이델 방법, 연속적인 과잉-이완(successive over-relaxation), 및 켤레 그래디언트 방법[15] 같은 반복 방법은 보통 대규모 시스템에 선호됩니다. 일반적인 반복 방법은 행렬 분할(matrix splitting)을 사용하여 개발될 수 있습니다.

근-찾기 알고리듬(Root-finding algorithms)은 비선형 방정식을 푸는 데 사용됩니다 (그것들은 함수의 근이 함수가 영을 산출하는 인수이므로 그렇게 이름-지정됩니다). 만약 함수가 미분-가능(differentiable)이고 도함수가 알려져 있으면, 뉴턴의 방법이 널리 사용됩니다.[16][17] 선형화(Linearization)는 비선형 방정식을 푸는 또 다른 기술입니다.

Solving eigenvalue or singular value problems

몇 가지 중요한 문제는 고윳값 분해(eigenvalue decompositions) 또는 특이 값 분해(singular value decompositions)로 표현될 수 있습니다. 예를 들어, 스펙트럼 이미지 압축 알고리듬은 특이 값 분해를 기반으로 합니다.[18] 통계에서 해당하는 도구는 주요 성분 해석(principal component analysis)이라고 불립니다.

Optimization

최적화 문제는 주어진 함수가 최대화 (또는 최소화)되는 점을 묻습니다. 종종, 그 점은 일부 구속 조건(constraints)도 만족시켜야 합니다.

최적화의 분야는 목적 함수(objective function)의 형식과 구속 조건에 따라 여러 하위필드로 더 나뉩니다. 예를 들어, 선형 프로그래밍(linear programming)은 목적 함수와 구속 조건이 모두 선형인 경우를 처리합니다. 선형 프로그래밍에서 유명한 방법은 심플렉스 방법입니다.

라그랑주 곱셈수(Lagrange multipliers) 방법을 사용하여 구속 조건이 없는 최적화 문제에 대한 구속 조건이 있는 최적화 문제를 줄일 수 있습니다.

Evaluating integrals

어떤 경우에는 수치적 적분으로도 알려진 수치 구적법(quadrature)은 정 적분(integral)의 값을 요구합니다.[19] 널리 사용되는 방법은 뉴턴–코츠 공식(Newton–Cotes formulas) (예를 들어, 중간점 규칙 또는 심슨의 규칙) 또는 가우스 구적법 중 하나를 사용합니다.[20] 이들 방법은 상대적으로 큰 집합의 적분을 더 작은 집합의 적분으로 분해하는 "분할과 정복" 전략에 의존합니다. 더 높은 차원에서, 여기서 이들 방법이 계산 노력 측면에서 엄청나게 비싸게 되므로, 몬테카를로 또는 준-몬테카를로 방법 (몬테카를로 적분 참조[21])을 사용하거나, 약간 큰 차원에서는 희소 그리드(Sparse grid) 방법을 사용할 수 있습니다.

Differential equations

수치적 해석은 역시 보통의 미분 방정식과 부분 미분 방정식 모두의 미분 방정식의 해를 대략적으로 계산하는 것과 관련이 있습니다.[22]

부분 미분 방정식은 먼저 방정식을 이산화하여, 그것을 유한-차원 부분공간으로 가져옴으로써 해결됩니다.[23] 이것은 유한 원소 방법(finite element method),[24][25][26] 유한 차이( finite difference) 방법,[27] 또는 (특히 엔지니어링에서) 유한 부피 방법(finite volume method)으로 수행될 수 있습니다.[28] 이들 방법의 이론적 정당화는 종종 함수형 해석(functional analysis)에서 정리를 포함합니다. 이것은 문제를 대수적 방정식의 해로 줄입니다.

Software

20세기 후반부터, 대부분의 알고리듬은 다양한 프로그래밍 언어로 구현되었습니다. Netlib 저장소는 대부분 FortranC에서 수치적 문제에 대한 다양한 소프트웨어 루틴의 모음을 포함하고 있습니다. 다양한 수치 알고리듬을 구현하는 상용 제품은 IMSLNAG 라이브러리를 포함합니다; 자유-소프트웨어 대안은 GNU Scientific Library입니다.

수년에 걸쳐 Royal Statistical SocietyApplied Statistics에 수많은 알고리듬을 발표했습니다 (이들 "AS" 함수에 대한 코드는 여기에 있습니다). ACM도 유사하게, Transactions on Mathematical Software에 있습니다 ("TOMS" 코드가 여기에 있습니다). Naval Surface Warfare CenterLibrary of Mathematics Subroutines (코드 여기)를 여러 번 게시했습니다.

FreeMat, Scilab,[29][30] GNU Octave (Matlab과 유사함), 및 IT++ (C++ 라이브러리)와 같은 자유와 오픈-소스 대안뿐만 아니라 MATLAB,[31][32][33] TK Solver, S-PLUS, 및 IDL[34]과 같은 널리 사용되는 여러 수치적 계산 응용 프로그램이 있습니다. NumPy, SciPy[35][36][37]SymPy와 같은 라이브러리가 있는 R[38] (S-PLUS와 유사함), Julia,[39]Python과 같은 프로그래밍 언어도 있습니다. 성능은 매우 다양합니다: 벡터 및 행렬 연산은 보통 빠르지만 스칼라 루프는 속도가 한 자릿수 이상 다를 수 있습니다.[40][41]

Mathematica와 같은 많은 컴퓨터 대수 시스템은 보다 정확한 결과를 제공할 수 있는 임의적인-정밀도 산술의 사용가능성으로부터 이점을 얻습니다.[42][43][44][45]

역시, 임의의 스프레드시트 소프트웨어를 사용하여 수치적 해석과 관련된 간단한 문제를 해결할 수 있습니다. 예를 들어, Excel에는 내장된 "solver"와 함께 사용할 수 있는 행렬을 포함하여 수백 가지의 사용 가능한 함수가 있습니다.

See also

Notes

  1. ^ This is a fixed point iteration for the equation , whose solutions include . The iterates always move to the right since . Hence converges and diverges.

References

Citations

  1. ^ "Photograph, illustration, and description of the root(2) tablet from the Yale Babylonian Collection". Archived from the original on 13 August 2012. Retrieved 2 October 2006.
  2. ^ Demmel, J.W. (1997). Applied numerical linear algebra. SIAM. doi:10.1137/1.9781611971446. ISBN 978-1-61197-144-6.
  3. ^ Ciarlet, P.G.; Miara, B.; Thomas, J.M. (1989). Introduction to numerical linear algebra and optimization. Cambridge University Press. ISBN 9780521327886. OCLC 877155729.
  4. ^ Trefethen, Lloyd; Bau III, David (1997). [[[:Template:GBurl]] Numerical Linear Algebra]. SIAM. ISBN 978-0-89871-361-9. {{cite book}}: Check |url= value (help)
  5. ^ a b c Brezinski, C.; Wuytack, L. (2012). [[[:Template:GBurl]] Numerical analysis: Historical developments in the 20th century]. Elsevier. ISBN 978-0-444-59858-5. {{cite book}}: Check |url= value (help)
  6. ^ a b Watson, G.A. (2010). "The history and development of numerical analysis in Scotland: a personal perspective" (PDF). The Birth of Numerical Analysis. World Scientific. pp. 161–177. ISBN 9789814469456.
  7. ^ Bultheel, Adhemar; Cools, Ronald, eds. (2010). [[[:Template:GBurl]] The Birth of Numerical Analysis]. Vol. 10. World Scientific. ISBN 978-981-283-625-0. {{cite book}}: Check |url= value (help)
  8. ^ Brezinski & Wuytack 2001, p. 2
  9. ^ Saad, Y. (2003). [[[:Template:GBurl]] Iterative methods for sparse linear systems]. SIAM. ISBN 978-0-89871-534-7. {{cite book}}: Check |url= value (help)
  10. ^ Hageman, L.A.; Young, D.M. (2012). [[[:Template:GBurl]] Applied iterative methods] (2nd ed.). Courier Corporation. ISBN 978-0-8284-0312-2. {{cite book}}: Check |url= value (help)
  11. ^ Traub, J.F. (1982). [[[:Template:GBurl]] Iterative methods for the solution of equations] (2nd ed.). American Mathematical Society. ISBN 978-0-8284-0312-2. {{cite book}}: Check |url= value (help)
  12. ^ Greenbaum, A. (1997). [[[:Template:GBurl]] Iterative methods for solving linear systems]. SIAM. ISBN 978-0-89871-396-1. {{cite book}}: Check |url= value (help)
  13. ^ a b c Higham 2002
  14. ^ Brezinski, C.; Zaglia, M.R. (2013). [[[:Template:GBurl]] Extrapolation methods: theory and practice]. Elsevier. ISBN 978-0-08-050622-7. {{cite book}}: Check |url= value (help)
  15. ^ Hestenes, Magnus R.; Stiefel, Eduard (December 1952). "Methods of Conjugate Gradients for Solving Linear Systems" (PDF). Journal of Research of the National Bureau of Standards. 49 (6): 409–. doi:10.6028/jres.049.044.
  16. ^ Ezquerro Fernández, J.A.; Hernández Verón, M.Á. (2017). [[[:Template:GBurl]] Newton's method: An updated approach of Kantorovich's theory]. Birkhäuser. ISBN 978-3-319-55976-6. {{cite book}}: Check |url= value (help)
  17. ^ Deuflhard, Peter (2006). [[[:Template:GBurl]] Newton Methods for Nonlinear Problems. Affine Invariance and Adaptive Algorithms]. Computational Mathematics. Vol. 35 (2nd ed.). Springer. ISBN 978-3-540-21099-3. {{cite book}}: Check |url= value (help)
  18. ^ Ogden, C.J.; Huff, T. (1997). "The Singular Value Decomposition and Its Applications in Image Compression" (PDF). Math 45. College of the Redwoods. Archived from the original (PDF) on 25 September 2006.
  19. ^ Davis, P.J.; Rabinowitz, P. (2007). [[[:Template:GBurl]] Methods of numerical integration]. Courier Corporation. ISBN 978-0-486-45339-2. {{cite book}}: Check |url= value (help)
  20. ^ Weisstein, Eric W. "Gaussian Quadrature". MathWorld.
  21. ^ Geweke, John (1996). "15. Monte carlo simulation and numerical integration". Handbook of Computational Economics. Vol. 1. Elsevier. pp. 731–800. doi:10.1016/S1574-0021(96)01017-9. ISBN 9780444898579.
  22. ^ Iserles, A. (2009). [[[:Template:GBurl]] A first course in the numerical analysis of differential equations] (2nd ed.). Cambridge University Press. ISBN 978-0-521-73490-5. {{cite book}}: Check |url= value (help)
  23. ^ Ames, W.F. (2014). [[[:Template:GBurl]] Numerical methods for partial differential equations] (3rd ed.). Academic Press. ISBN 978-0-08-057130-0. {{cite book}}: Check |url= value (help)
  24. ^ Johnson, C. (2012). [[[:Template:GBurl]] Numerical solution of partial differential equations by the finite element method]. Courier Corporation. ISBN 978-0-486-46900-3. {{cite book}}: Check |url= value (help)
  25. ^ Brenner, S.; Scott, R. (2013). [[[:Template:GBurl]] The mathematical theory of finite element methods] (2nd ed.). Springer. ISBN 978-1-4757-3658-8. {{cite book}}: Check |url= value (help)
  26. ^ Strang, G.; Fix, G.J. (2018) [1973]. An analysis of the finite element method (2nd ed.). Wellesley-Cambridge Press. ISBN 9780980232783. OCLC 1145780513.
  27. ^ Strikwerda, J.C. (2004). [[[:Template:GBurl]] Finite difference schemes and partial differential equations] (2nd ed.). SIAM. ISBN 978-0-89871-793-8. {{cite book}}: Check |url= value (help)
  28. ^ LeVeque, Randall (2002). [[[:Template:GBurl]] Finite Volume Methods for Hyperbolic Problems]. Cambridge University Press. ISBN 978-1-139-43418-8. {{cite book}}: Check |url= value (help)
  29. ^ Bunks, C.; Chancelier, J.P.; Delebecque, F.; Goursat, M.; Nikoukhah, R.; Steer, S. (2012). Engineering and scientific computing with Scilab. Springer. ISBN 978-1-4612-7204-5.
  30. ^ Thanki, R.M.; Kothari, A.M. (2019). [[[:Template:GBurl]] Digital image processing using SCILAB]. Springer. ISBN 978-3-319-89533-8. {{cite book}}: Check |url= value (help)
  31. ^ Quarteroni, A.; Saleri, F.; Gervasio, P. (2014). [[[:Template:GBurl]] Scientific computing with MATLAB and Octave] (4th ed.). Springer. ISBN 978-3-642-45367-0. {{cite book}}: Check |url= value (help)
  32. ^ Gander, W.; Hrebicek, J., eds. (2011). [[[:Template:GBurl]] Solving problems in scientific computing using Maple and Matlab®]. Springer. ISBN 978-3-642-18873-2. {{cite book}}: Check |url= value (help)
  33. ^ Barnes, B.; Fulford, G.R. (2011). Mathematical modelling with case studies: a differential equations approach using Maple and MATLAB (2nd ed.). CRC Press. ISBN 978-1-4200-8350-7. OCLC 1058138488.
  34. ^ Gumley, L.E. (2001). [[[:Template:GBurl]] Practical IDL programming]. Elsevier. ISBN 978-0-08-051444-4. {{cite book}}: Check |url= value (help)
  35. ^ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python.
  36. ^ Bressert, E. (2012). SciPy and NumPy: an overview for developers. O'Reilly. ISBN 9781306810395.
  37. ^ Blanco-Silva, F.J. (2013). Learning SciPy for numerical and scientific computing. Packt. ISBN 9781782161639.
  38. ^ Ihaka, R.; Gentleman, R. (1996). "R: a language for data analysis and graphics" (PDF). Journal of Computational and Graphical Statistics. 5 (3): 299–314. doi:10.1080/10618600.1996.10474713.
  39. ^ Bezanson, Jeff; Edelman, Alan; Karpinski, Stefan; Shah, Viral B. (2017-01-01). "Julia: A Fresh Approach to Numerical Computing". SIAM Review. 59 (1): 65–98. doi:10.1137/141000671. hdl:1721.1/110125. ISSN 0036-1445. S2CID 13026838.
  40. ^ Speed comparison of various number crunching packages Archived 5 October 2006 at the Wayback Machine
  41. ^ Comparison of mathematical programs for data analysis Archived 18 May 2016 at the Portuguese Web Archive Stefan Steinhaus, ScientificWeb.com
  42. ^ Maeder, R.E. (1997). Programming in mathematica (3rd ed.). Addison-Wesley. ISBN 9780201854497. OCLC 1311056676.
  43. ^ Wolfram, Stephen (1999). [[[:Template:GBurl]] The MATHEMATICA® book, version 4]. Cambridge University Press. ISBN 9781579550042. {{cite book}}: Check |url= value (help)
  44. ^ Shaw, W.T.; Tigg, J. (1993). Applied Mathematica: getting started, getting it done (PDF). Addison-Wesley. ISBN 978-0-201-54217-2. OCLC 28149048.
  45. ^ Marasco, A.; Romano, A. (2001). [[[:Template:GBurl]] Scientific Computing with Mathematica: Mathematical Problems for Ordinary Differential Equations]. Springer. ISBN 978-0-8176-4205-1. {{cite book}}: Check |url= value (help)

Sources

External links

Journals

Online texts

Online course material