'at' simplification



But I gave 'at' a verb. Shouldn't 'at' then assume that all dependencies are included and that g(x) does not depend on y (and therefore it can drop the [y=1] restriction)?

I would expect a different result for 
at(diff(g(x),x),[y=1]);   

and

at('diff(g(x),x),[y=1]);

Also: does depends() change the verb diff to a noun?

Does this mean 'at' assumes all input is a noun? 




Date: Sun, 8 Apr 2012 17:37:19 -0400
Subject: Re: [Maxima] 'at' simplification
From: macrakis at alum.mit.edu
To: nijso at hotmail.com; fateman at eecs.berkeley.edu
CC: Maxima at math.utexas.edu

Agreed with Fateman, but a bit more explanation may be useful.

The verb 'diff' assumes that all dependencies are included:

       diff( y,x ) => 0                 diff( f(y), x ) => 0

Explicit dependencies can be declared with "depends":

        depends(q,r)$        diff(q,r) => 'diff(q,r)

The noun 'diff' does not; on the contrary, it assumes that any variables can later be substituted for:

        'diff(y,x) => 'diff(y,x)
        'diff(f(y),x) => 'diff(f(y), x)

This corresponds to standard mathematical notation, where dy/dx is not normally taken to be 0.

"At" cannot assume differently in general, but I can see that it would be useful in many cases to tell Maxima that g(x) does not depend on y for the purposes of "diff" and "at".  I suppose the easiest way to do that would be with simplification rules on diff and at.

Another limitation of the "at" scheme is that it is sensitive to the variable name:

           at(diff(f(x),x),x=0)-at(diff(f(y),y),y=0)

does not simplify to 0.  The positional derivative package (pdiff) probably handles things like this better, but I am no expert in it.

              -s

On Sun, Apr 8, 2012 at 17:18, Richard Fateman <fateman at eecs.berkeley.edu> wrote:


  
    
  
  
    On 4/8/2012 11:58 AM, nijso beishuizen wrote:
    
      
      
        Dear all,

        

        This:

        

        at(diff(g(x),x),[y=1]) - at(diff(g(x),x),[y=0])

        

        should result in 0. Is there a (built-in) way to achieve this?
    
    no, because if g(x):=x*y

    it is false.

    

    
       I would expect that 'at' (or some simplification
        function) would recognize that the expression is independent of
        y.

      
      

      
      

      _______________________________________________
Maxima mailing list
Maxima at math.utexas.edu
http://www.math.utexas.edu/mailman/listinfo/maxima

    
    

  


_______________________________________________

Maxima mailing list

Maxima at math.utexas.edu

http://www.math.utexas.edu/mailman/listinfo/maxima