12 lines
258 B
Tcl
12 lines
258 B
Tcl
|
|
proc nthroot {n A} {
|
||
|
|
set x0 [expr {$A / double($n)}]
|
||
|
|
set m [expr {$n - 1.0}]
|
||
|
|
while 1 {
|
||
|
|
set x1 [expr {($m*$x0 + $A/$x0**$m) / $n}]
|
||
|
|
if {abs($x1 - $x0) < abs($x0 * 1e-9)} {
|
||
|
|
return $x1
|
||
|
|
}
|
||
|
|
set x0 $x1
|
||
|
|
}
|
||
|
|
}
|