x = 2.1 ± 0.1,  y = 2.9 ± 0.1,  1/z = 1/x + 1/y.  Quanto vale z?

z = 1 / ( 1/x + 1/y)
1/2.2 ≤ 1/x ≤ 1/2
 1/3   ≤ 1/y ≤ 1/2.8
1/2.2 + 1/3 ≤ 1/x + 1/y ≤ 1/2 + 1/2.8
1/(1/2 + 1/2.8) ≤ z = 1 / ( 1/x + 1/y) ≤ 1/(1/2.2 + 1/3)
2 2.8 dà 1.1666…
2.2 3 dà 1.26923…
Possiamo considerare 1.166 < z < 1.270 o, com minore accuratezza: z = 1.22 ± 0.05

Usando R potremmo fare:

x <- c(2, 2.2); y <- c(2.8, 3.0)
f <- function(x,y) 1/(1/x+1/y); H <- function(i,j) f(x[i],y[j])
r <- c(H(1,1),H(1,2),H(2,1),H(2,2)); r <- c(min(r),max(r)); r; r[2]-r[1]
#   1.166667   1.269231
#   0.1025641
## Ovvero:
source("http://macosa.dima.unige.it/r.R")
x <- c(2.0,2.2); y <- c(2.8,3.0)
rx <- approssima(1,x, "/")
ry <- approssima(1,y, "/")
rz <- approssima(rx,ry, "+")
z <- approssima(1,rz, "/"); z
    [1] min   [2] max 
[1] 1.166667  1.269231
# o:
approssima2(1,rz, "/")
    [1] centro   [2] raggio
[1] 1.21794872    0.05128205

Posso più semplicemente impiegare uno script online, avendo defintito:
function F(x) { with(Math) {
u = 1/(1/x+1/y)
return u
}}

NOTA. Non conviene trasformare  z = 1 / ( 1/x + 1/y)  in  z = x*y / (x+y)  per due motivi:
- il calcolo di z mediante una calcolatrice diventa più complesso (x y x y );
- trovando intervalli di indeterminazione per x*y e per x+y separatemente si ottiene una precisone peggiore:
x*y sta in [2*2.8, 2.2*3], x+y sta in [2+2.8, 2.2+3]
se u sta in [2*2.8, 2.2*3] e w sta in [2+2.8, 2.2+3], u/w sta in:
[2*2.8/(2.2+3), 2.2*3/(2+2.8)] = [1.07692…, 1.375]
Il motivo di questo peggioramento è che procedendo così non si tiene conto del fatto che u e w non sono indipendenti: se x*y assume valore minimo x+y non può assumere valore massimo.