finding the roots of a nonlinear equation....faster method than the Newton-Raphson method?

11 views (last 30 days)
Hi everyone,
I was wondering if there is any other way to find the roots of a nonlinear equation numerically which can be faster that NR-method? If not have you any suggestion for optimizing and choosing the startvalues for NR-method?
tnx in advance,

Accepted Answer

John D'Errico
John D'Errico on 14 Jan 2015
Why is nothing ever fast enough for us? I think we get spoiled by computers that grow in speed every few years, so we want algorithms to grow even faster. Sorry, but mathematics does not obey Moore's law.
No, you will not find something that is magically better, although there will be some improvements. I would not recommend that you try writing your own code though. You will find professionally written tools in the optimization toolbox that are perhaps more robust to problems. More capable, allowing you to provide constraints, for example. Those tools will have more options, far better than hand written code.
The best thing you can do is provide better starting values, to reduce the probability that your code will diverge. Any optimizer will gain from that. But, no, there is no magic way to choose better starting values for a general problem, especially since you have not even told us anything about the objective. If there were some magic way to choose starting values, it would be used all over.
Of course, you might think, well, why not just approximate your objective with a simple, low order approximation, then solve that to get starting values? But sadly, that is exactly what each iteration of Newton/Raphson does! And any magical higher order method to get better starting values would also require knowledge of the higher order derivatives of your objective. And that will cost more time than you will gain.
So there is no magic, except by your understanding of the problem. If you have knowledge about the parameters for your function, then you should use that information to give better starting values. And if you know nothing about the objective, so have nothing to offer, then your time will be best spent in gaining more understanding about your specific problem. For example, do some reading while you are waiting for N/R iterations to converge. :)

More Answers (1)

Hossein
Hossein on 14 Jan 2015
u've right buddy seems there is no main solution but I'm thinking of a trick or something like that. The things that I know are followings:
first of all I want to achieve right value of the Load as a function of Eccentricity of shaft while simulating a special kind of bearings for different rotating velocities which has numbers of iteration in other parts of the simulation and all of this beside the NR-iteration takes a lot of time.
secondly I know that the final curve of results will look like a exponential function.
the third thing is that the convergence is relatively easier to gain for lower velocities, which mean that we have some initial point of our aimed (exponential like) curve.
Now any idea?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!