#!/usr/bin/perl -w use 5.034; my $DEBUG = 1; my $perpet = 0.001; my ($g, $p) = (10, 6); # years in generation and parts (number of $g) my @interest = ($perpet,0.01,0.015,0.02,0.025); my @probab = qw(0.8 0.10 0.04 0.03 0.02 0.01); # corto, corto-largo y largo plazo my $c = 1; # capital my $x; # tasa de interés simple de mejora de capital my $xopt; my $eps = 0.00001; # más de una millonésima en tanto por uno my $min; my $ii; my $y; my $prob; for my $i (@interest){ # los intereses normales y la perpetuidad $ii = (1+$i)**$g -1; # interés equivalente de la generación - 10 my $n=1; while ($n <= $p) { $min = 9e99; $y = 0; # loop para ver $x <=> $ii que iguale diferentes $n $x = rand()/10; $prob = $probab[$n-1]; my $z; while (1){ $z = $prob * $c * (1 + $g * $x)/ (1+$ii)**$n ; $y += $z; if (abs($y - $c) <= $min){ $min = abs($y - $c); $xopt = $x ; say "$i $n) $ii -> $x Error = $min"; last if ($min < $eps); }else{ $y -= $z; $x += (rand()-0.5)/10; } } $n++; say "-" x 80; sleep 1; } } exit 2;