FindRoot to solve large number of polynomials -- how to speed it up?
- To: mathgroup at smc.vnet.net
- Subject: [mg113859] FindRoot to solve large number of polynomials -- how to speed it up?
- From: Will DeBeest <wildebeestz at gmail.com>
- Date: Tue, 16 Nov 2010 05:04:54 -0500 (EST)
I have a polynomial eqn of the form c[n]t^-n+1 + ...+ c[4]t^-3 + c[3]t^-2 + c[2]t^-1 + c[1] = 0 The coefficients are reals and may be in the range from +- 10000 and the number of coefficients, i.e. size of "n", can be up to 300, or 400.I solve for t using FindRoot. I only want real values of t. FindRoot[eqn, {t, 1.001, 1.05}, AccuracyGoal -> 4, PrecisionGoal -> 4, MaxIterations -> 10] As it happens I run this in batches of ~ 1000 eqns and can get 1000 solutions for t in ~10-15 seconds. However I'd like to be doing this in much larger volumes eg. 100,000 or more eqns, so even this sort of timing is too slow. Does anyone have any suggestion as to how this could be sped up? Open to suggestions about compiling, parallelizing, linking to some other code in addition to optimizing the current code etc. thanks Will