Menu

#1972 at(diff(f(x,y),x,1,y,1),[x=a,y=b]) is wrong

closed
nobody
Lisp Core (457)
5
2010-06-05
2010-05-03
No

The following is wrong. The equation y=b is substituted into the expression:

(%i7) at(diff(f(x,y),x,1,y,1),[x=a,y=b]);
(%o7) 'at('diff(f(x,b),x,1,b,1),[x = a,y = b])

The correct result is

'at('diff(f(x,y),x,1,y,1),[x = a,y = b])

The error is present since Maxima 5.20. The problem is in the routine subst-except-second-arg which has been added with revision 1.37 of comm.lisp. A trace of this routine shows the wrong subsitution:

(%i7) at(diff(f(x,y),x,1,y,1),[x=a,y=b]);
0: (SUBST-EXCEPT-SECOND-ARG $A $X
((%DERIVATIVE SIMP) (($F SIMP) $X $Y) $X 1 $Y 1))
0: SUBST-EXCEPT-SECOND-ARG returned
((%DERIVATIVE SIMP) (($F SIMP) $X $Y) $X 1 $Y 1)
0: (SUBST-EXCEPT-SECOND-ARG $B $Y
((%DERIVATIVE SIMP) (($F SIMP) $X $Y) $X 1 $Y 1))
0: SUBST-EXCEPT-SECOND-ARG returned
((%DERIVATIVE SIMP) (($F SIMP) $X $B) $X 1 $B 1)
(%o7) 'at('diff(f(x,b),x,1,b,1),[x = a,y = b])

Dieter Kaiser

Discussion

  • Dieter Kaiser

    Dieter Kaiser - 2010-06-05

    Fixed in comm.lisp revision 1.52.
    Closing this bug report as fixed.
    Dieter Kaiser

     
  • Dieter Kaiser

    Dieter Kaiser - 2010-06-05
    • status: open --> closed
     

Log in to post a comment.