Algoritmo di Ada Lovelace per i numeri di Bernoulli

Versione del 7 ago 2016 alle 07:01 di Bottuzzu (discussione | contributi) (a capo in eccesso)

L'algoritmo di Ada Lovelace (nata Ada Byron) permette di calcolare i numeri di Bernoulli, senza dover conteggiare tutti quelli ad essi precedenti. Questo algoritmo è considerato un risultato brillante, sia per la valenza computazionale che per la felice coniugazione di matematica e informatica. È noto soprattutto per essere stato il primo programma della storia dell'informatica.

Gli algoritmi di Ada Lovelace e di Bernoulli a confronto

Secondo alcune fonti storiche, per la costruzione del suo programma Ada Lovelace si servì della seguente funzione generatrice esponenziale:

(1)  

opportunamente semplificata e modificata nell'espressione:

(2)  

Altre fonti non concordano con tale versione per diverse ragioni. In primo luogo perché, pur essendo vero che lo sviluppo della (1), insieme ad altri sviluppi in serie di funzioni trascendenti, contiene numeri di Bernoulli, come osservato dallo stesso Bernoulli nell'Ars conjectandi e successivamente anche da Eulero e Stirling, non esiste tuttavia alcuna relazione matematica in grado di trasformare la (1) nella (2). In secondo luogo, pare esistere una lettera della Byron scritta nel luglio del 1843, nella quale chiedeva a Babbage di inviarle la formula generatrice dei numeri di Bernoulli e non uno sviluppo che li contenesse (il che prevede anche una lista dei numeri). Infine, sempre in base a tali fonti, la formula (2) utilizzata dalla Byron non è altro che una rielaborazione della seguente formula utilizzata da Bernoulli:

(3)  

e che Ada fra l'altro aveva studiato qualche anno prima, sotto la guida di De Morgan. Per confrontare la formula effettivamente utilizzata dalla Byron con la (3), è sufficiente riscrivere lo sviluppo di quest'ultima sostituendo   con   e sottraendo   da entrambi i membri dell'uguaglianza:

 

da cui, dividendo ciascun termine per il fattore  , si ottiene:

(4)  

È possibile riscrivere ciascun coefficiente binomiale che compare nella (4) in modo più semplice. Ad esempio per il primo coefficiente si ha:

 

oppure per il secondo si ha:

 

Dunque, semplificando la (4), si perviene in definitiva alla:

(5)  

dalla quale, per ricorsività e grazie al supporto di una macchina quale l'Analithycal Engine di Babbage, è assai facile generare progressivamente i numeri di Bernoulli   con   , come Ada stessa propose.

In realtà, la Byron usò la formula (2) che differisce leggermente dalla (5) sia per l'alternanza dei segni sia per la presenza delle potenze dispari di  , oltre che nel numeratore dell'uguaglianza, dove il fattore   compare al posto del fattore   della (5).

Mediante una congettura piuttosto geniale per quell'epoca, la Byron riuscì a generare i coefficienti incogniti   semplicemente mediante iterazioni successive, attribuendo ad   valori interi via via crescenti  ,  ,  , ... In questo modo, sostituendo  , tanto nella (2) quanto nella (5), tutti i termini dello sviluppo contenenti   si annullano, ossia tutti i termini dal secondo in poi. Ad esempio, per la (5) si ottiene:

 

dalla quale risulta agevole ricavare  . In modo analogo, attribuendo ad   il valore   si annullano invece tutti i termini che contengono il fattore   , ovvero tutti quelli a partire dal terzo:

 

da cui, una volta noto   , si ottiene il secondo coefficiente dello sviluppo   . Per   spariscono tutti i termini a partire dal quarto e così via per valori sempre crescenti di  . Anche Bernoulli, un secolo prima della Byron, propose un procedimento analogo in base al quale partendo dallo sviluppo (3) e ponendo di volta in volta  ,  ,   ... si riesce ad arrestare la somma e a calcolare ricorsivamente i coefficienti   . Così ad esempio per   , e di conseguenza   , si ha:

 

da cui si ricava immediatamente   . Ovviamente il numero successivo significativo   si ottiene arrestando lo stesso sviluppo per   e dunque facendo variare   da   a  

 

sapendo che  , si ottiene:

 

cioè  . Dunque la vera innovazione introdotta dall'algoritmo della Byron rispetto al metodo di Bernoulli sta nell'aver usato ad ogni iterazione la stessa formula, riuscendo a semplificarla di volta in volta al variare del valore dell'incognita  . Il calcolo di ciascun numero, uno alla volta, costituisce il ciclo esterno del programma, mentre per calcolare ogni valore frazionario successivo si fa ricorso ad un ciclo secondario. Riportiamo qui di seguito gli algoritmi proposti dalla Byron e da Bernoulli:

Algoritmo di Ada Byron

 

Algoritmo di Bernoulli

 

  Portale Matematica: accedi alle voci di Wikipedia che trattano di Matematica