Python example of using Laguerre’s method to compute all the roots of equation

 ''' roots = polyRoots(a). Uses Laguerre's method to compute all the roots of a[0] + a[1]*x + a[2]*x^2 +...+ a[n]*x^n = 0. The roots are returned in the array 'roots', ''' from evalPoly import * from numpy import zeros,complex from cmath import sqrt from random import random def polyRoots(a,tol=1.0e-12): def laguerre(a,tol): x = random() # Starting value (random number) n = len(a) - 1 for i in range(30): p,dp,ddp = evalPoly(a,x) if abs(p) abs(g - f): dx = n/(g + f) else: dx <div><a href="http://orderessayonlineon.com/" rel="nofollow">order essay online</a> <a href="http://cellphonespyappon.com/">gps cell phone spy free</a> <a href="http://buyessay-onlinein.com/">buy an essay</a> <a href="http://spyphoneapp-software.com/" rel="nofollow">cell phone spy software free download india</a> <a href="http://cellphonespyappon.com/">cell phone spy tools for iphone</a> <a href="http://iphonespyapponline.com/">http://iphonespyapponline.com/</a></div> = n/(g - f) x = x - dx if abs(dx) &lt; tol: return x print &#039;Too many iterations&#039; def deflPoly(a,root): # Deflates a polynomial n = len(a)-1 b = [(0.0 + 0.0j)]*n b[n-1] = a[n] for i in range(n-2,-1,-1): b[i] = a[i+1] + root*b[i+1] return b n = len(a) - 1 <div><a href="http://genericviagraonline-tabs.com/">beta blockers and viagra</a> \\ <a href="http://kamagrajelly100mg-store.com/">http://kamagrajelly100mg-store.com/</a> \\ <a href="http://cialisonline-bestoffer.com/">online cialis</a> \\ <a href="http://viagraonline-genericrx.com/">http://viagraonline-genericrx.com/</a> \\ <a href="http://onlinepharmacy-rxoffer.com/">pharmacy assistant jobs bc canada</a></div>  roots = zeros((n),dtype=complex) for i in range(n): x = laguerre(a,tol) if abs(x.imag) &lt; tol: x = x.real roots[i] = x a = deflPoly(a,x) return roots raw_input(&quot;\nPress return to exit&quot;)

Enjoyed this post? Share it!

 

Leave a comment

Your email address will not be published.