#6756: [with patch, needs review] Implement ``diff`` format symbolic derivative 
in
new symbolics
-------------------------+--------------------------------------------------
 Reporter:  gmhossain    |       Owner:                       
     Type:  enhancement  |      Status:  new                  
 Priority:  major        |   Milestone:                       
Component:  symbolics    |    Keywords:                       
 Reviewer:               |      Author:  Golam Mortuza Hossain
   Merged:               |  
-------------------------+--------------------------------------------------

Comment(by ncalexan):

 I am interested in reviewing this, but I'm not sure that I can at this
 time.  I have a heavily modified {{{Sage Version 4.1.rc1, Release Date:
 2009-07-07}}} tree that I can't really upgrade right now.  I have applied
 this patch and installed your modified spkg.  I am getting the following
 doctest failures

 {{{
 -*- mode: sage-test; default-directory: "~/sage-4.1-OSX-10.5-Intel-
 64bit-i386-Darwin/devel/sage-main/sage/symbolic/" -*-
 sage-test started at Fri Aug 21 10:18:46

 /Users/ncalexan/bin/sage -b >/dev/null && /Users/ncalexan/bin/sage -tp 4
 /Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel/sage-
 main/sage/symbolic/derivative.py

 real    0m2.361s
 user    0m1.297s
 sys     0m0.591s
 Global iterations: 1
 File iterations: 1
 Using cached timings to run longest doctests first.
 Doctesting 1 files doing 4 jobs in parallel
 sage -t  derivative.py
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 51:
     sage: f(x).diff(x)
 Expected:
     diff(f(x), x, 1)
 Got:
     D[0](f)(x)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 53:
     sage: diff(f(x), x, 1)
 Expected:
     diff(f(x), x, 1)
 Got:
     D[0](f)(x)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 68:
     sage: h.diff(x)
 Expected:
     diff(f(x), x, n + 1)
 Got:
     D[0](diff)(f(x), x, n)*D[0](f)(x) + D[1](diff)(f(x), x, n)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 112:
     sage: f(x^2).diff(x)
 Expected:
     diff(f(x^2), x, 1)
 Got:
     2*x*D[0](f)(x^2)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 118:
     sage: f(x^2).diff(x)
 Expected:
     2*x*diff(f(x^2), x^2, 1)
 Got:
     2*x*D[0](f)(x^2)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 121:
     sage: f(sin(x^2)).diff(x)
 Expected:
     2*x*cos(x^2)*diff(f(sin(x^2)), sin(x^2), 1)
 Got:
     2*x*D[0](f)(sin(x^2))*cos(x^2)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 124:
     sage: g(x,f(x)).diff(x)
 Expected:
     diff(f(x), x, 1)*diff(g(x, f(x)), f(x), 1) + diff(g(x, f(x)), x, 1)
 Got:
     D[0](f)(x)*D[1](g)(x, f(x)) + D[0](g)(x, f(x))
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 129:
     sage: symbolic_diff(f(x^2), x, 1)
 Expected:
     diff(f(x^2), x, 1)
 Got:
     2*x*D[0](f)(x^2)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 138:
     sage: g(x,x).diff(x)
 Expected:
     2*diff(g(x, x), x, 1)
 Got:
     D[0](g)(x, x) + D[1](g)(x, x)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 147:
     sage: h = f(x).diff(x); h
 Expected:
     diff(f(x), x, 1)
 Got:
     D[0](f)(x)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 149:
     sage: h.subs(f(x)==x^4)
 Expected:
     4*x^3
 Got:
     D[0](f)(x)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 155:
     sage: h = f(x^2).diff(x); h
 Expected:
     2*x*diff(f(x^2), x^2, 1)
 Got:
     2*x*D[0](f)(x^2)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 157:
     sage: h.subs(f(x^2)==x^4)
 Expected:
     4*x^3
 Got:
     2*x*D[0](f)(x^2)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 159:
     sage: symbolic_diff(f(x)^2, f(x), 1)
 Expected:
     2*f(x)
 Got:
     diff(f(x)^2, f(x), 1)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 186:
     sage: h = f(x).diff(x) + f(x^2).diff(x); h
 Expected:
     2*x*diff(f(x^2), x^2, 1) +  diff(f(x), x, 1)
 Got:
     2*x*D[0](f)(x^2) + D[0](f)(x)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 217:
     sage: f(x,y).diff(x,y)
 Expected:
     diff(f(x, y), x, 1, y, 1)
 Got:
     D[0, 1](f)(x, y)
 **********************************************************************
 File "/Users/ncalexan/sage-4.1-OSX-10.5-Intel-64bit-i386-Darwin/devel
 /sage-main/sage/symbolic/derivative.py", line 219:
     sage: f(x,y).diff(x,2)
 Expected:
     diff(f(x, y), x, 2)
 Got:
     D[0, 0](f)(x, y)
 **********************************************************************
 2 items had failures:
   15 of  40 in __main__.example_1
    2 of  10 in __main__.example_2
 ***Test Failed*** 17 failures.
 For whitespace errors, see the file /Users/ncalexan/sage-4.1-OSX-10.5
 -Intel-64bit-i386-Darwin/tmp/.doctest_derivative.py
          [3.8 s]

 ----------------------------------------------------------------------

 The following tests failed:

         sage -t  devel/sage-main/sage/symbolic/derivative.py # 17 doctests
 failed
 ----------------------------------------------------------------------
 Total time for all tests: 4.1 seconds

 sage-test finished with failing tests at Fri Aug 21 10:18:53
 }}}

 When I work from the command line, I get things like
 {{{
 sage: default_level=set_diff_derivative_level()
 sage: set_diff_derivative_level(1)
 sage: f(x) = function('f', x)
 ---------------------------------------------------------------------------
 TypeError                                 Traceback (most recent call
 last)

 
/Users/ncalexan/.sage/temp/mero.local/93112/_Users_ncalexan__sage_init_sage_1.py
 in <module>()

 /Users/ncalexan/sage-4.1-OSX-10.5-Intel-
 64bit-i386-Darwin/local/lib/python2.6/site-packages/sage/calculus/var.so
 in sage.calculus.var.function (sage/calculus/var.c:709)()

 /Users/ncalexan/sage-4.1-OSX-10.5-Intel-
 64bit-i386-Darwin/local/lib/python2.6/site-
 packages/sage/symbolic/function.so in
 sage.symbolic.function.SFunction.__call__
 (sage/symbolic/function.cpp:4655)()

 TypeError: Symbolic function f takes exactly 2 arguments (1 given)
 }}}

 So there must be some calculus or symbolic patches that I'm missing.  Any
 suggestions?

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6756#comment:2>
Sage <http://sagemath.org/>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to