Roots of a function: Difference between revisions

m
(→‎{{header|Tcl}}: balanced angle bracket, added puts call)
Line 477:
=={{header|Tcl}}==
This simple brute force iteration marks all results, with a leading "~", as approximate.
<lang Tcl>proc froots {lambda {start -3} {end 3} {step 0.0001}} {
<lang Tcl>
proc froots {lambda {start -3} {end 3} {step 0.0001}} {
set res {}
set lastsign [sgn [apply $lambda $start]]
for {set x $start} {$x <= $end} {set x [expr {$x + $step}]} {
set sign [sgn [apply $lambda $x]]
if {$sign ne!= $lastsign} {lappend res [format ~%.11f $x]}
set lastsign $sign
}
Line 490 ⟶ 489:
proc sgn x {expr {($x>0) - ($x<0)}}
 
puts [froots {x {expr {$x**3 - 3*$x**2 + 2*$x}}}]</lang>
</lang>
Result and timing:
<pre>/Tcl $ time ./froots.tcl
Anonymous user