%t1, %t2 etc



I figured this out by doing it a different way.
Thanks anyway.
Rich

----- Original Message ----- 
From: "Richard Hennessy" <rvh2007 at comcast.net>
To: "Maxima List" <maxima at math.utexas.edu>
Sent: Tuesday, October 07, 2008 5:52 PM
Subject: %t1, %t2 etc


Hi,

I have written a simple program that uses the isolate command to solve integrals of the following form.  I want to
extend it to handle more complex expressions of different types and need to know how to tell how many temporary
variables were created by isolate.  It could have a different expression it may be trying to isolate although in this
case it is hard coded but in general it would possibly not be diracdelta and instead be unit_step or something else.  It
could appear in more than one place too.  I can't see a way to tell the names and the count of the %tx variables
created.  Can someone help, please?  Also I really hope I don't have to do a kill(labels) in the program, is there a
better way?  If I don't kill(labels) then the numbers are unpredictable and depend on how many commands were entered
prior to execution.

Thanks,

Rich



(%i1) g:integrate(diracdelta(x-4)*(x^2+x^3*a+x)^2/(x^4-7)*sin(x),x,3,45);
(eq1) integrate(((a*x^3+x^2+x)^2*diracdelta(x-4)*sin(x))/(x^4-7),x,3,45)

(%i2) f(h,x):=block(
    kill(labels),
    partswitch:true,
    isolate(h,diracdelta),
    t1:ev(%t1),t2:ev(%t2),
    if freeof(diracdelta,t2) and -part(%t1,2) >= part(h,3) and -part(%t1,2) <= part(h,4)
        then ev(t2,x=-part(%t1,2))
    elseif freeof(diracdelta,t1) and -part(%t2,2) >= part(h,3) and -part(%t2,2) <= part(h,4)
        then ev(t1,x=-part(%t2,2))
    else 0
)$

(%i3) f(g,x);

(%t1) x-4
(%t2) ((a*x^3+x^2+x)^2*sin(x))/(x^4-7)

(eq2) (sin(4)*(64*a+20)^2)/249

_______________________________________________
Maxima mailing list
Maxima at math.utexas.edu
http://www.math.utexas.edu/mailman/listinfo/maxima