CenteredInterval[x,dx]
for real numbers x and dx gives a centered interval that contains the real interval
.
CenteredInterval[x+ y,dx+ dy]
gives a centered interval that contains the complex rectangle
.
for an approximate number c gives a centered interval that contains all values within the error bounds of c.
CenteredInterval
CenteredInterval[x,dx]
for real numbers x and dx gives a centered interval that contains the real interval
.
CenteredInterval[x+ y,dx+ dy]
gives a centered interval that contains the complex rectangle
.
for an approximate number c gives a centered interval that contains all values within the error bounds of c.
Details
- Centered intervals are also known as center-radius or mid-radius intervals.
- CenteredInterval is typically used to obtain verified bounds on errors accumulated through numeric computation. Given error bounds for all arguments of a function, centered interval computation provides a reliable bound for the error in the function value.
- CenteredInterval[…] gives a centered interval object Δ with the center
and the radius
, where
and
are Gaussian rational numbers with power of two denominators. If
and
are real, then Δ represents the real interval
; otherwise, Δ represents the complex rectangle
. - Arithmetic operations and many mathematical functions work with centered interval arguments. f[Δ1,…,Δn] yields a centered interval object Δ that contains f[a1,…,an] for any ai∈Δi.
- IntervalMemberQ can be used to decide interval membership or inclusion between intervals.
- Relational operators such as Equal and Less yield explicit True or False results whenever they are given disjoint intervals.
- In StandardForm and related formats, CenteredInterval objects are printed in elided form, with only approximate values of the center and the radius displayed.
- Normal converts CenteredInterval objects to arbitrary-precision numbers with accuracy corresponding to the radius.
- Information[CenteredInterval[…], prop] gives the property prop of the center-radius interval. The following properties can be specified:
-
"Center" the center of the interval "Radius" the radius of the interval "Bounds" bounds on the values in the interval - Linear algebra operations such as Det, Inverse, LinearSolve and Eigensystem can be used for matrices with CenteredInterval entries.
Examples
open all close allBasic Examples (3)
CenteredInterval[2, 10 ^ -10]Evaluate a function at the interval:
% Log[%] + Sin[% ^ 2 + 1]Convert the result to an arbitrary-precision number:
Normal[%]CenteredInterval[2 + 3I, 10 ^ -10 + 5 10 ^ -9 I]Evaluate a function at the interval:
E ^ Gamma[%]Extract the exact values of the center and the radius:
Information[%, {"Center", "Radius"}]Compute bounds on values of
on the rectangle
:
bds = Information[Exp[CenteredInterval[0, 1 + I]], "Bounds"]Approximate the set of values of
on the rectangle
:
reg = Region[Style[TransformedRegion[Rectangle[{-1, -1}, {1, 1}], Function[{a, b}, {E^a Cos[b], E^a Sin[b]}]], Red]];The computed region lies within the bounds:
Show[{Graphics[{Yellow, Rectangle@@(ReIm /@ bds)}], reg}]Scope (27)
Constructing Center-Radius Intervals (7)
Construct a real interval by specifying a center and a radius:
CenteredInterval[2 / 3, 10 ^ -10]Construct a complex interval by specifying a center and a radius:
CenteredInterval[2 + 3I, 1 + I]Construct centered intervals by specifying arbitrary-precision numbers:
CenteredInterval[1.23`20]CenteredInterval[1.23`20 + 4.56`30 I]CenteredInterval[0``7]Convert a bounded Interval object to a centered interval:
CenteredInterval[Interval[{1, 2}]]Binary Gaussian rationals are exactly representable as intervals with radius zero:
CenteredInterval[123 / 2 ^ 12]CenteredInterval[1 / 2 + 3 / 4I]Other exact numbers are converted to intervals with nonzero radii:
CenteredInterval[1 / 3]CenteredInterval[E + I Pi]Nonzero machine-precision numbers are treated as numbers with $MachinePrecision precise digits:
CenteredInterval[9.87]Convert machine-precision zero to a center-radius interval:
CenteredInterval[0.]Interval Arithmetic (5)
Use arithmetic operations with centered interval arguments:
{a, b} = {CenteredInterval[2, 1 / 100], CenteredInterval[3 + I / 4, (1 + I) / 20]};{a + b, a b, a ^ b}Use centered intervals as arguments of mathematical functions:
Sin[CenteredInterval[1.23`4]]BesselJ[CenteredInterval[1, 1 / 1000], CenteredInterval[2, 1 / 1000]]Operations with centered interval and numeric arguments yield centered intervals:
a = CenteredInterval[1.234`10];a + PiBeta[2`15, a] + 3 / 4The returned interval contains all values of the function in the input interval:
Log[#]Sin[#]&[CenteredInterval[20, 10]]Plot[Log[x]Sin[x], {x, 10, 30}, Epilog -> {Green, Opacity[0.25], Rectangle[{10, -#}, {30, #}]&[Information[%, "Radius"]]}]Interval arithmetic operations return Indeterminate if the set of values is unbounded:
1 / CenteredInterval[0, 1]Interval Properties (5)
Extract the properties of a real interval:
int = CenteredInterval[1.23`20]The center and the radius are binary rational numbers:
Information[int, {"Center", "Radius"}]Find rational bounds for the elements of the interval:
Information[int, "Bounds"]N[%, 21]Convert the interval to an arbitrary-precision number:
Normal[int]Extract the center and the radius of a complex interval:
int = CenteredInterval[N[ArcSin[2], 10]]The center and the radius are binary Gaussian rational numbers:
Information[int, {"Center", "Radius"}]Find Gaussian rational bounds for the elements of the interval:
Information[int, "Bounds"]N[%, 11]Convert the interval to an arbitrary-precision number:
Normal[int]int = CenteredInterval[2, 1 / 2]IntervalMemberQ[int, 9 / 4]IntervalMemberQ[int, 5 / 4]int1 = CenteredInterval[0, 1 + I]int2 = CenteredInterval[1 / 3, 1 / 3 + 1 / 3I]IntervalMemberQ[int1, int2]IntervalMemberQ[int2, int1]Graphics[{{Red, Rectangle@@ReIm[Information[int1, "Bounds"]]}, {Yellow, Rectangle@@ReIm[Information[int2, "Bounds"]]}}]int1 = CenteredInterval[1, 3 / 4];
int2 = CenteredInterval[2, 3 / 4];
int3 = CenteredInterval[3, 3 / 4];int1 < int3If the intervals intersect, the comparison cannot be resolved:
int1 < int2Use IntervalIntersection to compute the intersection:
IntervalIntersection[int1, int2]The empty interval is expressed as Interval[]:
IntervalIntersection[int1, int3]Linear Algebra (10)
Product of CenteredInterval matrices:
m = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}];
n = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 2}, WorkingPrecision -> 10], {2}];
(mn = m.n)//MatrixFormFind random representatives mrep and nrep of m and n:
ranrep[e_CenteredInterval] := e["Center"] + RandomInteger[{-1000, 1000}] / 1000 e["Radius"]
(mrep = Map[ranrep, m, {2}])//MatrixForm(nrep = Map[ranrep, n, {2}])//MatrixFormVerify that mn contains the product of mrep and nrep:
MapThread[IntervalMemberQ, {mn, mrep.nrep}, 2]//MatrixFormRaise a CenteredInterval matrix to an integer power:
(m = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}])//MatrixForm(mpow = MatrixPower[m, 17])//MatrixFormFind a random representative mrep of m:
ranrep[e_CenteredInterval] := e["Center"] + RandomInteger[{-1000, 1000}] / 1000 e["Radius"]
(mrep = Map[ranrep, m, {2}])//MatrixFormVerify that mpow contains MatrixPower[mrep,17]:
MapThread[IntervalMemberQ, {mpow, MatrixPower[mrep, 17]}, 2]//MatrixFormThe exponential of a CenteredInterval matrix:
(m = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}])//MatrixForm(mexp = MatrixExp[m])//MatrixFormFind a random representative mrep of m:
ranrep[e_CenteredInterval] := e["Center"] + RandomInteger[{-1000, 1000}] / 1000 e["Radius"]
(mrep = Map[ranrep, m, {2}])//MatrixFormVerify that mexp contains the exponential of mrep:
MapThread[IntervalMemberQ, {mexp, MatrixExp[mrep]}, 2]//MatrixFormDeterminant of a CenteredInterval matrix:
(m = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}])//MatrixFormmdet = Det[m]Find a random representative mrep of m:
ranrep[e_CenteredInterval] := e["Center"] + RandomInteger[{-1000, 1000}] / 1000 e["Radius"]
(mrep = Map[ranrep, m, {2}])//MatrixFormVerify that mdet contains the determinant of mrep:
IntervalMemberQ[mdet, Det[mrep]]Inverse of a CenteredInterval matrix:
(m = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}])//MatrixForm(minv = Inverse[m])//MatrixFormFind a random representative mrep of m:
ranrep[e_CenteredInterval] := e["Center"] + RandomInteger[{-1000, 1000}] / 1000 e["Radius"]
(mrep = Map[ranrep, m, {2}])//MatrixFormVerify that minv contains the inverse of mrep:
MapThread[IntervalMemberQ, {minv, Inverse[mrep]}, 2]//MatrixFormSolve
for CenteredInterval matrices:
m = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}];
b = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 2}, WorkingPrecision -> 10], {2}];
(sol = LinearSolve[m, b])//MatrixFormFind random representatives mrep and brep of m and b:
ranrep[e_CenteredInterval] := e["Center"] + RandomInteger[{-1000, 1000}] / 1000 e["Radius"]
(mrep = Map[ranrep, m, {2}])//MatrixForm(brep = Map[ranrep, b, {2}])//MatrixFormVerify that sol contains LinearSolve[mrep,brep]:
MapThread[IntervalMemberQ, {sol, LinearSolve[mrep, brep]}, 2]//MatrixFormEigensystem of a CenteredInterval matrix:
SeedRandom[777];(m = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}])//MatrixForm{vals, vecs} = Eigensystem[m]Find an eigensystem for a random representative mrep of m:
ranrep[e_CenteredInterval] := e["Center"] + RandomInteger[{-1000, 1000}] / 1000 e["Radius"]
(mrep = Map[ranrep, m, {2}])//MatrixForm{rvals, rvecs} = Eigensystem[mrep]Verify that, after reordering and scaling of vectors, vals contain rvals and vecs contain rvecs:
MapThread[IntervalMemberQ, {vals, rvals[[{3, 1, 2}]]}]MapThread[IntervalMemberQ, {vecs, rvecs[[{3, 1, 2}]] * (Last[#]["Center"]& /@ vecs)}, 2]LU decomposition for a CenteredInterval matrix:
(m = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}])//MatrixFormMatrixForm /@ ({l, u, p, c} = LUDecomposition[m])MapThread[IntervalMemberQ, {l.u, p.m}, 2]//MatrixFormCholesky decomposition for a real symmetric positive definite CenteredInterval matrix:
rm = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}];
(m = rm.Transpose[rm])//MatrixForm(q = CholeskyDecomposition[m])//MatrixFormMapThread[IntervalMemberQ, {Transpose[q].q, m}, 2]//MatrixFormCharacteristic polynomial of a CenteredInterval matrix:
(m = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}])//MatrixFormp = CharacteristicPolynomial[m, x]Find a random representative mrep of m:
ranrep[e_CenteredInterval] := e["Center"] + RandomInteger[{-1000, 1000}] / 1000 e["Radius"]
(mrep = Map[ranrep, m, {2}])//MatrixFormVerify that the coefficients of p contain the coefficients of the characteristic polynomial of mrep:
MapThread[IntervalMemberQ, {CoefficientList[p, x], CoefficientList[CharacteristicPolynomial[mrep, x], x]}]Properties & Relations (2)
Interval arithmetic provides verified bounds on the computation error:
a = CenteredInterval[1, 1 / 10];Since
, the error for
is bounded by
:
a ^ 2Arbitrary-precision number arithmetic estimates the error based on the linear term, getting
:
CenteredInterval[Normal[a] ^ 2]Interval represents real intervals given by specifying their endpoints:
Interval[{1, 2}]Convert the interval to CenteredInterval representation:
CenteredInterval[%]Interval[Information[%, "Bounds"]]When interval endpoints are not binary rationals, conversion makes the interval larger:
Interval[{0, 1 / 3}]CenteredInterval[%]Interval[Information[%, "Bounds"]]N[%[[1]] - %%%[[1]]]Possible Issues (1)
Only bounded intervals can be represented as CenteredInterval:
Tan[CenteredInterval[N[Pi / 2, 20]]]Interval representation allows unbounded intervals:
Tan[Interval[N[Pi / 2, 20]]]Related Guides
History
Text
Wolfram Research (2021), CenteredInterval, Wolfram Language function, https://reference.wolfram.com/language/ref/CenteredInterval.html.
CMS
Wolfram Language. 2021. "CenteredInterval." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CenteredInterval.html.
APA
Wolfram Language. (2021). CenteredInterval. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CenteredInterval.html
BibTeX
@misc{reference.wolfram_2026_centeredinterval, author="Wolfram Research", title="{CenteredInterval}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/CenteredInterval.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_centeredinterval, organization={Wolfram Research}, title={CenteredInterval}, year={2021}, url={https://reference.wolfram.com/language/ref/CenteredInterval.html}, note=[Accessed: 13-June-2026]}