Anonymous user
Roots of a function: Difference between revisions
m
→{{header|Tcl}}
(→{{header|Tcl}}: balanced angle bracket, added puts call) |
m (→{{header|Tcl}}) |
||
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}} {▼
▲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
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>
Result and timing:
<pre>/Tcl $ time ./froots.tcl
|