Category Archives: Javascript

Centro del quadrato

Autore: John von Neumann (1949)

Osserva la figura

Il quadrato di xn-1 produce un numero con il doppio delle cifre ma con le cifre più significative e le cifre meno significative facilmente prevedibili

Il prossimo numero casuale xn è costituito dalle cifre centrali!


Prova

Seme
Cifre (n)
Quanti?

E.S. 2006 – 4 – PNI

Si dimostri che l’equazione \sin x=x-1 ha una e una sola radice α e, utilizzando una calcolatrice tascabile, se ne dia una stima.

Si descriva altresì una procedura di calcolo che consenta di approssimare α con la precisione voluta.

Si dimostri…


Si calcoli…

Metodo di bisezione

a
b
passi
an mn bn en
f(an) f(mn) f(bn)

E.S. 2010 – 4 – P.N.I.

Si calcoli con la precisione di due cifre decimali lo zero della funzione 2010-3.
Come si può essere certi che esiste un unico zero?

Come si può…

  • f(x)=x^3+x^{1/3}-1
  • \lim_{x\to-\infty}f(x)=-\infty
  • \lim_{x\to+\infty}f(x)=+\infty
    • f\prime(x)=3x^2+\frac{1}{3\ \sqrt[3]{x^2}}\ > \ 0
  • f(0)=-1
  • f(1)=1

Si calcoli…

Metodo di bisezione

a
b
passi
an mn bn en
f(an) f(mn) f(bn)

Moneta di Buffon

L’esperimento consiste nel lanciare una moneta su di un pavimento coperto da mattonelle quadrate.
La probabilità che la moneta tocchi il bordo di una mattonella dipende dalla dimensione (raggio) della moneta.

Per semplificare

  1. Il lato della piastrella, L=1
  2. La superficie della piastrella, S=L^2=1
  3. Il raggio della moneta, 0 \leq R \leq 1/2

La moneta non tocca il bordo se il suo centro cade a una distanza dai bordi maggiore del suo raggio, cioè se cade all’interno di un quadrato interno con

  1. Lato interno,  L_I=L-2R=1-2R
  2. Superficie del quadrato interno,  S_I=(1-2R)^2=1-4R+4R^2

La probabilità che la moneta cada all’interno è data dal rapporto tra la superficie del quadrato interno e della piastrella

P_I=\frac{S_I}{S}=1-4R+4R^2

La probabilità di toccare il bordo

 P=1-P_I=1-(1-4R+4R^2)=4R-4R^2=4R(1-R)

Teoricamente, la probabilità che la moneta tocchi il bordo della piastrella nei 3 casi in figura è

Raggio
1/8 2/8 3/8
6/8 4/8 2/8 LI
36/64 16/64 4/64 SI
28/64
0,4375
48/64
0,75
60/64
0,9375
Probabilità
teorica

Naturalmente

  • Se R \rightarrow 0 allora P \rightarrow 0
  • Se R \rightarrow 1/2 allora P \rightarrow 1

Metodo Monte Carlo

Il fenomeno viene simulato con le seguenti ipotesi

  • il centro della mattonella è (0,0)
  • le coordinate casuali del centro della moneta sono (x,y)
  • -1/2 \leq x,y\leq +1/2
  • la moneta tocca il bordo di una mattonella se |x|\geq 1/2-R oppure |y|\geq 1/2-R

Simuliamo N lanci, contando le occorrenze in cui la moneta tocca il bordo della mattonella e confrontiamo le frequenze relative con le probabilità teoriche

Raggio Numero
lanci
1/8 2/8 3/8
? ? ? 10
? ? ? 100
? ? ? 1000
? ? ? 10000
? ? ? 100000
0,4375 0,75 0,9375 Probabilità
teorica

Numeri pseudocasuali – Funzioni

Gli ambienti di sviluppo rendono disponibili una o più funzioni per la generazione di numeri casuali

