Resistor mesh: Difference between revisions

Content added Content deleted
m (→‎{{header|Perl}}: dial back precision)
Line 1,451: Line 1,451:
{{trans|C}}
{{trans|C}}
<lang perl>use strict;
<lang perl>use strict;
use warnings;


my ($w, $h) = (9, 9);
my ($w, $h) = (9, 9);
Line 1,487: Line 1,488:
sub iter {
sub iter {
my $diff = 1;
my $diff = 1;
while ($diff > 1e-24) { # 1e-24 is overkill (12 digits of precision)
while ($diff > 1e-15) {
set_boundary();
set_boundary();
$diff = calc_diff();
$diff = calc_diff();
print "error^2: $diff\r";
#print "error^2: $diff\n"; # un-comment to see slow convergence
for my $i (0 .. $h) {
for my $i (0 .. $h) {
for my $j (0 .. $w) {
for my $j (0 .. $w) {
Line 1,497: Line 1,498:
}
}
}
}
print "\n";


my @current = (0) x 3;
my @current = (0) x 3;
Line 1,509: Line 1,509:
}
}


print "R = @{[2 / iter()]}\n";</lang>
printf "R = %.6f", 2 / iter();</lang>


=={{header|Perl 6}}==
=={{header|Perl 6}}==