variance of $r\sim\mathcal{U}(a,b)$: $\frac{1}{12} (b-a)^2$ (remember that if $\mathcal{U}(0,1)$ its variance is $\int_{0}^{1}(x-\frac{1}{2})^2dx=\frac{1}{12}$)
notes
variance of the sum or difference is the sum of their variances
$$var(X_1,...nX_n)=\prod_{i=1}^n (var(X_i)+(E[X_i])^2)+\prod_{i=1}^n (E[X_i])^2$$prezzi ....... media a coppie | senza struttura
ogni prezzo eveolve con delle moltiplicazioni <= | =>
poi la somma e la media
var di un vettore di $N$ elementi, ciascuno somma di 2
gli addendi sono serie di $T$ moltiplicationi di valori $r\sim\mathcal{U}(1/(1+d),1+d)$
import statistics as s
import numpy as np
def simVar(N,T,d):
v=[]
for n in range(2*N):
r=np.random.uniform(-d,d)
if r >=0: v.append(1 + r)
else: v.append(1/(1 - r)) # r < 0
for t in range(T): #NB T-1 cycles
for n in range(2*N):
r=np.random.uniform(-d,d)
if r >=0: v[n]*=1 + r
else: v[n]*=1/(1 - r) # r < 0
for n in range(0,2*N,2):
m=(v[n]+v[n+1])/2
v[n]=m
v[n+1]=m
vv=[]
for n in range(0,2*N,2):
vv.append(v[n])
print(s.variance(vv))
plt.hist(vv,100)
simVar(100,10000,0.2)
1.6288668174267747e+23
v=[]
for k in range(100):
a=1
d=0.1
for t in range(10000):
r=np.random.uniform(-d,d)
if r >=0: a*=1+r
else: a*=1/(1-r) # r <
v.append(a)
v.sort()
print(v)
print(len(v),s.variance(v))
[2.1728992064840177e-07, 9.008135082188204e-07, 6.7545002931575875e-06, 7.99829037226759e-06, 2.2938340960712836e-05, 4.117990725642825e-05, 5.23765513219578e-05, 0.00012549794842138735, 0.0005719479627938209, 0.0006046302617712368, 0.0007556606273828761, 0.0009462461537227607, 0.0011143970057206623, 0.00124713176068901, 0.0013510462373970686, 0.0015413515718747943, 0.0022194234081827423, 0.0023405799523939937, 0.0035628809693688326, 0.0045142543996927135, 0.006567192365648263, 0.00949619695477605, 0.01228041129293005, 0.015505037766215405, 0.02041198546988987, 0.022914982876718934, 0.027126073899633056, 0.04392162351179865, 0.05719502076134313, 0.06176645063743647, 0.0736545871750105, 0.10497585118018654, 0.11530622097907887, 0.12875143845289644, 0.13019576868763794, 0.13416188491496658, 0.18219430584271598, 0.25625217178645543, 0.3282847972665506, 0.3907465172955706, 0.4151591197090932, 0.42123023885879873, 0.4468387646238892, 0.49502275021613124, 0.7473132029238626, 0.9257957475871869, 0.9345456085427856, 0.9587336335453188, 0.9799018442322148, 1.3844769493075615, 1.4999865798578305, 1.6252878695334678, 1.6643246063757222, 1.8030564077212632, 2.443384503742915, 2.492044273109841, 2.7482189004421644, 2.9419882486369384, 3.037798351207029, 3.279720477214571, 3.6168785585727656, 3.971615136472749, 4.097762886965552, 4.499117172499258, 4.718346529683707, 6.281008510489739, 8.765074073868023, 9.744485789803553, 11.070470722688492, 11.155681000088864, 13.334514794955886, 22.544741570392645, 23.421035585305194, 24.989080234482515, 29.752166814107298, 30.530156221960002, 36.69489302349294, 40.84591586499951, 41.570783245898625, 44.57536453561746, 56.84040141138083, 64.70136218609672, 65.86486306039404, 70.6537053676177, 76.38654550373238, 238.6590388117169, 283.8350559477357, 356.7108087410793, 439.1386978830523, 663.5763718573486, 1245.3872340099283, 1514.5486115954368, 2082.653091114756, 7845.957917376518, 7904.796869699339, 18503.3181303637, 193367.61118312262, 213115.01837327715, 665249.8469082521, 17400378.963245615] 100 3029003762266.8276
import pylab as plt
v=[]
d=0.2
for n in range(100):
a=1
for t in range(10000):
r=np.random.uniform(-d,d)
if r >=0: a*=1+r
else: a*=1/(1-r) # r <
v.append(a)
#print(v)
print(s.variance(v))
plt.hist(v,100);
6.952505188281978e+23
v.sort()
v
[1.0192905681176519e-13, 2.147816400552862e-11, 1.1118094662974575e-10, 1.430669643215411e-10, 1.6036747071834545e-10, 5.600788653019684e-10, 1.2984336992016177e-09, 1.8956740980938653e-09, 6.132874884580767e-09, 1.5469463481372007e-08, 3.916104235782118e-08, 1.8703116185137773e-07, 2.875921276238028e-07, 3.589522132792037e-07, 6.13819243667819e-07, 2.162229606197825e-06, 5.652389642935881e-06, 8.954571352943242e-06, 1.4138878715454511e-05, 3.195384250302434e-05, 3.255784935530749e-05, 3.694769532768664e-05, 6.608961809691344e-05, 0.00010869652536523775, 0.000112365039969409, 0.00013183014461344797, 0.00013802998309514608, 0.0001464869456204795, 0.00015158503438031628, 0.0005315156007604708, 0.0006041502447838117, 0.0006807077473204753, 0.0023804430838041367, 0.003101227571462016, 0.007427657379896226, 0.013928665852057445, 0.01422898176316365, 0.014589284571141087, 0.015121750928916457, 0.022562615619939375, 0.023060975048846466, 0.024261370043356035, 0.03097709459568321, 0.04029350872041194, 0.04069566428217471, 0.04312756757916801, 0.059064254167271665, 0.06596699930360998, 0.06743004727782359, 0.07075543517153292, 0.07687229894100019, 0.124986349959551, 0.1727304507139627, 0.17816338078056257, 0.2559339666274859, 0.57395957672733, 1.3956978970847786, 2.327760382626645, 2.533293648138151, 3.6470644823339957, 3.6607048071137767, 4.132755693762608, 5.40432019057088, 7.669584689719172, 14.281898504335288, 14.464739266992254, 14.600023803817002, 17.497776366106034, 20.4834278827626, 20.914657374551012, 23.018350265055787, 25.677733508002426, 26.259884090635172, 42.74931221587623, 43.27607369708571, 49.206288004025595, 57.70783037206828, 69.87881072922825, 105.19075550613552, 106.32593643245049, 283.30647049328036, 347.1762172267718, 2515.9458640662087, 5169.35930580101, 9349.955634809909, 18164.659811912356, 29352.996717011087, 32151.336970972996, 37804.195509685494, 82471.6852730314, 156082.35252424917, 164758.32761006232, 271088.03286398365, 280929.32533851825, 2551859.8940271023, 6189582.571652886, 31178382.817268863, 45434248.40030568, 3276059333.525072, 8338201698319.188]
(1.05**10)*(1/1.05**10)
0.9999999999999999