#6756: [with patch, needs work] Implement ``diff`` format symbolic derivative in
new symbolics
----------------------------+-----------------------------------------------
Reporter: gmhossain | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: symbolics | Keywords:
Reviewer: Nick Alexander | Author: Golam Mortuza Hossain
Merged: |
----------------------------+-----------------------------------------------
Comment(by burcin):
It seems that applying chain rule to these inert derivatives can lead to
wrong answers:
{{{
sage: f = function('f')
sage: set_diff_derivative_level(2)
sage: f(y,y).diff(y,1)
2*diff(f(y, y), y, 1)
}}}
Compare with the answer we get now:
{{{
sage: set_diff_derivative_level(0)
sage: f(y,y).diff(y,1)
D[0](f)(y, y) + D[1](f)(y, y)
}}}
This example is from p. 26 (second page) in
{{{
Wester, M. and Steinberg, S. 1983. An extension to MACSYMA's concept of
functional differentiation.
SIGSAM Bull. 17, 3-4 (Aug. 1983), 25-30.
}}}
You can get the article here: http://doi.acm.org/10.1145/1089338.1089343
It was the first reference on the paper mentioned by RJF in this post:
http://groups.google.com/group/sage-devel/msg/6db333cbf8ea0a53
The paper RJF cites is
{{{
Golden, J. P. 1985. Differentiation of unknown functions in MACSYMA.
SIGSAM Bull. 19, 2 (May. 1985), 19-24.
}}}
which you can get here:
http://doi.acm.org/10.1145/1089402.1089405
I suggest removing the chain rule from this implementation altogether and
keeping it as an alternative ''inert'' derivative. Then the implementation
can be moved within the Sage library completely as a subclass of
SFunction. We should also implement conversions between the partial
derivative format and this one. This page gives a recipe on how this can
be done:
http://209.85.129.132/search?q=cache%3Ahttp%3A%2F%2Fwww.mapleprimes.com%2Fforum
%2Fd-diff-conversion%23comment-8243
(The link points to the google cache since mapleprimes.com is down.)
Nick, if you give examples of how you want pattern matching on derivatives
to work, we can see how to make the current implementation support these.
Pattern matching capabilities of `fderivative` in GiNaC definitely need to
be improved. Looking at what functionality maple and MMA provides could
also help.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6756#comment:10>
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
-~----------~----~----~----~------~----~------~--~---