Algoritmo di Ada Lovelace per i numeri di Bernoulli

Da testwiki.
Vai alla navigazione Vai alla ricerca

L'algoritmo di Ada Lovelace (nata Ada Byron) permette di calcolare i numeri di Bernoulli. Questo algoritmo è noto soprattutto per essere stato il primo programma della storia dell'informatica.

Nota G, diagramma di Ada Lovelace: fu il primo algoritmo per computer pubblicato

La formula utilizzata

Come si vede dal diagramma in figura e dal testo relativo disponibile in lingua inglese[1], Ada Lovelace nell'implementare il suo algoritmo si servì della seguente formula:

0=122n12n+1+B22n2+B42n(2n1)(2n2)4!+B62n(2n1)...(2n4)6!+...+B2n

dove abbiamo sostituito gli indici dispari usati da Ada con i pari secondo la moderna notazione dei Numeri di Bernoulli. Utilizzando il fattoriale decrescente possiamo scrivere in forma compatta:

122n12n+1=k=1n(2n)2k1_(2k)!B2k

essendo il (2n)2n1_=(2n)! la precedente equivale a

B2n=122n12n+1k=1n1(2n)2k1_(2k)!B2kpern>1pern=1B2=12212+1=16

Le fonti concordano[2] con Ada stessa[1], sul fatto che questa formula derivi dalla funzione generatrice e anche nel fornire solo un accenno di dimostrazione per giustificarlo:

xex1=:k=0xkk!Bk

La funzione generatrice può considerarsi una uguaglianza fra serie formali di potenze o fra funzioni analitiche; in questo caso per la convergenza della serie si chiede che x abbia valore assoluto minore di 2π (il raggio di convergenza della serie stessa).

È sicuramente più semplice mostrare invece che la formula usata dalla Byron non è altro che la consueta formula di ricorrenza:[3]

Bm=1m+1j=0m1(m+1j)Bjossia:j=0m(m+1j)Bj=0(conm>0eB0=1)

resa più efficiente per il calcolo automatico. Per questo è sufficiente notare che:

k=1n1(2n)2k1_(2k)!B2k=12n+1k=1n1(2n+12k)B2k

e che

12n+1k=01(2n+1k)Bk=12n+1((2n+10)(1)+(2n+11)(12))=
=12n+1(1+(2n+1)(12))=12n+1(12)(2+2n+1)=122n12n+1

Come si può controllare nella nota G in figura questa è la funzione utilizzata da Ada dato che ai suoi tempi, come aveva indicato anche Jacob Bernoulli nel suo "Ars Conjectandi" più di un secolo prima i numeri di Bernoulli cominciavano dopo i primi due attuali che quindi vanno sostituiti con i loro valori numerici per ottenere la formula usata. Nella nota Ada scrive B1B3B5... che chiaramente corrispondono ai nostri B2B4B6... .

Note

Bibliografia

Voci correlate

Template:Portale