Python查找函数f(x)=0的根,python,''' root = r
文章由Byrx.net分享于2019-03-23 08:03:19
Python查找函数f(x)=0的根,python,''' root = r
''' 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'
相关内容
- 编程必会之Hello World,编程helloworld,Hello#!/usr/
- lxml应用例子,lxml例子,#!pythonimpo
- 用pydev开发python,pydev开发python,[Python]代码co
- python windows平台锁定键盘,python锁定,阻断windows平台下
- Python 分割TXT文件成4K的TXT文件,python4k,[Python]代码#
- Python 最近最少使用算法,Python使用算法,[Python]代码#
- Python 最长公共子串算法,python串算法,[Python]代码#!
- Python 实现enum的功能,python实现enum,[Python]代码cl
- Python viterbi算法,pythonviterbi算法,[Python]代码de
- python 中文分词——FMM算法,,[Python]代码im
评论关闭