Algoritmi e dintorni: Ammortamento di un debito: Ricerca del tasso Prof. Ettore Limoli Ammortamento di un debito In questa nostra trattazione non ci addentreremo in problemi di matematica finanziaria o di economia ma, semplicemente, di algoritmi che ci permettono di pervenire ad una soluzione numerica di un problema. Il metodo più comunemente usato per restituire una somma che ci viene anticipata è quello così detto alla francese o a rata costante. Per restituire una somma V che ci viene prestata oggi, ci impegniamo a versare n rate costanti R allo scadere di ogni periodo k. Per stabilire l ammontare della rata R da versare si pattuisce un tasso di interesse, generalmente dato su base annua e in forma percentuale (esempio: 6% annuo). Il tasso annuo può essere un tasso nominale annuo (TAN) o effettivo (TAEG). Il TAEG tiene anche conto delle eventuali spese che vengono caricate. Il tasso nominale annuo è legato al tasso periodale i dalla semplice operazione TAN = i k, dove k è la frazione di anno: k = 2 (scadenza semestrale); k = 3 (scadenza quadrimestrale); k = 4 (scadenza trimestrale); k = 6 (scadenza bimestrale); k = 12 (scadenza mensile). Il tasso effettivo è legato al tasso periodale i dalla relazione: TAEG = (1 + i) k 1. La rata è data dall espressione: R = V i 1 (1 + i) n Questa espressione lega le quattro variabili (R, V, i, n). Noto il valore di 3 di queste variabili si può facilmente calcolare la restante. Non è di facile soluzione il problema quando l incognita è i (tasso periodale) perché non vi sono metodi algebrici per risolvere questa equazione. La determinazione di i e quindi del corrispondente TAEG ci consente di confrontare duo o più situazioni economiche differenti. Ad esempio, due diversi istituti di credito ci presentano due differenti proposte di ammortamento della stessa somma V. La diversità può essere data dall ammontare della rata R, a cui vanno aggiunte le spese fisse, dal differente periodo k o da un diverso numero di rate n. L istituto di credito ci dice che l ammortamento è calcolato secondo un certo TAN. Non si possono raffrontare differenti situazioni economiche a partire dal TAN, il raffronto va fatto solo attraverso i TAEG. L ammortamento che prevede un TAEG più alto è meno conveniente. Il metodo di sommare l ammontare di tutte le rate è totalmente errato, perché non si tiene conto che le varie rate sono esigibili in epoche diverse. In matematica finanziaria una situazione economica è una coppia ordinata (capitale, tempo). Se un capitale si sposta avanti nel tempo cresce (interesse), se si sposta indietro nel tempo decresce (sconto). Il raffronto fra diverse situazioni 1
economiche può essere fatto solo se si riportano allo stesso tempo. Nel caso di un prestito il tempo comune è quello in cui viene erogato il prestito. A tal proposito può essere utile consultare un manuale di matematica finanziaria. Ricerca del tasso periodale Partendo dall espressione di R del precedente paragrafo, possiamo determinare una funzione f(i) tale che il valore di i cercato è la soluzione positiva dell equazione f(i) = 0. Detta funzione è: Dove V +, R +, n N 0 e sono delle costanti. La f ha il seguente andamento f(i) = Vi R[1 (1 + i) n ] Si osservi che i due assi non sono isometrici (hanno differenti unità di misura). La derivata della f è data da: f (i) = V R n (1 + i) n 1 Abbiamo tutti gli elementi per usare il metodo delle tangenti di Newton al fine di determinare la soluzione positiva dell equazione f(i) = 0. La funzione iterativa di Newton è: i m+1 = i m f(i m) f (i m ) Che, utilizzando un valore d innesco sufficientemente alto (ad esempio i 0 = 0,8), convergerà rapidamente alla soluzione cercata. Seguiamo il procedimento attraverso un esempio svolto col foglio elettronico di calcolo. 2
Definiamo, per semplificare le formule, in VBA le funzioni f e la sua derivata Df. Public Function f(i As Double, R As Double, V As Double, n As Integer) As Double f = V * i - R * (1 - (1 + i) ^ (-n)) Public Function Df(i As Double, R As Double, V As Double, n As Integer) As Double Df = V - R * n * (1 + i) ^ (-n - 1) Il foglio viene preparato come segue. Le formule sono: I nomi assegnati sono: 3
La tabella X-Y è stata realizzata per ottenere il grafico di dispersione XY che visualizza l andamento della f. L algoritmo di Newton è realizzato tabulando gli step iterativi, i valori di i ottenuti con la formula iterativa di Newton, l errore di iterazione. Nell ultima colonna viene presentata la soluzione se l errore di iterazione risulta minore dell errore Er predefinito. Automatizziamo il calcolo Per automatizzare il calcolo definiamo in VBA le seguenti funzioni: Option Explicit Private Function f(i As Double, R As Double, V As Double, n As Integer) As Double f = V * i - R * (1 - (1 + i) ^ (-n)) Private Function Df(i As Double, R As Double, V As Double, n As Integer) As Double Df = V - R * n * (1 + i) ^ (-n - 1) Public Function TassoPeriodale(R As Double, V As Double, n As Integer) As Double Dim i As Double, i0 As Double Const Er = 0.000000001 R = Abs(R): V = Abs(V): n = Abs(n) i = 0.8 Do i0 = i i = i - f(i, R, V, n) / Df(i, R, V, n) Loop Until Abs(i - i0) < Er TassoPeriodale = i Per evitare che per errore siano stati inseriti valori negativi valore d innesco funzione iterativa di Newton Dove, a differenza di quanto fatto in precedenza, le funzioni f e Df sono dichiarate come funzioni private (Private Function), ossia visibili solo all interno del modulo e non all esterno. Ne segue che non possono essere usate all interno del foglio di calcolo. Solo la funzione TassoPeriodale è pubblica e quindi utilizzabile all interno del foglio di calcolo. Predisponiamo il foglio come segue: 4
Le celle [G4], [H4] e [I4] sono formattate in modo da presentare i valori in forma percentuale con due cifre decimali. Le formule sono: I nomi assegnati alle celle: Il TAN e il TAEG sono stati calcolati supponendo che la cadenza delle rate sia mensile. Alcune considerazioni sulla funzione iterativa di Newton La funzione iterativa di Newton approssima lo zero di una funzione con lo zero della tangente alla funzione in un punto opportunamente vicino. Lo zero della tangente diventa punto d innesco per l iterazione successiva. Questo comporta che non sempre si ha la convergenza (vedi figura) Per garantirci la convergenza occorre tenere presenti alcuni accorgimenti: Individuare un intervallo [a, b] ai cui estremi la funzione f assume segni diversi. Essere certi che internamente ad [a, b] cade un unico zero della funzione f. La f deve essere continua in [a, b] con le sue derivate f (prima) e f (seconda). 5
Le derivate f e f non devono annullarsi in [a, b]. Come valore d innesco si scelga l estremo di [a, b] in cui la f e la f assumono lo stesso segno, ossia: f f > 0. Per automatizzare il calcolo completamente occorre automatizzare troppi controlli. Questo rende l algoritmo poco conveniente perché i controlli e il calcolo della derivata, come calcolo approssimato, rallenterebbero eccessivamente l esecuzione della procedura. Concludiamo dicendo che questo algoritmo è particolarmente efficiente se ci limitiamo ad usarlo in quei casi in cui siamo certi della convergenza e precalcoliamo la derivata. Prof. Ettore Limoli 6