Possibility/ease of doing some vector ops in Maxima
- Subject: Possibility/ease of doing some vector ops in Maxima
- From: Valerij Pipin
- Date: Mon, 23 Sep 2002 13:01:24 +0900
Hi
tellsimp() or tellsimpafter don't work for me in this case
the one possibility is to use subst(del(p),0,expr) and another way is
via defrule-apply1
(C23) defrule(delp,del(p),0);
(D23) delp : DEL(p) -> 0
(C24) f : diff(L_1*L_2*(L_1-L_2)^(p-1));
p - 1
(D24) L_1 LOG(L_1 - L_2) (L_1 - L_2) L_2 DEL(p)
p - 1 p - 2
+ (L_1 (L_1 - L_2) - L_1 (L_1 - L_2) L_2 (p - 1)) DEL(L_2)
p - 2 p - 1
+ (L_1 (L_1 - L_2) L_2 (p - 1) + (L_1 - L_2) L_2) DEL(L_1)
(C25) apply1(%,delp);
p - 1 p - 2
(D25) (L_1 (L_1 - L_2) - L_1 (L_1 - L_2) L_2 (p - 1)) DEL(L_2)
p - 2 p - 1
+ (L_1 (L_1 - L_2) L_2 (p - 1) + (L_1 - L_2) L_2)DEL(L_1)
> Hi Barton
>
> On Thu, 2002-09-19 at 03:00, willisb@unk.edu wrote:
> > Instead of grad, try using diff without a second argument.
> > Used this way, diff works like a total derivative operator:
> >
> > diff(f(x,y)) = diff(f(x,y),x) * del(x) + diff(f(x,y),y) * del(y).
> >
> > First, tell Maxima that del(p) is zero.
> >
> > (C1) tellsimpafer(del(p),0);
> > (D1) tellsimpafer(DEL(p),0)
> >
> > Second, compute the total derivative
> >
> > (C2) f : diff(L_1*L_2*(L_1-L_2)^(p-1));
> > (D2) (L_1*(L_1-L_2)^(p-1)-(p-1)*L_1*(L_1-L_2)^(p-2)*L_2) * DEL(L_2)
> > +((L_1-L_2)^(p-1)*L_2+(p-1)*L_1*(L_1-L_2)^(p-2)*L_2)*DEL(L_1)
>
> When I try this, I get the following:
>
> (C309) tellsimpafer(del(p),0);
> (D309) tellsimpafer(DEL(p), 0)
> (C310) f : diff(L_1*L_2*(L_1-L_2)^(p-1));
> L_1*LOG(L_1-L_2)*(L_1-L_2)^(p-1)*L_2*DEL(p)+(L_1*(L_1-L_2)^(p-1)-
> L_1*(L_1-L_2)^(p-2)*L_2*(p-1))*DEL(L_2)+(L_1*(L_1-L_2)^(p-2)*L_2*(p-1)+
> (L_1-L_2)^(p-1)*L_2)*DEL(L_1)
>
> I assume the tellsimpafer command is not doing quite the right thing?
>
> Thanks
> Neilen
>
> > If you want grad instead of del, use subst
> >
> > (C3) f : subst(grad,del,f);
> > (D3) (L_1*(L_1-L_2)^(p-1)-(p-1)*L_1*(L_1-L_2)^(p-2)*L_2) * GRAD(L_2)
> > +GRAD(L_1)*((L_1-L_2)^(p-1)*L_2 +(p-1)*L_1*(L_1-L_2)^(p-2)*L_2)
> >
> > To extract the coefficients of grad(L_1), etc, use expand followed
> > by coeff
> >
> > (C4) f : expand(f);
> > (D4) -p*L_1*(L_1-L_2)^(p-2)*L_2*GRAD(L_2)
> > +L_1*(L_1-L_2)^(p-2)*L_2*GRAD(L_2)
> > +L_1*(L_1-L_2)^(p-1)*GRAD(L_2)
> > +GRAD(L_1)*(L_1-L_2)^(p-1)*L_2
> > +p*L_1*GRAD(L_1)*(L_1-L_2)^(p-2)*L_2
> > -L_1*GRAD(L_1)*(L_1-L_2)^(p-2)*L_2
> > (C5) [coeff(f, grad(L_1)), coeff(f,grad(L_2))];
> >
> > (D5) [(L_1-L_2)^(p-1)*L_2+p*L_1*(L_1-L_2)^(p-2)*L_2
> > -L_1*(L_1-L_2)^(p-2)*L_2,
> > -p*L_1*(L_1-L_2)^(p-2)*L_2+L_1*(L_1-L_2)^(p-2)*L_2
> > +L_1*(L_1-L_2)^(p-1)]
> > (C6)
> >
> >
> > Maybe this helps?
> >
> > Barton
> >
> >
> >
> >
> > _______________________________________________
> > Maxima mailing list
> > Maxima@www.math.utexas.edu
> > http://www.math.utexas.edu/mailman/listinfo/maxima