Ruud H.G. van Tol on Thu, 17 Nov 2022 13:51:29 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Conversion of a function/closure with rational coefficients into one with real coefficients |
On 2022-11-17 13:42, Gottfried Helms wrote:
I'm trying to optimize some bivariate function, and found, that I can create a vector of polynomials p_r(x). Let pp be a vector of closures, so for instance ... pp[4](x) = 1/4*x^2-2/3*x+1/6 pp[5](x) = -1/8*x^3+31/48*x^2-7/12*x+1/24 ... But going in detail of the function I get vectors pp of dimension 128 or 256 or the like, where in the denominators are factorials of 128 or 256 and the like with very long integer numbers. By construction I get for all coefficients rational values, but the complexity grows much with increasing index r for pp[r](x). That means, for numerical evaluation it should be much more efficient to have that coefficients all in real values, and I'm looking for a tool/procedure, to convert the existing closures to that same functions, but with coefficients expressed in real numbers. I can't do, for instance, naive attempts like ppr[5]=1.0*pp[5], or ppr[5](x)=1.0*pp[5](x). What is a good idea to convert the full vector "pp" into some -say- "ppr" ? (Well, I could recalculate all polynomials again from the generating script, but I rather want to learn the Pari/GP inherent tools for such a problem.)
I now wonder if it would help anything to keep such numbers in some deconstructed (and maybe even fractal/generative) way, for example: ? print(factor(31/48)) [2, -4; 3, -1; 31, 1] -- Ruud