// 5.12.js // 2024-09-07 // $Id: 5.12.js 1.1 2024/11/02 12:03:34 s Exp $ // // df : discount factor // d : dividend // r : interest rate // g : growth rate // v : value of the company 'use strict' // function const sum = (x, y) => x + y; // input const n = 5; const r = 0.15; const g1 = 0.10; // for the next 5 years const g2 = 0.05; // thereafter const d0 = 10000; let i = []; for(let j = 0; j < n; j++){ i[j] = j; }; // calculating const d1 = d0 * (1 + g1); const df = i.map((_, j) => 1 / (1 + r) ** (j + 1)); const v5 = df.map((_, j) => d1 * ((1 + g1) ** j) * df[j]).reduce(sum); const d5 = d1 * (1 + g1) ** 4; const v6 = (1 + g2) * d5 / (r - g2) / (1 + r) ** 5; const v0 = v5 + v6; // output console.log('5.12.js'); console.log("r", r); console.log("g1", g1); console.log("g2", g2); console.log("d0", d0); console.log("d1", d1); console.log("df"); df.forEach((x,i) => console.log(i, x.toFixed(3))); console.log("v5", v5.toFixed(0)); console.log("d5", d5.toFixed(0)); console.log("v6", v6.toFixed(0)); console.log("v0", v0.toFixed(0)); // end