구간 산술
Interval arithmetic구간 산술(구간 수학, 구간 분석 또는 구간 계산이라고도 함)은 수학 계산에서 반올림 오류 및 측정 오류에 대한 경계를 설정하는 데 사용되는 수학 기술입니다.구간 연산을 사용하는 수치 방법은 신뢰할 수 있고 수학적으로 정확한 결과를 보장할 수 있습니다.인터벌 산술은 값을 하나의 숫자로 나타내지 않고 각 값을 가능한 범위로 나타냅니다.예를 들어, 어떤 사람의 키가 약 2미터라고 말하는 대신, 구간 계산을 통해 그 사람의 키가 1.97미터에서 2.03미터 사이라고 말할 수 있다.
수학적으로, 불확실한 실제 값 x {\ x를 사용하는 x {\x}가 가질수 있는 값의 범위를 정의하는 [ { [으로 작업합니다.즉, x(\ x의 값은 a a와 b b 의 닫힌 간격에 있습니다. x에 적용하면 함수f f는 한 값을 합니다 , d : x [ , b]\[ a , 에 대해 f ) { f ( ) }의 한 모든 값을 포함합니다.
구간 산술은 다양한 목적에 적합하다. 특히 계산 시 반올림 오류를 추적하고 물리적 및 기술적 매개변수의 정확한 값에 대한 지식의 불확실성을 추적하는 데 사용되는 소프트웨어가 가장 일반적으로 사용된다.후자는 구성요소에 대한 측정 오류 및 허용 오차 또는 계산 정확도 한계로 인해 자주 발생합니다.또한 구간 산술은 방정식(미분 방정식 등) 및 최적화 문제에 대한 보장된 솔루션을 찾는 데 도움이 됩니다.
서론
구간 산술의 주요 목적은 하나 이상의 변수에서 함수 범위의 상한과 하한을 계산하는 간단한 방법입니다.이러한 값의 정확한 계산이 어렵거나 불가능할 수 있기 때문에 이러한 끝점은 반드시 진정한 최고치 또는 최소치가 될 필요는 없습니다. 경계는 함수의 범위를 부분 집합으로 포함하기만 하면 됩니다.
이 처리는 일반적으로 실제 간격으로 제한됩니다. 따라서 형태 내 수량은
서 a -∞({ a={-\ b ∞({ b}})을 사용할 수 있습니다.a b의 어느쪽인가를 무한으로 하면 간격은 무제한이 됩니다.둘 다 무한인 경우 간격은 확장된 실수의 행이 됩니다.은 간격[ r], {{displaystyle {r,r}의 간격과 실수 조합이 자유롭다.
기존의 실수 계산과 마찬가지로, 기초 구간의 간단한 산술 연산과 함수를 먼저 [1]정의해야 합니다.이러한 기본 [1]요소로부터 더 복잡한 함수를 계산할 수 있습니다.
예
예를 들어, 체질량지수(BMI)의 계산과 사람이 과체중인지 여부를 평가해 보십시오.체질량지수는 몸무게를 킬로그램 단위로 나눈 값이다.계량기의 분해능은 1kg일 수 있습니다.중간값은 식별할 수 없으며 실제 가중치는 가장 가까운 정수로 반올림됩니다.예를 들어, 79.6kg과 80.3kg은 가장 가까운 킬로그램의 정확도에 대해서만 의미 있는(올바른) 값을 제공하기 때문에 구분할 수 없다.이 기계가 80kg을 판독했을 때 사람의 몸무게가 정확히 80.0kg일 가능성은 낮다.가장 가까운 값으로 반올림할 때, 계량기의 무게가 80kg이면 79.5kg에서 80.5kg 사이임을 나타냅니다.이는 간격[5 5 ,에 해당합니다.
몸무게 80kg, 키 1.80m의 남성의 BMI는 약 24.7이다.무게가 79.5kg이고 높이가 같으면 약 24.537, 80.5kg이면 약 24.846이다.함수가 단조롭게 증가하므로 실제 .846 범위 내에 있다고 결론지었습니다.전체 범위는 정상 체중과 과체중 사이의 컷오프인 25 미만이기 때문에 남자는 정상 체중에 속한다고 결론지었습니다.문제 1
이 경우 오차는 결론(정규 가중치)에 영향을 주지 않지만 항상 그런 것은 아닙니다.남성이 약간 더 무거웠다면 BMI의 범위는 컷오프 값 25를 포함할 수 있다.그 경우, 저울의 정밀도는 결정적인 결론을 내리기에는 불충분했다.
또한 BMI 예의 범위는 [ 로보고될 수 있습니다.이는 계산된 간격의 슈퍼셋이기 때문입니다.그러나 현재 간격에 사용 가능한 BMI 값이 포함되어 있지 않기 때문에 범위는 [. {.8으로보고할 수 없습니다.
구간 산술은 가능한 결과의 범위를 명시적으로 나타냅니다.결과는 더 이상 숫자로 표현되지 않고 부정확한 값을 나타내는 구간으로 표현됩니다.구간의 크기는 불확실성의 정도를 표현하는 데 있어 오류 막대와 유사하다.
다중 간격
키와 체중은 모두 BMI의 값에 영향을 미칩니다.체중은 이미 불확실한 측정으로 취급하고 있습니다만, 키도 불확실한 경우가 있습니다.미터 단위의 높이 측정은 일반적으로 가장 가까운 센티미터로 반올림됩니다. 1.79미터는 실제로 [ 간격의 높이를 의미합니다. 이제 가능한 키/무게 값의 네 가지 조합을 모두 고려해야 합니다.다음에 설명하는 인터벌 방식을 사용하면 BMI는 인터벌 내에 있습니다.
이 경우, 남성은 정상 체중을 가지고 있거나 과체중일 수 있다. 체중과 키 측정은 명확한 결론을 내리기에는 불충분했다.이는 오류를 올바르게 추적하고 전파하는 간격 산술의 기능을 보여줍니다.
구간 연산자
덧셈 또는 곱셈 등 2개의 간격에서의 2진수 연산δ(\는 다음과 같이 정의됩니다.
즉, x 와의한 의 입니다서 x와 y는 대응하는 간격에 있습니다.4개의 기본적인 연산(분모가인 경우의 나눗셈 제외의 경우와 같이 간격의 각 오퍼랜드에서\단조인 경우, 오퍼랜드 간격의 끝점에서 극단값이 발생합니다.모든 조합을 적는 것, 이것을 표현하는 한 가지 방법은
x { x \ 가 모든 x [ 1, x x \ [ { 1, { y[ , y 2 ]{ y \ [ y _ { 1 , y { 2}} 에 대해 정의되어 있는 .
실용적인 어플리케이션에서는, 이것을 한층 더 심플화할 수 있습니다.
마지막 케이스에서는 (/ 1, / 2){의 제외에 관한 유용한 정보가 손실됩니다.따라서 [- , y ]{ \left [ - \ , { \ {1} { { } \ } [ 2,] {1} {}} \\ right \ [ [ [ [ [ [ [ [ intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals intervals보다 일반적으로 불연속 함수로 작업할 때는[ , i _}, 형식의 이른바 멀티 인터벌을 사용하여 계산을 수행하는 것이 유용할 수 있습니다.} 대응하는 다중 간격 산술은 일련의 (통상적으로 분리된) 간격을 유지하고 겹치는 간격을 통합한다[2]
간격 곱셈에는 대개 두 곱셈만 필요합니다. 1 1이 음이 아닌 ,
곱셈은 모서리가 다양한 직사각형의 영역으로 해석할 수 있습니다.결과 간격은 가장 작은 영역부터 가장 큰 영역까지 모든 영역을 포함합니다.
이러한 정의를 사용하면 f( ) +. { f, x)=x+b } 등의 함수 범위를 계산할 수 있습니다. 예를 a [ ,, 7,
표기법
공식에서 구간의 표기법을 작게 하기 위해 대괄호를 사용할 수 있습니다.
[ ] [ , x [ ]\ [ _ { , _ {2]} 를 사용하여 간격을 나타낼 수 있습니다 콤팩트한 표기법에서는[x[x]{ [1과(와) 일반 간격 사이에 혼동하지 마십시오.모든 간격의 집합에 대해 다음과 같이 사용할 수 있습니다.
줄임말로서.{ \left1},\}\ 간격의 벡터에는 을사용할 수 있습니다 x {\
기본 함수
4개의 기본 연산자를 초과하는 간격 함수를 정의할 수도 있습니다.
한 변수의 단조 함수의 경우 값의 범위를 계산하기가 쉽습니다.f: {\ f \ 이([, \ 에서 단조롭게 증가(응답 감소)하는 , 모든 , 、 { { } } ( 1)< ( )< f ( y _ 2) ( resp . ( ) < ( )\ f ( y {2 < f ( { 1} )
간격 [ y 2 [ 1 , 2 에 대응하는 범위는 함수를 엔드포인트에 적용하여 계산할 수 있습니다.
이를 통해 인터벌 함수의 다음과 같은 기본 기능을 쉽게 정의할 수 있습니다.
- 지수함수: > ,{\a 1, {\ } = [}, a^{x_2}} ]
- : [ [ a, ][로그 [\ \{ _}{1},\ _2를 양수 [ 로 합니다
- 홀수 거듭제곱 [ , ]n [ n , 2 n]{ [ _ { ,_ { 2 }^{ } = [ _ { , x _ { }^{ n]、 .\ n \ \ { } } 。
짝수 검정력에서는 고려되는 값의 범위가 중요하므로 곱셈을 수행하기 전에 처리해야 합니다.예를 들어 x [- , 1의 n \ x은 n 2, 4, ,\때 [, [ ])을 합니다2, 4, 6, \ ldots。 [ -form[ -, 1 ][[ -, 1 [ -, 1]{ - 1 , ]\ \ cdots \[ -, { style - , 1 , 1 { display style [ 1 , 1 }의 를 넓힙니다.
보다 일반적으로는 단편적인 단조 함수의 경우 간격의 1 })과 간격 내의 소위 임계점을 고려하는 것으로 충분하다고 할 수 있다. 및 코사인 함수의 경우 임계점은 각각 (2 + ) \ {1 또는 n입니다.따라서 간격에 최소 2개의 극단값이 포함되어 있는 경우 간격은[-, 1 style [ -, ]이 되므로 간격 내에 고려해야 할 포인트는 최대 5개뿐입니다.사인 및 코사인에서는 임계점이 -1, 0 및 1로 쉽게 사전 계산되기 때문에 엔드포인트만 전체 평가가 필요합니다.
일반 함수의 간격 확장
일반적으로 많은 함수의 출력 간격에 대한 간단한 설명을 찾기가 쉽지 않을 수 있습니다.그러나 함수를 구간 산술로 확장하는 것은 여전히 가능할 수 있습니다.f: {\ f^{ \이(가) 실수 벡터에서 실수까지의 함수인 [ :[ ] n [R] {]^{[\는 다음과 같은 경우 f f의 확장이라고 불립니다.
이 인터벌 확장의 정의는 정확한 결과를 제공하지 않습니다.예를 들어 [ ( [ , 2 [ , 2 style [입니다.2 및 ([ [ -],},2})},{\}}}은(는) 지수 함수의 허용 확장입니다.보다 엄격한 확장이 바람직하지만 계산과 부정확성의 상대적 비용을 고려해야 한다. 이 경우 가장 엄격한 결과를 얻을 수 있으므로 [ \를선택해야 한다.
실제 표현식이 주어질 경우, 그 자연 구간 연장은 각 하위 표현식, 함수 및 연산자의 구간 연장을 사용하여 달성됩니다.
Taylor 간격 확장(k의 \ k은 k+ k+1 미분 가능 f f로 다음과 같이 정의됩니다.
y [ \[ \ x} 。서 f ( { } ( \ f )는 y{y에서의 테일러 잔부의 rval 확장
{\({ \xi는x [ x \x \{ \\ \xi \displaystyle}, \은x에의해 보호됩니다는 간격의 중간점이 되며 자연 간격 확장을 사용하여 나머지를 평가합니다.
k = 0(\ k의 테일러 간격 확장의 특수한 경우를 평균값 형식이라고도 합니다.
복소 구간 연산
간격은 [clarification needed]중심에서 주어진 거리에 있는 점의 궤적으로 정의할 수도 있으며, 이 정의는 실수에서 [3]복소수로 확장될 수 있다.실제 숫자를 사용한 컴퓨팅의 경우와 마찬가지로 복잡한 숫자를 사용한 컴퓨팅은 불확실한 데이터를 수반합니다.따라서 구간번호가 실제 닫힌 구간이고 복소수가 순서 있는 실수 쌍이라는 사실을 고려할 때 [4]구간연산의 적용을 실수 계산의 불확실성 측정으로 제한할 이유가 없다.따라서 구간 산술은 복소수 구간 번호를 통해 연장되어 복소수 [4]계산의 불확실성 영역을 결정할 수 있다.
실수 구간 번호(실제 닫힌 구간)에 대한 기본 대수 연산은 복소수까지 확장할 수 있습니다.따라서 복소구간 산술이 일반 복소구간 [4]산술과 비슷하지만 동일하지는 않다는 것은 놀라운 일이 아니다.실구간 산술의 경우와 마찬가지로 복소구간수의 덧셈과 곱셈 사이에는 특별한 경우를 제외하고는 분포가 없으며, 복소구간수의 [4]경우 반드시 역원소가 존재하는 것은 아님을 알 수 있다.복소구간 산술에서는 일반 복소구간 산술의 다른 두 가지 유용한 특성이 유지되지 않는다: 일반 복소구간 공역의 가법적 특성과 곱셈적 특성은 복소구간 [4]공역에는 적용되지 않는다.
구간 산술은 사분위수나 팔분위수 같은 다른 다차원 수 체계로 유사한 방식으로 확장될 수 있지만, 우리는 일반적인 [4]산술의 다른 유용한 속성을 희생해야 한다.
인터벌 방식
일반적으로 수치 사이의 의존성은 고려되지 않기 때문에 고전적인 수치 분석 방법은 구간 값 알고리즘으로 일대일로 전환할 수 없다.
반올림 구간 산술
실제 구현에서 효과적으로 작동하려면 간격이 부동 소수점 컴퓨팅과 호환되어야 합니다.이전의 연산은 정확한 산술에 기초했지만 일반적으로 빠른 수치 해결 방법을 사용할 수 없을 수 있습니다. ( , ) + [. , . x \ [. , 0 . 8} y [ 0. , 0. y \ [, 의 의 범위는다음과 같습니다.n 결과는 보통[. 9입니다그러나 [2 ][ 0[ 0. \supseteq [16,0.88]이므로 산술 간격의 기본 원칙과 모순됩니다. [ 이 손실됩니다.대신 바깥쪽 둥근 솔루션 1 {.9를 사용합니다.
바이너리 부동소수점 연산을 위한 표준 IEEE 754도 반올림 실행 절차를 규정한다.IEEE 754 준거 시스템에서는 프로그래머가 가장 가까운 부동소수점 번호로 반올림할 수 있습니다.대안은 0으로 반올림(트렁크), 양의 무한대로 반올림(업) 또는 음의 무한대로 반올림(다운)입니다.
따라서 간격 산술에 필요한 외부 반올림은 상한(위) 및 하한(아래) 계산 시 프로세서의 반올림 설정을 변경하여 달성할 수 있습니다.또는 적절한 작은 간격 1 , 2[\ __{을(를) 추가할 수 있습니다.
의존성 문제
이른바 의존성 문제는 구간 산술 적용에 큰 장애물이다.인터벌 방법은 기본적인 산술 연산과 함수의 범위를 매우 정확하게 결정할 수 있지만, 더 복잡한 함수의 경우에는 항상 해당되지 않습니다.매개 변수를 사용하여 계산에서 간격이 여러 번 발생하고 각 발생이 독립적으로 수행되면 결과적으로 간격이 원치 않게 확장될 수 있습니다.
그림으로 f 2 + .{ f(x) = x+ x 로 된 f {\ f 를 사용합니다. - , { [ - , 1] } 간격의 이 의 값은 [- , 입니다 \left [ - { \ { 1} { } , \ } 자연 간격 연장으로서 다음과 같이 계산됩니다
이 값은 약간 더 큽니다. h( , y ) + ( \ h ( , y ) } } x , [[ -, 1. { \ x , \ - 1 , 1 .} (= 2+ x {\displaystyle^{2}를 2차에서 덧셈 및 제곱으로 쓰면 변수 x(\displaystyle x)가 한 번만 나타나는 f(\f(x)가더 잘 됩니다
따라서 적절한 간격 계산은 다음과 같습니다.
올바른 값을 제공합니다.
일반적으로 각 변수가 한 번만 나타나고 f{\ f가 박스 내에서 연속적으로 경우 정확한 값의 범위를 얻을 수 있음을 알 수 있습니다.그러나 모든 기능을 이렇게 다시 작성할 수 있는 것은 아닙니다.
값의 범위를 과대평가하는 문제의 의존성은 광범위한 범위까지 확대되기 때문에 더 의미 있는 결론을 내릴 수 없습니다.
범위의 추가 증가는 구간 벡터의 형식을 취하지 않는 영역의 솔루션에서 비롯됩니다.선형 시스템의 솔루션 세트
-1,-){(-과 ). {사이의 정확한 선입니다} 간격 방법을 사용하면 단위 제곱 -, 1× [- , . { - 1 1 ]\times - 1, ]가 됩니다} 이것을 래핑 효과라고 합니다
선형 간격 시스템
선형 간격 시스템은 행렬 간격 확장[ [ ] {\[\ [\mathbbb {R} m과(와) 벡터 [] [ R] n \mathbf {b {b}\times mathb}\in [\]^{로 구성됩니다. n는 최소입니다.[\ 모든 xR \mathbf 가 경우{ 만족합니다
- \ \{ } \ \ { x } = \{ b 。
2차 시스템의 경우, 즉, n {\m}의 경우, 단순히 구간 가우스 방법으로 구할 수 있는 모든 가능한 해를 포함하는 구간벡터 [가 있을 수 있다.이는 가우스 제거로 알려진 선형 대수법이 간격 버전이 된다는 점에서 수치 연산을 대체합니다. 이 방법에서는 [ \displaystyle [\{A} [b {[\{} } 구간의엔티티를 계산에 반복적으로 사용하므로 일부 문제에 대해 좋지 않은 결과를 얻을 수 있습니다.따라서 구간 값 Gauss의 결과를 사용하면 솔루션 세트 전체를 포함하지만 솔루션 세트 외부에 넓은 면적이 있기 때문에 첫 번째 대략적인 추정치만 얻을 수 있습니다.
대략적인 해법 [ {[\은는) 가우스-세이델 방법의 구간 버전으로 개선할 수 있습니다. 이유는 선형 방정식의 구간 연장의i번째
1/[ { 1/ [ a{ } } is allowed x i i if i i i i x }로 판별할 수 있습니다.따라서 동시에
- j [ x { x _ { } \ [ _ { } j j [ a ][ [ [ []{ { i{ { { i }-\ \ { k = {
So we can now replace by
- ,
and so the vector by each element. Since the procedure is more efficient for a diagonally dominant matrix, instead of the system one can often try multiplying it by an appropriate rational matrix with the resulting matrix equation
left to solve. If one chooses, for example, for the central matrix , then is outer extension of the identity matrix.
These methods only work well if the widths of the intervals occurring are sufficiently small. For wider intervals it can be useful to use an interval-linear system on finite (albeit large) real number equivalent linear systems. If all the matrices are invertible, it is sufficient to consider all possible combinations (upper and lower) of the endpoints occurring in the intervals. The resulting problems can be resolved using conventional numerical methods. Interval arithmetic is still used to determine rounding errors.
This is only suitable for systems of smaller dimension, since with a fully occupied matrix, real matrices need to be inverted, with vectors for the right hand side. This approach was developed by Jiri Rohn and is still being developed.[5]
Interval Newton method
An interval variant of Newton's method for finding the zeros in an interval vector can be derived from the average value extension.[6] For an unknown vector applied to , gives
- .
For a zero , that is , and thus must satisfy
- .
This is equivalent to . An outer estimate of can be determined using linear methods.
In each step of the interval Newton method, an approximate starting value is replaced by and so the result can be improved iteratively. In contrast to traditional methods, the interval method approaches the result by containing the zeros. This guarantees that the result produces all zeros in the initial range. Conversely, it proves that no zeros of were in the initial range if a Newton step produces the empty set.
The method converges on all zeros in the starting region. Division by zero can lead to separation of distinct zeros, though the separation may not be complete; it can be complemented by the bisection method.
As an example, consider the function , the starting range , and the point . We then have and the first Newton step gives
- .
More Newton steps are used separately on and . These converge to arbitrarily small intervals around and .
The Interval Newton method can also be used with thick functions such as , which would in any case have interval results. The result then produces intervals containing .
Bisection and covers
The various interval methods deliver conservative results as dependencies between the sizes of different intervals extensions are not taken into account. However the dependency problem becomes less significant for narrower intervals.
Covering an interval vector by smaller boxes so that
is then valid for the range of values
So for the interval extensions described above the following holds:
Since is often a genuine superset of the right-hand side, this usually leads to an improved estimate.
Such a cover can be generated by the bisection method such as thick elements of the interval vector by splitting in the centre into the two intervals and If the result is still not suitable then further gradual subdivision is possible. A cover of intervals results from divisions of vector elements, substantially increasing the computation costs.
With very wide intervals, it can be helpful to split all intervals into several subintervals with a constant (and smaller) width, a method known as mincing. This then avoids the calculations for intermediate bisection steps. Both methods are only suitable for problems of low dimension.
Application
Interval arithmetic can be used in various areas (such as set inversion, motion planning, set estimation or stability analysis) to treat estimates with no exact numerical value.[7]
Rounding error analysis
Interval arithmetic is used with error analysis, to control rounding errors arising from each calculation. The advantage of interval arithmetic is that after each operation there is an interval that reliably includes the true result. The distance between the interval boundaries gives the current calculation of rounding errors directly:
- Error = for a given interval .
Interval analysis adds to rather than substituting for traditional methods for error reduction, such as pivoting.
Tolerance analysis
Parameters for which no exact figures can be allocated often arise during the simulation of technical and physical processes. The production process of technical components allows certain tolerances, so some parameters fluctuate within intervals. In addition, many fundamental constants are not known precisely.[2]
If the behavior of such a system affected by tolerances satisfies, for example, , for and unknown then the set of possible solutions
- ,
can be found by interval methods. This provides an alternative to traditional propagation of error analysis. Unlike point methods, such as Monte Carlo simulation, interval arithmetic methodology ensures that no part of the solution area can be overlooked. However, the result is always a worst-case analysis for the distribution of error, as other probability-based distributions are not considered.
Fuzzy interval arithmetic
Interval arithmetic can also be used with affiliation functions for fuzzy quantities as they are used in fuzzy logic. Apart from the strict statements and , intermediate values are also possible, to which real numbers are assigned. corresponds to definite membership while is non-membership. A distribution function assigns uncertainty, which can be understood as a further interval.
For fuzzy arithmetic[8] only a finite number of discrete affiliation stages are considered. The form of such a distribution for an indistinct value can then represented by a sequence of intervals
The interval corresponds exactly to the fluctuation range for the stage
The appropriate distribution for a function concerning indistinct values and the corresponding sequences
can be approximated by the sequence
where
and can be calculated by interval methods. The value corresponds to the result of an interval calculation.
Computer-assisted proof
Warwick Tucker used interval arithmetic in order to solve the 14th of Smale's problems, that is, to show that the Lorenz attractor is a strange attractor.[9] Thomas Hales used interval arithmetic in order to solve the Kepler conjecture.
History
Interval arithmetic is not a completely new phenomenon in mathematics; it has appeared several times under different names in the course of history. For example, Archimedes calculated lower and upper bounds 223/71 < π < 22/7 in the 3rd century BC. Actual calculation with intervals has neither been as popular as other numerical techniques nor been completely forgotten.
Rules for calculating with intervals and other subsets of the real numbers were published in a 1931 work by Rosalind Cicely Young.[10] Arithmetic work on range numbers to improve the reliability of digital systems were then published in a 1951 textbook on linear algebra by Paul S. Dwyer ;[11] intervals were used to measure rounding errors associated with floating-point numbers. A comprehensive paper on interval algebra in numerical analysis was published by Teruo Sunaga (1958).[12]
The birth of modern interval arithmetic was marked by the appearance of the book Interval Analysis by Ramon E. Moore in 1966.[13][14] He had the idea in spring 1958, and a year later he published an article about computer interval arithmetic.[15] Its merit was that starting with a simple principle, it provided a general method for automated error analysis, not just errors resulting from rounding.
Independently in 1956, Mieczyslaw Warmus suggested formulae for calculations with intervals,[16] though Moore found the first non-trivial applications.
In the following twenty years, German groups of researchers carried out pioneering work around Ulrich W. Kulisch[1][17] and Götz Alefeld[18] at the University of Karlsruhe and later also at the Bergische University of Wuppertal. For example, Karl Nickel explored more effective implementations, while improved containment procedures for the solution set of systems of equations were due to Arnold Neumaier among others. In the 1960s, Eldon R. Hansen dealt with interval extensions for linear equations and then provided crucial contributions to global optimisation, including what is now known as Hansen's method, perhaps the most widely used interval algorithm.[6] Classical methods in this often have the problem of determining the largest (or smallest) global value, but could only find a local optimum and could not find better values; Helmut Ratschek and Jon George Rokne developed branch and bound methods, which until then had only applied to integer values, by using intervals to provide applications for continuous values.
In 1988, Rudolf Lohner developed Fortran-based software for reliable solutions for initial value problems using ordinary differential equations.[19]
The journal Reliable Computing (originally Interval Computations) has been published since the 1990s, dedicated to the reliability of computer-aided computations. As lead editor, R. Baker Kearfott, in addition to his work on global optimisation, has contributed significantly to the unification of notation and terminology used in interval arithmetic.[20]
In recent years work has concentrated in particular on the estimation of preimages of parameterised functions and to robust control theory by the COPRIN working group of INRIA in Sophia Antipolis in France.[21]
Implementations
There are many software packages that permit the development of numerical applications using interval arithmetic.[22] These are usually provided in the form of program libraries. There are also C++ and Fortran compilers that handle interval data types and suitable operations as a language extension, so interval arithmetic is supported directly.
Since 1967, Extensions for Scientific Computation (XSC) have been developed in the University of Karlsruhe for various programming languages, such as C++, Fortran and Pascal.[23] The first platform was a Zuse Z23, for which a new interval data type with appropriate elementary operators was made available. There followed in 1976, Pascal-SC, a Pascal variant on a Zilog Z80 that it made possible to create fast, complicated routines for automated result verification. Then came the Fortran 77-based ACRITH-XSC for the System/370 architecture (FORTRAN-SC), which was later delivered by IBM. Starting from 1991 one could produce code for C compilers with Pascal-XSC; a year later the C++ class library supported C-XSC on many different computer systems. In 1997, all XSC variants were made available under the GNU General Public License. At the beginning of 2000 C-XSC 2.0 was released under the leadership of the working group for scientific computation at the Bergische University of Wuppertal to correspond to the improved C++ standard.
Another C++-class library was created in 1993 at the Hamburg University of Technology called Profil/BIAS (Programmer's Runtime Optimized Fast Interval Library, Basic Interval Arithmetic), which made the usual interval operations more user friendly. It emphasized the efficient use of hardware, portability and independence of a particular presentation of intervals.
The Boost collection of C++ libraries contains a template class for intervals. Its authors are aiming to have interval arithmetic in the standard C++ language.[24]
The Frink programming language has an implementation of interval arithmetic that handles arbitrary-precision numbers. Programs written in Frink can use intervals without rewriting or recompilation.
Gaol[25] is another C++ interval arithmetic library that is unique in that it offers the relational interval operators used in interval constraint programming.
The Moore library[26] is an efficient implementation of interval arithmetic in C++. It provides intervals with endpoints of arbitrary precision and is based on the ``concepts´´ feature of C++.
The Julia programming language[27] has an implementation of interval arithmetics along with high-level features, such as root-finding (for both real and complex-valued functions) and interval constraint programming, via the ValidatedNumerics.jl package.[28]
In addition computer algebra systems, such as FriCAS, Mathematica, Maple, Maxima (software)[29] and MuPAD, can handle intervals. A Matlab extension Intlab[30] builds on BLAS routines, and the Toolbox b4m makes a Profil/BIAS interface.[30][31] Moreover, the Software Euler Math Toolbox includes an interval arithmetic.
A library for the functional language OCaml was written in assembly language and C.[32]
IEEE 1788 standard
A standard for interval arithmetic, IEEE Std 1788-2015, has been approved in June 2015.[33] Two reference implementations are freely available.[34] These have been developed by members of the standard's working group: The libieeep1788[35] library for C++, and the interval package[36] for GNU Octave.
A minimal subset of the standard, IEEE Std 1788.1-2017, has been approved in December 2017 and published in February 2018. It should be easier to implement and may speed production of implementations.[37]
Conferences and workshops
Several international conferences or workshop take place every year in the world. The main conference is probably SCAN (International Symposium on Scientific Computing, Computer Arithmetic, and Verified Numerical Computation), but there is also SWIM (Small Workshop on Interval Methods), PPAM (International Conference on Parallel Processing and Applied Mathematics), REC (International Workshop on Reliable Engineering Computing).
See also
- Affine arithmetic
- INTLAB (Interval Laboratory)
- Automatic differentiation
- Multigrid method
- Monte-Carlo simulation
- Interval finite element
- Fuzzy number
- Significant figures
- Karlsruhe Accurate Arithmetic (KAA)
- Unum
References
- ^ a b c Kulisch, Ulrich W. (1989). Wissenschaftliches Rechnen mit Ergebnisverifikation. Eine Einführung (in German). Wiesbaden: Vieweg-Verlag. ISBN 3-528-08943-1.
- ^ a b Dreyer, Alexander (2003). Interval Analysis of Analog Circuits with Component Tolerances. Aachen, Germany: Shaker Verlag. p. 15. ISBN 3-8322-4555-3.
- ^ Complex interval arithmetic and its applications, Miodrag S. Petković, Ljiljana D. Petković, Wiley-VCH, 1998, ISBN 978-3-527-40134-5
- ^ a b c d e f Hend Dawood (2011). Theories of Interval Arithmetic: Mathematical Foundations and Applications. Saarbrücken: LAP LAMBERT Academic Publishing. ISBN 978-3-8465-0154-2.
- ^ "Jiri Rohn, List of publications". Archived from the original on 2008-11-23. Retrieved 2008-05-26.
- ^ a b Walster, G. William; Hansen, Eldon Robert (2004). Global Optimization using Interval Analysis (2nd ed.). New York, USA: Marcel Dekker. ISBN 0-8247-4059-9.
- ^ Jaulin, Luc; Kieffer, Michel; Didrit, Olivier; Walter, Eric (2001). Applied Interval Analysis. Berlin: Springer. ISBN 1-85233-219-0.
- ^ Application of Fuzzy Arithmetic to Quantifying the Effects of Uncertain Model Parameters, Michael Hanss, University of Stuttgart
- ^ Tucker, Warwick (1999). The Lorenz attractor exists. Comptes Rendus de l'Académie des Sciences-Series I-Mathematics, 328(12), 1197-1202.
- ^ Young, Rosalind Cicely (1931). The algebra of many-valued quantities. Mathematische Annalen, 104(1), 260-290. (NB. A doctoral candidate at the University of Cambridge.)
- ^ Dwyer, Paul Sumner (1951). Linear computations. Oxford, England: Wiley. (University of Michigan)
- ^ Sunaga, Teruo (1958). "Theory of interval algebra and its application to numerical analysis". RAAG Memoirs (2): 29–46.
- ^ Moore, Ramon Edgar (1966). Interval Analysis. Englewood Cliff, New Jersey, USA: Prentice-Hall. ISBN 0-13-476853-1.
- ^ Cloud, Michael J.; Moore, Ramon Edgar; Kearfott, R. Baker (2009). Introduction to Interval Analysis. Philadelphia: Society for Industrial and Applied Mathematics (SIAM). ISBN 978-0-89871-669-6.
- ^ Hansen, Eldon Robert (2001-08-13). "Publications Related to Early Interval Work of R. E. Moore". University of Louisiana at Lafayette Press. Retrieved 2015-06-29.
- ^ Precursory papers on interval analysis by Mieczyslaw Warmus Archived 2008-04-18 at the Wayback Machine
- ^ Kulisch, Ulrich W. (1969). "Grundzüge der Intervallrechnung". In Laugwitz, Detlef (ed.). Jahrbuch Überblicke Mathematik (in German). Vol. 2. Mannheim, Germany: Bibliographisches Institut. pp. 51–98.
- ^ Alefeld, Götz; Herzberger, Jürgen. Einführung in die Intervallrechnung. Reihe Informatik (in German). Vol. 12. Mannheim, Wien, Zürich: B.I.-Wissenschaftsverlag. ISBN 3-411-01466-0.
- ^ Bounds for ordinary differential equations of Rudolf Lohner Archived 11 May 2018 at the Wayback Machine (in German)
- ^ Bibliography of R. Baker Kearfott, University of Louisiana at Lafayette
- ^ Introductory Film (mpeg) of the COPRIN teams of INRIA, Sophia Antipolis
- ^ Software for Interval Computations collected by Vladik Kreinovich], University of Texas at El Paso.
- ^ History of XSC-Languages Archived 2007-09-29 at the Wayback Machine
- ^ A Proposal to add Interval Arithmetic to the C++ Standard Library
- ^ Gaol is Not Just Another Interval Arithmetic Library
- ^ Moore: Interval Arithmetic in Modern C++
- ^ The Julia programming language
- ^ ValidatedNumerics.jl
- ^ [1] Interval Arithmetic for Maxima: A Brief Summary by Richard J. Fateman.]
- ^ a b Intlab INTerval LABoratory
- ^ b4m
- ^ Alliot, Jean-Marc; Gotteland, Jean-Baptiste; Vanaret, Charlie; Durand, Nicolas; Gianazza, David (2012). Implementing an interval computation library for OCaml on x86/amd64 architectures. 17th ACM SIGPLAN International Conference on Functional Programming.
- ^ IEEE Standard for Interval Arithmetic
- ^ Nathalie Revol (2015). The (near-)future IEEE 1788 standard for interval arithmetic, slides // SWIM 2015: 8th Small Workshop in Interval Methods. Prague, 9-11 June 2015
- ^ C++ implementation of the preliminary IEEE P1788 standard for interval arithmetic
- ^ GNU Octave interval package
- ^ "IEEE Std 1788.1-2017 - IEEE Standard for Interval Arithmetic (Simplified)". IEEE Standard. IEEE Standards Association. 2017. Retrieved 2018-02-06.
Further reading
- Hayes, Brian (November–December 2003). "A Lucid Interval" (PDF). American Scientist. Sigma Xi. 91 (6): 484–488. doi:10.1511/2003.6.484.
- Tucker, Warwick (2011). Validated numerics: a short introduction to rigorous computations. Princeton University Press.
- Wippermann, Hans-Wilm (1968) [1967-06-15, 1966]. "Definition von Schrankenzahlen in Triplex-ALGOL". Computing (in German). Karlsruhe, Germany: Springer. 3 (2): 99–109. doi:10.1007/BF02277452. ISSN 0010-485X. S2CID 36685400. (11 pages) (NB. About Triplex-ALGOL Karlsruhe, an ALGOL 60 (1963) implementation with support for triplex numbers.)
External links
- Interval arithmetic (Wolfram Mathworld)
- Validated Numerics for Pedestrians
- Interval Methods from Arnold Neumaier, University of Vienna
- SWIM (Summer Workshop on Interval Methods)
- International Conference on Parallel Processing and Applied Mathematics
- INTLAB, Institute for Reliable Computing, Hamburg University of Technology
- Ball arithmetic by Joris van der Hoeven
- kv - a C++ Library for Verified Numerical Computation
- Arb - a C library for arbitrary-precision ball arithmetic
- JuliaIntervals on GitHub