Implicit: Taylor, Poiseux and Newton's diagram



A few suggestions:

(a) instead of returning und for bad input, consider using the function 'error' to print a message and stop the calculation. Returning 'und' can cause problems if the calculation
continues---sadly, Maxima does 0 * und = 0, for example.

(b) consider changing tests for equality from "=" to equal. The "=" test checks for exact equality--the equal test tries to be somewhat smarter.  Also, consider changing "#" to 
     notequal.  In an if clause, I think equal(a,b) is OK---maybe it needs to be is(equal(a,b)) = true....maybe somebody else can comment on that.

(c) instead of using ev, try subst--maybe something like 
     
      	D: subst(map("=",X,A), diff(F,last(X))),

    instead of
 
      	diff(F,last(X)),
	D:apply(ev,cons(%%,map("=",X,A))),

  Unlike ev, the function subst has clear and simple semantics.

(d) consider using the 'some' function---maybe replace apply(ev,cons(F,map("=",X,A)))#makelist(0,d)  with something like
if some(lambda([s], is(notequal(s,0))), subst(map("=",X,A), F)).

Thanks for the contribution---getting started is always challenging. Hope I was able to help somewhat. A good place for code such as this is
http://sourceforge.net/apps/phpbb/maxima/ .

--Barton

________________________________________
From: maxima-bounces at math.utexas.edu [maxima-bounces at math.utexas.edu] on behalf of Evgeniy Maevskiy [emaevskiy at e-math.ru]
Sent: Thursday, May 31, 2012 15:25
To: maxima at math.utexas.edu
Subject: Implicit: Taylor, Poiseux and Newton's diagram

Good day for all.

I wrote a few functions on the asymptotic expansion of implicit
functions. I would be very interested to hear your opinion about my work:
1) how correctly my functions works;
2) whether they can be optimized and accelerated.

If these functions can be useful, then where and how I can put them for
public use?

Evgeniy