Bill Page wrote:
>
> This returns 0 in FriCAS but of course it not defined at x=0. Other
> systems, for example Maple, define
>
> signum(x) == abs(x)/x
>
> and
>
> signum(1,x) == D(signum(x),x)
>
> then
>
> D(signum(1,x),x) = signum(1,x)
>
> with signum(1,x) begin a function that is 0 everywhere except undefined at 0.
>
> What would be required to support derivatives like this (and other
> related functions such as Dirac delta and Heaviside step function)?
> Is there something like this already hidden somewhere in FriCAS?
If you mean support for derivatives of "jumpy" functions, this
is reasonable easy. Namely, we need to add 'signum' and
'diracDelta' to standard operators and define new functions
(this is very much like current definition of 'abs'). Then
we need to define derivatives:
D(abs(x), x) = signum(x)
D(signum(x), x) = diracDelta(x)
and derivatives of 'diracDelta' would remain in symbolic
form. Such definitions are sound and cause no special
trouble. However, with such definitions we would
have 'D(abs(x)/x) = (signum(x)*x - abs(x))/x^2)'.
Adding relation 'signum(x) = abs(x)/x' from the formula
above we would get 0. Using this result we would then
get diracDelta(x) = D(signum(x), x) = D(abs(x)/x) = 0.
We could try to define:
D(abs(x), x) = signum(x) + x*diracDelta(x)
Then the calculation above would return expected result.
Analytically 'x*diracDelta(x)' is zero. So it is acceptable
definition. OTOH it is troubling that we must add such
terms to get wanted results. Also, it is not clear how
this would work for other formulas.
Core problem is that multiplication of distributions is
a partial, non-associative function. So it is impossible
to put distributions inside a ring. Since our expression
manipulation works inside a ring this is serious problem.
What can be done is building bigger ring, such that
distributions may be considered image of subset of this
ring by appropriate equvalence relation. To be more
concrete, AFAICS other system for algebraic computations
treat 'diracDelta(x)' as a transcendetal element, that
is treat it as a new variable. This completely ignores
relation 'x*diracDelta(x) = 0'. Only expressions linear
in 'diracDelta' may be considered as distributions and
to equality as distributions we need the relation
'x*diracDelta(x) = 0'.
Anyway, hacky partial support for 'diracDelta' is easy
to add. But to make it realy useful without producing
contradictory results is more tricky. Note that
'without contradictory results' means that we allow
things which are nonsense from point of view of theory
of distributions, as long as this nonsense does not
lead to contradiction. For example integrator should
handle linear combinations of 'diracDelta', but
reject nonlinear expressions. Relations like
'abs(x) = signum(x)*x' are likely to cause trouble.
--
Waldek Hebisch
[email protected]
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.