diff ignores some rules? Re: [Maxima] handling tellsimp'ed rules
Subject: diff ignores some rules? Re: [Maxima] handling tellsimp'ed rules
From: Richard Fateman
Date: Sun, 23 May 2004 09:32:25 -0700
first, I find the treatment of 'diff and diff to be
problematic. One is "DERIVATIVE" and the other is "DIFF"
internally. You are probably using both. Note that
tellsimp(diff(....) ) puts rules in different place from
tellsimp('diff(...) ).
This may be part of the problem.
My suggestion is to use a different operator, say D if you can, and
only at the last stage (if necessary) convert D to diff, e.g.
tellsimpafter(d(any1,any2), diff(any1,any2));
Then you can do this:
matchdeclare([sd,t],true);
tellsimp(d(II(sd,t),t,2),0);
declare(d, outative);
declare(a,constant);
d(a*II(sd,t),t,2) should be 0.
You might prefer declare(d,linear).
The system then looks at the 2nd argument for more help, linear in what..
d(a*f(x)+b,x) becomes a*d(f(x),x)+ b*d(1,x).
This matching system is more complicated to use than it
should be, unfortunately. But there are many different
decisions that have to be made in the design that interact.
There is no one set that is ideal in all cases. I am
probably more aware of this than others because I wrote the
tellsimp (etc) programs for Macsyma originally, and I have
also implemented a version of Mathematica's pattern matcher
for MockMMA. There are advantages to each, and also to
intermediate positions in matching.
I hope that using properties like linear will make
your programs simpler and more complete at the same time.
RJF
Andrei Zorine wrote:
> Another problem, I'd expect to see 0 here:
>
> (C1) block([sd,t,y ],
> matchdeclare([sd,t,y],true),
> print(tellsimp('diff(II(sd,t),t),sd/ID(t))),
> print(tellsimp('diff(II(sd,t),t,2),0)),
> print(tellsimp('diff(II(sd,t),sd),0)))$
>
> [DERIVATIVERULE6, SIMPDERIV]
> [DERIVATIVERULE7, DERIVATIVERULE6, SIMPDERIV]
> [DERIVATIVERULE8, DERIVATIVERULE7, DERIVATIVERULE6, SIMPDERIV]
> (C2) diff(a*II(sd,t),t,2);
>
> d
> a sd (-- (ID(t)))
> dt
> (D2) - -----------------
> 2
> ID (t)
> --
> Andrei Zorine
>
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima