lunedì 25 gennaio 2016

simulazione dei mercati azionari

variabilità tra -a, a (in realtà un po' meno)

= casuale.tra(-a, a)*casuale()

=[casuale()*a]*(-1)^casuale.tra(1, 2)


applicazioni nei fogli di calcolo per simulare l'andamento del mercato azionario in regime di instabilità

Radice quadrata: metodo veloce

in Python

def radice(n, a, b):
i = 1;
while ( i <= 100 ):
r = (a+b)/2;
s = n/r;
a = r;
b = s;
i = i+1;
print (s);
print (r);

si può porre a = 1, b = n

venerdì 22 gennaio 2016

Tecniche per terne pitagoriche

sia  a^2+b^2 = c^2  una terna pitagorica di cui voglio trovare le soluzioni intere a, b, c

allora  pongo  :

a= p+d
b = q+d
c =p+q+d

sostituendo ho
(p+d)^2+(q+d)^2 = (p+q+d)^2

sse

d^2 = 2pq

Quindi fisso d intero pari, calcolo d^2 e trovo tutti gli interi p, q tali che d^2=2pq,   

avrò trovato una terna pitagorica:
a= p+d
b = q+d
c =p+q+d

idem per
a = p-d
b = q-d
c = p+q-d

d^2 = 2pq

lunedì 18 gennaio 2016

Somma di potenze di interi consecutivi

Per calcolare la somma di potenze di interi consecutivi  possiamo usare le formule https://it.wikipedia.org/wiki/Somma_di_potenze_di_interi_successivi oppure usare il metodo delle differenze finite

Eccone un esempio:

1^5       1+2^5     1+2^5+3^5       1+2^5+3^5    1+2^5+3^5+4^5           


1            33              276                 1300               4425                x
     32             243               1024               3125                x-4425
     211            781                 2101              x-4425-3125
                     570             1320                x-4425-3125-2101
                              750               x-4425-3125-2101-1320 = 750  = > x = 10221 = 1^5+2^5+3^5+4^5+5^5+6^5

ecc

x = 10221 = 1+2^5+3^5+4^5+5^5+6^5

e si prosegue anche senza conoscere la formula.

La tecnica  delle differenze finite ha molteplici applicazioni ad esempio nel problema di trovare il numero mancante in una serie di numeri interi

martedì 12 gennaio 2016

metodi e modelli matematici per il gioco della roulette

Fattorizzazione RSA casuale nella calcolatrice TI-82

input N
int(sqrt(N)) => A
int(rand*(A))+2 => B
while (N/B != int(N/B))
int(rand*(A))+2 => B
End
Disp I
Disp N/I

il programma genera numeri casuali interi tra 2 a la radice quadrata di N finché non trova un divisore per N

La casualità nella calcolatrice TI-82

1 => I
while I <= 20
int(rand*90+1) => L1(I)
I+1 => I
End
L1
mean(L1)
median(L1)



Gioco del lotto
int(rand*90)+1 =>1

testa 0 o croce 1
abs(int(rand*2)-1)=> L1

Roulette
int(rand*37) => L1

lunedì 11 gennaio 2016

Una nuova disuguaglianza logaritmica

n = p1*p2

ln(n) = ln(p1)+ln(p2)

x^2-Sx+N=0

x=ln(p1), x = ln(p2)

N = ln(p1)*ln(p2)
S = ln(p1)+ln(p2)

S^2-4*N >0

ovvero ln(p1)*ln(p2) < (ln(n)/2)^2

ln(n) )= ln(p1)+ln(p2) < ln(p1)*ln(p2) < (ln(n)/2)^2

ln(n)  < ln(p1)*ln(p2) < (ln(n)/2)^2

Il teorema cinese dei resti: un metodo di calcolo alternativo

esempio:
x = 2 mod 3
x = 3 mod 4
x = 2 mod 5

mcd(3,4)=mcd(4, 5)=mcd(3, 5)= 1

mcm(3, 4, 5) = 3*4*5 = 60

x = 2 mod 3 => x = (2+3)+3k = 5+3k
x = 3 mod 4 => x = (4+3)+4u = 7+4u
x = 2 mod 5 => x = (2+5) +5v = 7+5v

basta risolvere il sistema :

5+3k = 7+4u
7+4u=7+5v
5+3k = 7+5v

che dà come risultato k = 54, v = 32, u = 40
quindi x = 167 = 5+3k=7+4u=7+5v

la soluzione generale sarà data da  x = 167+w*60
167 = 47 mod 60 quindi x = 47+w60

oppure:
x = 2 mod 3
x = 3 mod 4
x = 2 mod 5

x = 3k+2
x= 4u+3
x = 5v+2

C(3, 2) = 3

quindi risolvo il sistema lineare:
3k+2 = 4u+3
3k+2=5v+2
4u+3= 5v+2

k = 55
v= 33
u = 41

e si procede come sopra

martedì 5 gennaio 2016

La formula per fare le moltiplicazioni

(n+m-k)*k+(k-m)(k-n)=n*m

si sceglie un k opportuno

utile per fare calcoli a mente oppure per agevolare il risultato di una moltiplicazione tra grandi numeri