#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.