ambrosini.us

Historical teaching note · 2006-01 · restored from archived Blogger HTML

Crappy bisection method implementation

$a = 0; $b = 1; $tol = .01; $max_iters = 10; sub f { my $x = shift; return $x*$x*$x - 7*$x*$x + 14*$x - 6; } $i = 1; $FA = f($a); while ($i < $max_iters +1) { $p = $a + ($b - $a)/2; $FP = f($p); print "a - ", $a, " p - ", $p, " b - ", $b, "\n"; if ($FP == 0 || ($b - $a)/2 < $tol) { exit; } $i++; if ($FA * $FP > 0) { $a = $p; $FA = $FP; } else { $b = $p; } }