[¯|¯] Programmi ricorsivi con Mathematica

venerdì, Agosto 29th, 2014

Impariamo ad utilizzare una tecnica di casching nella ricorsione con Mathematica

Quando si scrivono programmi ricorsivi con Mathematica può essere utile utilizzare una tecnica di cahing, ovvero di memorizzazione dei valori calcolati. Prima di illustrare tale tecnica introduciamo il comando Table[] e la funzione built-in Prime[] che restituisce l'n-esimo numero primo. Table[] è un generatore di liste e la sua sintassi è Table[<espressione>, {k,kmin,kmax,kstep}]. In questo costrutto k è un iteratore che prende valori nell'intervallo discreto kmin, kmax, mentre kstep assegna il passo. Per default è kmin=kstep=1. Cioè, se scriviamo Table[<espressione>, {k,kmax}], Mathematica restituisce i valori assunti da expr per kstep variabile da 1 a kmax con passo 1.
Ciò premesso, definiamo la seguente funzione ricorsiva:

mathematica,matematica

Il valore assunto da tale funzione in n=0 sia:

mathematica,matematica

Qui abbiamo fatto uso del terminatore ; che impedisce la visualizzazione dell'output. Utilizziamo il comando Table per determinare i valori assunti da f in un assegnato intervallo discreto. Abbiamo così generato una successione per ricorsione (si pensi ai numeri di Fibonacci).

(altro…)