Re: Program to calculate rational function with imbedded continued fraction
- To: mathgroup at smc.vnet.net
- Subject: [mg69932] Re: [mg69875] Program to calculate rational function with imbedded continued fraction
- From: "Diana Mecum" <diana.mecum at gmail.com>
- Date: Wed, 27 Sep 2006 06:06:24 -0400 (EDT)
I apologize if my example was not clear. I was trying to keep it simple. I have an exponential function e(z), where z might equal 1, which is a continued fraction defined as follows: e(1) = [0, [1], [2], [1], [3], [1], [2], [1], [4], [1], [2], [1], [3], [1], [2], [1], [5], ...] [i] = T^2^i - T in characteristic 2. I am trying to learn how to evaluate (xe(1) + y)(ze(1) + w), where x, y, z, and w are polynomials in T, and xw - yz != 0. So, for any given example, such as (e(1) + 1)(T^2e(1), I am trying to determine what the continued fraction for it would be. I see your program. Thanks for forwarding it. To implement it, do I plug (e(1) + 1)(T^2e(1) in for k? When I run the routine, I get an error saying that the tags in In[50] and In[51] are protected. Thanks for your time, Diana M. On 9/26/06, Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote: > > On 26 Sep 2006, at 18:21, Diana wrote: > > > Hello all, > > > > Would someone be able to help me write a program to calculate the > > rational function of (2x + 3)/(2x + 4), for example? > > I have once already posted such a program and so did Daniel > Lichtblau. (Search the archive for the subject "How to do Continued > fraction of polynomials" and compare our posts. (I can't remember any > more what the difference between them was). > > Here is my version: > > F[f_, g_] := > If[PolynomialReduce[f, g][[1, 1]] =!= 0, PolynomialReduce[f, > g][[ > 1, 1]] + F[PolynomialReduce[f, > g][[2]], g], Module[{u = g, v = f, p, ls}, ls = Flatten[Last[ > Reap[While[u =!= 0, p = PolynomialReduce[u, v]; u = v; v = > p[[2]]; Sow[ > p[[1]]]]]]]; 1/Fold[Function[{x, y}, y + 1/x], Infinity, > Reverse[ls]]]] > > In the case of your example above you need to evaluate: > > In[50]:= > k=(2x+3)/(2x+4); > > In[51]:= > F[Numerator[k],Denominator[k]] > > Out[51]= > 1 + 1/(-2*x - 4) > > > > > > > > Also, (tx + 2t)(3t^2x + t), for example. > > > What exactly do you mean? This does not make sense to me; is that a > quotient? If so why did't you cancel the t's? I think the case of > rational functions in several variables will be much harder, and I > would have to think more about it, for which I do not have the time > at this moment, and in any case it might not be what you are asking for. > > > > > > x is actually an infinite continued fraction, and I am trying to > > figure > > out how to divide one infinite continued fraction by another. > > > > (t [0, 1, 2, 1, 3, 1, 2, 1, 4, ...] + 2t)/(3t^2 [0, 1, 2, 1, 3, 1, 2, > > 1, 4, ...] +t) > > > > > I think this can be done combining the built in function > FromContinuedFraction with the function F defined above. > > Andrzej Kozlowski > > Tokyo, Japan >