首页 > 编程 > Python > 正文

Python查找函数f(x)=0根的解决方法

2020-02-23 01:06:39
字体:
来源:转载
供稿:网友

本文实例讲述了Python查找函数f(x)=0根的解决方法。分享给大家供大家参考。具体实现方法如下:

''' root = ridder(f,a,b,tol=1.0e-9).  Finds a root of f(x) = 0 with Ridder's method.  The root must be bracketed in (a,b).'''import errorfrom math import sqrtdef ridder(f,a,b,tol=1.0e-9):    fa = f(a)  if fa == 0.0: return a  fb = f(b)  if fb == 0.0: return b  if fa*fb > 0.0: error.err('Root is not bracketed')  for i in range(30):   # Compute the improved root x from Ridder's formula    c = 0.5*(a + b); fc = f(c)    s = sqrt(fc**2 - fa*fb)    if s == 0.0: return None    dx = (c - a)*fc/s    if (fa - fb) < 0.0: dx = -dx    x = c + dx; fx = f(x)   # Test for convergence    if i > 0:      if abs(x - xOld) < tol*max(abs(x),1.0): return x    xOld = x   # Re-bracket the root as tightly as possible    if fc*fx > 0.0:      if fa*fx < 0.0: b = x; fb = fx      else:      a = x; fa = fx    else:      a = c; b = x; fa = fc; fb = fx  return None  print 'Too many iterations'

希望本文所述对大家的Python程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表