Hi Burcin,

On Wed, Jul 8, 2009 at 11:02 AM, Burcin Erocal<bur...@erocal.org> wrote:
>> (2)  New D derivative operator does not know how to act
>> on symbolic integration ( #6465 ). So right now it is not
>> possible to compute  "S.diff(epsilon)"
>>
>> I have spent last two days in trying to fix this. I believe
>> this is much more serious issue than the previous one
>> and this requires changes in both pynac and sage.
>> Pynac needs to check for special differentiation rules for
>> function like "integrate( f(x,y), x)" before applying chain rules.
>> Current "_derivative_" method of SFunction class is inadequate
>> for this as it is called after chain rule has been applied.
>
>
> <snip>
>> So, I guess (1) and (2)  need real work mostly in pynac.  I was
>> glancing through ginac code. Ginac seems to apply diff() method
>> properly to its own integral() method.
>
> Do you think it's worth wrapping the integral class from pynac instead
> of creating a new SFunction called integral?

Not really. See below for my comments.


> Maybe we can arrange things so that I make the necessary changes in
> pynac, and you work with a new package and write the Sage code on top
> of that.
>
> I started putting alpha pynac packages here
>
> http://sage.math.washington.edu/home/burcin/pynac/
>
> during SD16. E.g., pynac-0.1.9.a1.spkg was meant to be used for
> merging the SFunction and PrimitiveFunction classes.
>
> If you share your code creating an SFunction called 'integral', I can
> produce patches for Sage and pynac to special case that function when
> computing derivatives. (Much like what is done for Order in the pynac
> code right now.)


I agree, we need something like Order in pynac.  My suggestions are
following:

Let's have a new method for SFunction class say

_diff_derivative_

Pynac should check first whether this method is defined. If not
then it can go ahead with chain rule for its arguments.

"_diff_derivative_" can be very similar to current "_derivative_"
method. Instead of passing  "diff_param" keyword it should
pass "diff_var" keyword

This would be backward compatible.

This will solve not only the current issue but it will have
wider applications. In future, it would allow Sage users
to define their own custom differentiation rule for their
symbolic functions.

If you implement above in pynac then I can replicate
the same in sage.


Cheers,
Golam

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to