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程序设计有所帮助。