Posted to tcl by emiliano at Tue Mar 02 13:43:00 GMT 2010view pretty

--- calculus.tcl.orig	2010-03-02 10:26:56.000000000 -0300
+++ calculus.tcl	2010-03-02 10:41:43.000000000 -0300
@@ -305,7 +305,8 @@
 #
 proc ::math::calculus::eulerStep { t tstep xvec func } {
 
-   set xderiv   [uplevel 1 $func $t [list $xvec]]
+   set funq     [uplevel 1 namespace which -command $func]
+   set xderiv   [$funcq $t $xvec]
    set result   {}
    foreach xv $xvec dx $xderiv {
       set xnew [expr {$xv+$tstep*$dx}]
@@ -373,10 +374,10 @@
    #
    # Four steps:
    # - k1 = tstep*func(t,x0)
-   # - k2 = tstep*func(t+0.5*tstep,x0+0.5*k1)
-   # - k3 = tstep*func(t+0.5*tstep,x0+0.5*k2)
-   # - k4 = tstep*func(t+    tstep,x0+    k3)
-   # - x1 = x0 + (k1+2*k2+2*k3+k4)/6
+   # - k2 = tstep*func(t+0.5*tstep,x0+0.5*tstep*k1)
+   # - k3 = tstep*func(t+0.5*tstep,x0+0.5*tstep*k2)
+   # - k4 = tstep*func(t+    tstep,x0+    tstep*k3)
+   # - x1 = x0 + tstep*(k1+2*k2+2*k3+k4)/6
    #
    set tstep2   [expr {$tstep/2.0}]
    set tstep6   [expr {$tstep/6.0}]