Python查找函数f(x)=0根的解决方法
本文实例讲述了Python查找函数f(x)=0根的解决方法。分享给大家供大家参考。具体实现方法如下:
'''root=ridder(f,a,b,tol=1.0e-9). Findsarootoff(x)=0withRidder'smethod. Therootmustbebracketedin(a,b). ''' importerror frommathimportsqrt defridder(f,a,b,tol=1.0e-9): fa=f(a) iffa==0.0:returna fb=f(b) iffb==0.0:returnb iffa*fb>0.0:error.err('Rootisnotbracketed') foriinrange(30): #ComputetheimprovedrootxfromRidder'sformula c=0.5*(a+b);fc=f(c) s=sqrt(fc**2-fa*fb) ifs==0.0:returnNone dx=(c-a)*fc/s if(fa-fb)<0.0:dx=-dx x=c+dx;fx=f(x) #Testforconvergence ifi>0: ifabs(x-xOld)<tol*max(abs(x),1.0):returnx xOld=x #Re-brackettherootastightlyaspossible iffc*fx>0.0: iffa*fx<0.0:b=x;fb=fx else:a=x;fa=fx else: a=c;b=x;fa=fc;fb=fx returnNone print'Toomanyiterations'
希望本文所述对大家的Python程序设计有所帮助。