Could this be a bug in the taylor code, not taylorinfo? Example
(%i1) p : taylor(0,x,0,3);
(%o1)/T/ 0+...
(%i2) q : taylor(0,x,0,42);
(%o2)/T/ 0+...
I guess the truncation stored in the (($x ((3.1)) list
(%i3) ?print(p);
((MRAT SIMP ($X) (#:X2753) (($X ((3 . 1)) 0 NIL #:X2753 . 1)) TRUNC) 0 . 1)
(%o3)/T/ 0+...
(%i4) ?print(q);
((MRAT SIMP ($X) (#:X2754) (($X ((42 . 1)) 0 NIL #:X2754 . 1)) TRUNC) 0 . 1)
(%o4)/T/ 0+...
And how about the truncation of p + q? Kinda looks like its 42:
(%i5) ?print(p+q);
((MRAT SIMP ($X) (#:X2755) (($X ((42 . 1)) 0 NIL #:X2755 . 1)) TRUNC) 0 . 1)
(%o5)/T/ 0+...
(%i6) taylorinfo(p+q);
(%o6) [[x,0,42]]
--Barton
________________________________
From: macrakis at gmail.com [macrakis at gmail.com] on behalf of Stavros Macrakis [macrakis at alum.mit.edu]
Sent: Friday, December 07, 2012 08:44
To: Barton Willis; Richard Fateman
Cc: Maxima - list
Subject: Re: [Maxima] approx-alike bug
Maybe the simplest way to do this is something like:
temp:taylor(1+x+y+z,[x,0,3],[y,1,2],[z,2,1]);
4+(z-2)+(y-1)+x$
taylorinfo(temp);
[[x,0,3],[y,1,2],[z,2,1]]$
Here's a case which looks like a bug in taylorinfo:
(%i27) s13:taylor(sin(x),x,0,3);
(%o27)/T/ x-x^3/6+... OK
(%i28) s45:taylor(sin(x)^4,x,0,5);
(%o28)/T/ x^4+... OK
(%i29) s13+s45;
(%o29)/T/ x-x^3/6+... OK, correctly truncated at min(3,5)
(%i30) taylorinfo(%);
(%o30) [[x,0,5]] So why is its taylorinfo degree 5?
Am I misunderstanding the meaning of the "degree" of the expansion?
-s
On Thu, Dec 6, 2012 at 8:39 PM, Barton Willis <willisb at unk.edu<mailto:willisb at unk.edu>> wrote:
> Hmm, I'd have thought that a regression test should check that taylorinfo of two taylor expressions was the same, not just the ratdisrep. The list of vars of a CRE probably doesn't matter,
> because the ratdisrep will be different except in degenerate cases, and anyway doesn't have any mathematical importance (unlike the order of a taylor expansion, which does).
Oh, I agree. To change this, about 100 tests need to changed. Likely it will be some time before I work on this. Fixing the
tests isn't 100% straightforward; for example the test
taylor(1+x+y+z,[x,0,3],[y,1,2],[z,2,1]);
4+(z-2)+(y-1)+x$
would need an expected output of ''taylor(1+x+y+z,[x,0,3],[y,1,2],[z,2,1])" And that's silly. The next test is
1/%;
1/4-(z-2)/16+(-1/16+(z-2)/32)*(y-1)+(1/64-3*(z-2)/256)*(y-1)^2 + <more stuff>
Fixing these requires thought.
--Barton