Gli istogrammi sperimentali di distribuzione di due variabili casuali tendono ad assumere le forme seguenti. Controlla che le aree di queste figure valgono effettivamente 1. Valuta la mediana e la media di queste variabili casuali

Consideriamo la distribuzione a sinistra. L'area è evidentemente 1. La mediana divide a metà l'area dell'istogramma, ovvero l'area "che sta sotto" al grafico della funzione approssimante. Il triangolo a sinistra ha area 1/2, così come il rettangolo. Le due sottofigure sono separate dalla retta x=1. Quindi 1 è la mediana.
Per trovare la media possiamo ragionare geometricamente/fisicamente: il triangolo e il rettangolo hanno la stessa area. Quindi il baricentro, che ha come ascissa la media, è il punto medio tra i due baricentri. Il baricentro del rettangolo ha ascissa 1.25 (al centro del rettangolo), quello del triangolo ha ascissa 2/3 (la media delle ascisse dei vertici), quindi la media cercata è (1.25+2/3)/2 = 0.625+1/3 = 0.958333…  
Posso procedere anche calcolando  ∫[0,1.5] x·f(x)dx   dove f(x) = x se x<1, f(x) = 1 altrimenti:
[0,1.5]x·f(x)dx = ∫[0,1]x·f(x)dx + ∫[1,1.5]x·f(x)dx =
[0,1]x·x dx + ∫[1,1.5]x dx = 13/3 + 1.52/2 – 12/2 = 1/3 + 2.25/2 – 1/2 = 1/3 + 9/8 – 1/2 = (8+27-12)/24 = 23/24 (= 0.958333…).
    Con R potrei fare:
source("http://macosa.dima.unige.it/r.R")
f <- function(x) ifelse(x < 1, x, 1)
graphF(f,0,1.5, "blue")
t = function(x) x*f(x); integral(t,0,1.5)
# 0.9583333
frazio(last())
# 23/24
    Con WolframAlpha dando come input:
(integrate x*x from x=0 to x=1)+(integrate x from x=1 to x=1.5)
otterrei  0.958333       Poi:  0.958333 → 23/24 ≈ 0.95833333333
 
Anche nel caso della distribuzione a destra l'area complessiva è 1. L'area del triangolo è 1/2. L'area del resto è:
[1,2] x–2dx = [–x–1]x=2 – [–x–1]x=1 = –1/2+1 = 1/2. OK.
Anche in questo caso la mediana è 1.
In questo caso la curva è il grafico di f tale che f(x) = x se x<1, f(x) = x–2 altrimenti. La media è:
[0,2] x·f(x)dx = ∫[0,1] x·f(x)dx + ∫[1,2] x·f(x)dx =
[0,1]x2 dx + ∫[1,2]x–1 dx = 13/3 + ln(2) – ln(1) = 1/3 + ln(2) = 1.026….
    Con R potrei fare:
f <- function(x) ifelse(x < 1, x, x^-2)
graphF(f,0,2, "blue"); t=function(x) x*f(x); integral(t,0,2)
# 1.026481
1/3+log(2)
# 1.026481
    Con WolframAlpha dando come input:
(integrate x*x from x=0 to x=1)+(integrate x*x^-2 from x=1 to x=2)
otterrei  1/3+log(2)

 
Vediamo come affrontare lo studio sperimentalmente. Utilizziamo un semplice programmino in JavaScript (software incorporato in tutti i browser) per calcolare l'integrale approssimandolo con l'area di una sequenza di rettangolini. Vai qui: http://macosa.dima.unige.it/js/js.htm, clicca "macosa.dima.unige.it/js.com" e metti nella finestra in alto:

<pre><script> with(Math) {
function F(x) { if(x < 1) {y=x*x} else {y=x}; return y }; a = 0; b = 1.5
document.writeln("F(x) = 0.1*exp(-0.1*x); a = 15; b = 45")
n=5000
for(i = 0; i < 5; i = i+1) {
  s=0; h=(b-a)/n; for (var j=0; j < n; j=j+1) {s = s + F(a+(j+1/2)*h)}
  document.writeln(n, " rettangoli, integrale di F su [a,b] = ", s*h); n=n*2
   }
} </script></pre>
5000 rettangoli, integrale di F su [a,b] = 0.9583333308337496
10000 rettangoli, integrale di F su [a,b] = 0.95833333270828
20000 rettangoli, integrale di F su [a,b] = 0.9583333331770886
40000 rettangoli, integrale di F su [a,b] = 0.9583333332942705
80000 rettangoli, integrale di F su [a,b] = 0.9583333333235661

Prendo 0.958333...

<pre><script> with(Math) {
function F(x) { if(x < 1) {y=x*x} else {y=1/x}; return y }; a = 0; b = 2
n=5000
for(i = 0; i < 5; i = i+1) {
  s=0; h=(b-a)/n; for (var j=0; j < n; j=j+1) {s = s + F(a+(j+1/2)*h)}
  document.writeln(n, " rettangoli, integrale di F su [a,b] = ", s*h); n=n*2
   }
} </script></pre>
5000 rettangoli, integrale di F su [a,b] = 1.026480495559943
10000 rettangoli, integrale di F su [a,b] = 1.0264805093099452
20000 rettangoli, integrale di F su [a,b] = 1.026480512747447
40000 rettangoli, integrale di F su [a,b] = 1.0264805136068151
80000 rettangoli, integrale di F su [a,b] = 1.0264805138216497

Prendo 1.026480514