Home > Code Dump > Finding Roots using Change of Sign Method

Finding Roots using Change of Sign Method

Something I threw together for use in my maths coursework using PHP
By 28/12/10 [Last Edited by Joseph 05/02/11]
BOOKMARK
LOGIN
REGISTER
<?php
//Designed to be run from a web server and displayed to a web browser
$lower = -2;
//Lower end of the interval
$higher = -1;
//Higher end of the interval
$decStep = 0.1;
//The starting iteration/step
$passes = 35;
//Number of times to repeat
$prevx = $lower;
$x = $lower + $decStep;

function f($x) {
	return (-4*pow($x,3))+(12*$x)-5;
       //Adjust the above line to suit the required function
}

for ($i=0; $i <= $passes; $i++) {
	echo 'x = '.$prevx.' f(x) = '.f($prevx).'<br />';
	if (f($x) * f($prevx) < 0) {
		echo '<br /><br />***Found change of sign between '.$prevx.' and '.$x;
		$lower = $prevx;
		$higher = $x;
		$decStep = $decStep / 10;
		echo '***Lower = '.$lower.' Higher = '.$higher.' Step = '.$decStep.'<br /><br />';
		$x = $lower + $decStep;
	} else {
		$prevx = $x;
		$x = $x + $decStep;
	}
}
?>