#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: |
-------------------------+--------------------------------------------------
Changes (by newvalueoldvalue):
* author: => Golam Mortuza Hossain
Old description:
> Implement diff format symbolic derivative in new symbolics as the second
> form of abstract derivative to be avialable in Sage. See this long thread
>
> http://groups.google.com/group/sage-
> devel/browse_thread/thread/ff10f99729a74eea/73308bf626ae06b3
>
> for rationale behind it.
New description:
Implement a diff format symbolic derivative in new symbolics as the second
form of abstract derivative to be avialable in Sage. See this long thread
http://groups.google.com/group/sage-
devel/browse_thread/thread/ff10f99729a74eea/73308bf626ae06b3
for rationale behind it.
'''Implementation:'''
Instructions for installing these patches (sage-4.1.1)
'''(1) Pynac patch'''
(a) Get the pynac spkg
http://sage.math.washington.edu/home/burcin/pynac/pynac-0.1.8.p2.spkg
(b) Apply the pynac patch implementing diff derivative from
http://www.math.unb.ca/~ghossain/diff-derivative-pynac.patch
(c) install the patched spkg in Sage.
'''OR''' if you are feeling lazy, you can directly install my patched
copy of pynac from here
http://www.math.unb.ca/~ghossain/pynac-0.1.8.p2-with-diff.spkg
'''(2) Sage patch:'''
Apply the attached patch in Sage and build the changes ("sage -b").
If everything goes smoothly then you are ready for testing.
'''Testing:'''
Above, patches will provide two new user accessible functions
(a) ``set_diff_derivative_level``
(b) ``symbolic_diff``
Please see the docs for usage of these functions:
It would be good to thoroughly test the following features:
(1) Substitution of the function
(2) Derivative with or without chain rule
(3) Explicit evaluation of derivative even for some situation where chain
rule has been applied and derivative is specified w.r.t. an expression
(4) Symbolic n-th derivative
(5) Typesetting
Please test diff implementation against some related bugs
#6376, #6523, #6480
as new diff implementation should avoid these.
'''Speed Test:'''
{{{
sage: f(x) = function('f',x);
sage: f(x).diff(x)
D[0](f)(x)
sage: timeit('f(x).diff(x)')
625 loops, best of 3: 124 µs per loop
sage: timeit('f(x).diff(x,100)')
125 loops, best of 3: 5.58 ms per loop
sage: set_diff_derivative_level(1)
sage: f(x).diff(x)
diff(f(x), x, 1)
sage: timeit('f(x).diff(x)')
625 loops, best of 3: 116 µs per loop
sage: timeit('f(x).diff(x,100)')
625 loops, best of 3: 1.01 ms per loop
sage: set_diff_derivative_level(2)
sage: f(x).diff(x)
diff(f(x), x, 1)
sage: timeit('f(x).diff(x)')
625 loops, best of 3: 130 µs per loop
sage: timeit('f(x).diff(x,100)')
125 loops, best of 3: 1.85 ms per loop
}}}
'''*''' This patch removes old "dummy_diff" from
"calculus/calculus" as we now have a _real_ diff.
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6756#comment:1>
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
-~----------~----~----~----~------~----~------~--~---