Roots of a function: Difference between revisions

Content added Content deleted
Line 1,633: Line 1,633:


func f(x: float): float = x ^ 3 - 3 * x ^ 2 + 2 * x
func f(x: float): float = x ^ 3 - 3 * x ^ 2 + 2 * x

var step = 0.01
var step = 0.01
var start = -1.0
var start = -1.0
var stop = 3.0
var stop = 3.0

var sign = f(start) > 0
var sign = f(start) > 0
var x = start


var x = start
while x <= stop:
while x <= stop:
var value = f(x)
var value = f(x)

if value == 0:
if value == 0:
echo fmt"Root found at {x:.5f}"
echo fmt"Root found at {x:.5f}"
elif (value > 0) != sign:
elif (value > 0) != sign:
echo fmt"Root found near {x:.5f}"
echo fmt"Root found near {x:.5f}"
sign = value > 0
sign = value > 0

x += step</lang>
x += step</lang>