Reali Interi
BASIC RND() [0.0…1.0)
Calc
Excel
CASUALE.TRA(INF; SUP) [INF, SUP]
CASUALE() [0.0…1.0)
GeoGebra random() [0.0…1.0)
Java
Javascript
Math.random() [0.0…1.0)
Pascal Random(SUP) [0, SUP-1]
Random [0.0…1.0)
Python random.randint(INF,SUP) [INF, SUP]
random.random() [0.0…1.0)

Numeri in un intervallo

A partire dalle funzioni disponibili si possono ottenere numeri distribuiti uniformemente in un intervallo a piacere

Reali

[0..1) [0..SUP) [0..SUP-INF) [INF..SUP)
Funzione() SUP*Funzione() (SUP-INF)*Funzione() (SUP-INF)*Funzione()+INF

Interi

[0, SUP-1] [1, SUP] [INF, SUP]
Java (int)(SUP*Math.random())
(int)(SUP*Math.random()+1) (int)((SUP-INF+1)*Math.random()+INF)
Javascript Math.floor(SUP*Math.random())
Math.floor(SUP*Math.random()+1) Math.floor((SUP-INF+1)*Math.random()+INF)
Pascal Random(SUP) Random(SUP)+1 Random(SUP-INF+1)+INF

Prova!

Reali Interi
Math.random() [0..1[ Con Math.floor(...)
SUP*Math.random()
SUP*Math.random()+1
(SUP-INF)*Math.random()+INF
(SUP-INF+1)*Math.random()+INF
INF SUP

LCG

Linear Congruential Generator


Osserva la figura

  1. Il prodotto per a (1001) produce un numero con più cifre ma con le cifre più significative e le cifre meno significative piuttosto prevedibili
  2. Il contributo di c (337) permette di mescolare le cifre meno significative
  3. L’operazione finale di modulo m (1000000) scarta le cifre più significative

Si ottiene il massimo periodo (m) se

  1. c e m sono primi tra loro
    337 non ha divisori in comune con 1000000
  2. Se p è un fattore primo di m deve esserlo anche di a-1
    2 e 5 sono i fattori primi di m=1000000 e anche di a-1=1000
  3. Se 4 divide m allora deve dividere anche a-1
    4 divide m=1000000 e anche a-1=1000

Prova

a
c
m
seme
n

Pi greco – Metodo Monte Carlo

cc1Considera un cerchio e un quadrato disposti come nella figura a destra

Area del cerchio, A_C=\pi r^2

Area del quadrato,A_Q=(2r)^2

Osserva che il rapporto tra le aree non dipende dal raggio

\frac{A_C}{A_Q}=\frac{\pi r^2}{4 r^2}=\frac{\pi}{4}


Metodo Monte Carlo

Nell’ipotesi che il centro del cerchio sia nell’origine degli assi, applica il metodo Monte Carlo

  1. genera le coordinate pseudocasuali di N_Q punti, con coordinate in [-r..+r)
  2. Sia N_C il numero di punti appartenenti al cerchio, cioè tali che x^2+y^2\ \leq \ r^2 allora

\frac{N_C}{N_Q}\approx \frac{A_C}{A_Q}=\frac{\pi}{4}

\pi \approx 4\frac{N_C}{N_Q}


2° versione

cc2Per semplificare i calcoli è possibile considerare soltanto il I° quadrante e il settore del cerchio e il quadrato corrispondenti.

Le coordinate x e y assumono valori in [0, r)

Come prima

A_{C4}=\frac{\pi r^2}{4}

A_{Q4}=r^2

\frac{A_{C4}}{A_{Q4}}=\frac{\frac{\pi r^2}{4}}{r^2}=\frac{\pi}{4}


3° versione

Scegli r=1 allora le coordinate x e y assumono valori in [0..+1) e se x^2+y^2 \ \leq \ 1 allora il punto appartiene al cerchio.


Prova!

N_Q N_C \pi \approx 4\frac{N_C}{N_Q}
10 ? ?
100 ? ?
1.000 ? ?
10.000 ? ?
100.000 ? ?
1.000.000 ? ?