Around
A number x with an uncertainty dx, propagated to first order through arithmetic and functions -- the same uncertainty-arithmetic layer as Interval and CenteredInterval. Provided by @enumeratio/analytic, though the head's natural home is @enumeratio/statistics.
✓ checked against that system · ! checked, with disagreements (hover a chip)Wolfram Language
Around!Around(x, dx)x with uncertainty dx, propagated as Around(f(x), |f′(x)|·dx) through a function f.Typed signatures
| Type | Package | Applies |
|---|---|---|
(number, real?) -> number | analytic | always |
Details
- Add sums several independent uncertainties in quadrature (√Σdxᵢ²); a scalar Multiply scales the uncertainty linearly; several Around factors multiplied together combine their RELATIVE uncertainties in quadrature (the same rule, since d(∏xᵢ) = Σⱼ(∏_{i≠j}xᵢ)dxⱼ in quadrature, divided back out by the product); Power with a concrete exponent and Exp (Wolfram's Exp, canonicalized to Power(E, ·)) use their own closed-form derivatives.
- Every other function -- the elementary heads, Log in any base, and the special functions -- takes f′ from compute-engine's symbolic D where it resolves, and from a central difference where it doesn't.
- A head is propagated through as ONE function of its uncertain argument, before its own definition expands it: Multinomial(Around(2, 0.01), 2) is (a+2)(a+1)/2 at a = 2 ± 0.01, so 6 ± 0.035. Expanding first would count the same uncertainty in a numerator and a denominator as if they were independent.
Plot
Examples
2 more kept as data, checked against the oraclesAbout
| Examples | 20 |
|---|---|
| Checked against | Wolfram Language 17 agree3 differ |
| Crosswalk | Wolfram Language |
Implementation
mapped
sympypackages/oracle/src/mappings.tsSymPy has no value with an uncertainty, nor first-order propagation through arithmetic (that is the separate uncertainties package, not SymPy), so there is nothing for an Around row to run on; sympy.stats is probabilistic, not error propagation.
See also: Interval, CenteredInterval