Python查找函數(shù)f(x)=0根的解決方法
更新時間:2015年05月07日 11:28:51 作者:songguo
這篇文章主要介紹了Python查找函數(shù)f(x)=0根的解決方法,涉及Python數(shù)學(xué)運(yùn)算函數(shù)求解的相關(guān)技巧,需要的朋友可以參考下
本文實(shí)例講述了Python查找函數(shù)f(x)=0根的解決方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
''' 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 error from math import sqrt def 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程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
相關(guān)文章
django 鏈接多個數(shù)據(jù)庫 并使用原生sql實(shí)現(xiàn)
這篇文章主要介紹了django 鏈接多個數(shù)據(jù)庫 并使用原生sql實(shí)現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03pyspark給dataframe增加新的一列的實(shí)現(xiàn)示例
這篇文章主要介紹了pyspark給dataframe增加新的一列的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Python字典添加,刪除,查詢等相關(guān)操作方法詳解
這篇文章主要介紹了Python字典添加,刪除,查詢等相關(guān)操作方法詳解,需要的朋友可以參考下2020-02-02Python元類編程實(shí)現(xiàn)一個簡單的ORM
本文主要介紹了Python元類編程實(shí)現(xiàn)一個簡單的ORM,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python必備技巧之Pandas數(shù)據(jù)合并函數(shù)
Pandas中一共有五個數(shù)據(jù)合并函數(shù),分別為:concat、append、merge、join、combine,本文詳細(xì)講解這五個函數(shù)的使用方法,需要的可以參考一下2022-03-03