x=read.table(file="input_piano_investimento_04_03_09.txt",sep=";",header=F) #lettura da file di testo dei dati di input #esempio di file di input: #-100;10;10;10;10;110 #0;1;2;3;4;5 #ovvero nella prima riga ci sono i flussi monetari #e nella seconda i tempi corrispondenti i <- 0.1 #tasso unitario di interesse, qui nell'esempio fissato a 0.1 nu <- 1/(1+i) #variabile ausiliaria: fattore di sconto t <- 0 #tempo al quale si vuole calcolare il Valore Attuale #qui messo uguale a 0 VA <- x[1,1]*nu^(x[2,1] - t) + x[1,2]*nu^(x[2,2] - t) + x[1,3]*nu^(x[2,3] - t) + x[1,4]*nu^(x[2,4] - t) + x[1,5]*nu^(x[2,5] - t) + x[1,6]*nu^(x[2,6] - t) #calcolo del valore atteso per il progetto di investimento, #sulla base dei dati forniti VAnu = function (z) (x[1,1]*z^(x[2,1] - t) + x[1,2]*z^(x[2,2] - t) + x[1,3]*z^(x[2,3] - t) + x[1,4]*z^(x[2,4] - t) + x[1,5]*z^(x[2,5] - t) + x[1,6]*z^(x[2,6] - t)) #usando la stessa foimula, definiamo la *funzione* #"valore atteso" per il progetto di investimento dato plot(VAnu, -0.1, 1.1) #chiediamo di fare un plot della funzione valore atteso #appena definita, al variae del fattore di sconto a <- 0 b <- 1 tolleranza <- 0.0000001 while(b-a > tolleranza) { c <- (a+b)/2 if (VAnu(c) < 0) {a <- (a+b)/2} else {b <- (a+b)/2} } #metodo di bisezione per tovare IRR con errore #minore del paametro scelto ("tolleranza") TIR <- (1/c) - 1 #nella variabile TIR si inserisce il valore approssimato #trovato per il Tasso Interno di Rendimento (TIR, o IRR)