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


Posted in Python onMay 07, 2015

本文实例讲述了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 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程序设计有所帮助。

Python 相关文章推荐
Python中用PIL库批量给图片加上序号的教程
May 06 Python
python使用pil生成图片验证码的方法
May 08 Python
Python中splitlines()方法的使用简介
May 20 Python
Python实现返回数组中第i小元素的方法示例
Dec 04 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
判断python对象是否可调用的三种方式及其区别详解
Jan 31 Python
深入浅析Python中的迭代器
Jun 04 Python
Python flask框架post接口调用示例
Jul 03 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 Python
简单了解Python字典copy与赋值的区别
Sep 16 Python
python计算对角线有理函数插值的方法
May 07 #Python
python计算方程式根的方法
May 07 #Python
python计算牛顿迭代多项式实例分析
May 07 #Python
用C++封装MySQL的API的教程
May 06 #Python
使用wxPython获取系统剪贴板中的数据的教程
May 06 #Python
用Python遍历C盘dll文件的方法
May 06 #Python
使用Python压缩和解压缩zip文件的教程
May 06 #Python
You might like
PHP memcache扩展的三种安装方法
2009/04/26 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
Git命令之分支详解
2021/03/02 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
Javascript验证方法大全
2015/09/21 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
2019/10/22 Javascript
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
Python标准库之循环器(itertools)介绍
2014/11/25 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
交通安全标语
2014/06/06 职场文书
大学生就业自荐书
2014/06/16 职场文书
洗手间标语
2014/06/23 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
党校党性分析材料
2014/12/19 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
Java实现带图形界面的聊天程序
2022/06/10 Java/Android
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技