#7377: Symbolic Ring to Maxima via EclObject
-----------------------------------------------------------------------+----
   Reporter:  nbruin                                                   |       
Owner:  nbruin      
       Type:  enhancement                                              |      
Status:  needs_work  
   Priority:  major                                                    |   
Milestone:  sage-feature
  Component:  symbolics                                                |    
Keywords:              
     Author:  Nils Bruin, Jean-Pierre Flori                            |    
Upstream:  N/A         
   Reviewer:  Jean-Pierre Flori, François Bissey, Karl-Dieter Crisman  |      
Merged:              
Work_issues:                                                           |  
-----------------------------------------------------------------------+----

Comment(by nbruin):

 >  desolver
 This might be not so bad.

 The main thing there is that the call forms for "desolve" are rather
 complicated, because there are all kinds of auxiliary arguments.
 to_poly_solve had a similar problem. I solved that by declaring an
 explicit to_poly_solve method on maxima_lib.MaximaElement.

 Probably just parsing the optional arguments and putting them together in
 the right kind of structure (see to_poly_solve for an example) solves most
 problems.

 I don't know how bad the structures are that come back from desolve, but
 for most cases I have had surprisingly little problems in that direction.

 > abstract derivative

 The whole {{{D[0](f)}}} syntax needs separate treatment. I realized later
 that currently, only
 {{{D[i,j,k](f)(x1,x2,...,xn)}}} is allowed if {{{x1,...,xn}}} are distinct
 symbolic variables. This surprised me a bit. Sage support for functional
 derivatives is only rudimentary.

 I think that if we have an expression: {{{D[i0,...,ir](f)(e0,...,en)}}},
 we should just do
 {{{diff( f(t0,...,tn), [[t0,...,tn][i] for i in
 [i0,...,ir]]).subs({t0:e0,...,tn:en})}}}
 i.e., introduce temporary variables t0,...,tn to take the appropriate
 derivate relative to named variables and then specialize to the evaluation
 point requested. Is there a reason this approach has not been taken? Just
 lack of need/implementation time?

 In Maxima one can take exactly the same approach:
 {{{
 at(diff( f(t0,t1,t2,t3) , t0,1,t1,1,t0,1 ), [t0=e0,t1=e1,t2=e2])
 }}}
 the documentation of at is scary: substitutions are done in series, not in
 parallel. That's basically a bug given the intended use of the routine,
 even though it is documented behaviour. However, if we make sure that our
 temporary variables are truly unique, there should be no problem. Perhaps
 call {{{gensym}}}.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/7377#comment:54>
Sage <http://www.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