madM has asked for the wisdom of the Perl Monks concerning the following question:
my @matrix =( [0.54, 0.03, 0.03, 0.03, 0.08, 0.04, 0.05, 0.05, 0.02, 0.02, 0.03, 0.0 +4, 0.03, 0.01, 0.06, 0.11, 0.06, 0.01, 0.01,0.06], [0.02, 0.57, 0.03, 0.01, 0.02, 0.06, 0.03, 0.01, 0.04, 0.01, 0.01, 0.1 +1, 0.02, 0.01, 0.01, 0.02, 0.02, 0.01, 0.01, 0.01], [0.01, 0.02, 0.48, 0.06, 0.01, 0.03, 0.03, 0.03, 0.05, 0.01, 0.01, 0.0 +3, 0.01, 0.00, 0.01, 0.04, 0.03, 0.00, 0.02, 0.01], [0.02, 0.01, 0.09, 0.57, 0.01, 0.04, 0.11, 0.02, 0.03, 0.00, 0.00, 0.0 +3, 0.01, 0.00, 0.02, 0.04, 0.02, 0.00, 0.01, 0.00], [0.01, 0.00, 0.00, 0.00, 0.57, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.0 +0, 0.00, 0.01, 0.00, 0.01, 0.01, 0.01, 0.01, 0.01], [0.02, 0.04, 0.03, 0.02, 0.01, 0.42, 0.05, 0.01, 0.04, 0.01, 0.01, 0.0 +5, 0.02, 0.00, 0.01, 0.02, 0.02, 0.01, 0.01, 0.01], [0.04, 0.04, 0.05, 0.13, 0.01, 0.11, 0.52, 0.02, 0.03, 0.01, 0.01, 0.0 +7, 0.01, 0.00, 0.02, 0.04, 0.04, 0.01, 0.01, 0.01], [0.05, 0.02, 0.05, 0.03, 0.02, 0.02, 0.02, 0.77, 0.02, 0.00, 0.00, 0.0 +2, 0.01, 0.00, 0.01, 0.04, 0.01, 0.01, 0.00, 0.01], [0.01, 0.01, 0.02, 0.01, 0.01, 0.02, 0.01, 0.00, 0.54, 0.00, 0.00, 0.0 +1, 0.01, 0.02, 0.01, 0.01, 0.01, 0.02, 0.04, 0.00], [0.02, 0.01, 0.01, 0.00, 0.03, 0.01, 0.01, 0.00, 0.01, 0.50, 0.10, 0.0 +1, 0.09, 0.04, 0.01, 0.01, 0.03, 0.02, 0.01, 0.18], [0.03, 0.02, 0.01, 0.01, 0.03, 0.03, 0.01, 0.00, 0.02, 0.13, 0.60, 0.0 +2, 0.19, 0.09, 0.02, 0.02, 0.02, 0.02, 0.03, 0.08], [0.03, 0.14, 0.06, 0.03, 0.01, 0.09, 0.06, 0.02, 0.05, 0.01, 0.01, 0.5 +0, 0.02, 0.01, 0.02, 0.04, 0.03, 0.01, 0.01, 0.01], [0.01, 0.01, 0.00, 0.00, 0.01, 0.02, 0.00, 0.00, 0.01, 0.03, 0.05, 0.0 +1, 0.42, 0.02, 0.00, 0.01, 0.01, 0.01, 0.01, 0.02], [0.01, 0.01, 0.00, 0.00, 0.02, 0.01, 0.00, 0.00, 0.03, 0.02, 0.04, 0.0 +0, 0.04, 0.61, 0.00, 0.01, 0.01, 0.07, 0.14, 0.01], [0.03, 0.01, 0.01, 0.01, 0.00, 0.01, 0.01, 0.01, 0.02, 0.00, 0.01, 0.0 +1, 0.01, 0.00, 0.72, 0.03, 0.01, 0.00, 0.00, 0.01], [0.07, 0.03, 0.06, 0.04, 0.05, 0.04, 0.03, 0.03, 0.02, 0.01, 0.01, 0.0 +4, 0.02, 0.01, 0.04, 0.43, 0.09, 0.02, 0.01, 0.01], [0.04, 0.02, 0.04, 0.02, 0.04, 0.03, 0.03, 0.01, 0.02, 0.02, 0.02, 0.0 +3, 0.03, 0.01, 0.02, 0.09, 0.52, 0.01, 0.01, 0.04], [0.00, 0.00, 0.00, 0.00, 0.01, 0.00, 0.00, 0.00, 0.01, 0.00, 0.00, 0.0 +0, 0.00, 0.02, 0.00, 0.00, 0.00, 0.71, 0.02, 0.00], [0.00, 0.01, 0.01, 0.00, 0.01, 0.01, 0.00, 0.00, 0.05, 0.01, 0.01, 0.0 +1, 0.01, 0.10, 0.00, 0.01, 0.01, 0.06, 0.61, 0.01], [0.05, 0.01, 0.01, 0.01, 0.07, 0.02, 0.02, 0.01, 0.01, 0.20, 0.07, 0.0 +1, 0.06, 0.03, 0.01, 0.02, 0.06, 0.02, 0.02, 0.51]); my @frequency = ([0.08477395, 0.05103334, 0.03837665, 0.05740129, 0.01 +256165, 0.03471746, 0.06883297, 0.07907659, 0.02077239, 0.06813598, 0.08906677, 0.06501537 +, 0.02318017, 0.03823936, 0.04036729, 0.05668318, 0.05721648, 0.00871765 +, 0.02785317, 0.07797831]); my $mutrate=0; my $matrix2={}; my $e; $e=1;$e/=2 while $e/2+1>1; my @PAM1= @matrix; my @lnPAM1=(); LINE: for (my $i=0; $i<20; $i++){ for (my $j=0; $j<20; $j++){ if ($matrix[$i][$j] > 0){ $lnPAM1[$i][$j] = log $matrix[$i][$j]; }else{ next LINE; } } } for (my $i=0; $i<20; $i++){ $mutrate += $frequency[0][$i]*(1-$matrix[$i][$i]); } my $k=1; my $iter = 0; while (($mutrate-0.01) > $e){ $iter++; $k= $k * $mutrate * 100; for (my $i=0; $i<20; $i++){ for (my $j=0; $j<20; $j++){ $lnPAM1[$i][$j]= ($lnPAM1[$i][$j]) /($mutrate*100); $PAM1[$i][$j]=exp($lnPAM1[$i][$j]); } } for (my $i=0; $i<20; $i++){ $mutrate += $frequency[0][$i]*(1-$PAM1[$i][$i]); } print " iteration: $iter, k: $k, MutationRate:$mutrate\n"; }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Use of uninitialized value
by farang (Chaplain) on Aug 11, 2013 at 05:14 UTC | |
Re: Use of uninitialized value
by frozenwithjoy (Priest) on Aug 11, 2013 at 04:45 UTC | |
Re: Use of uninitialized value
by 5mi11er (Deacon) on Aug 11, 2013 at 03:24 UTC | |
by madM (Beadle) on Aug 11, 2013 at 03:37 UTC | |
Re: Use of uninitialized value
by BillKSmith (Monsignor) on Aug 11, 2013 at 13:29 UTC |