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从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
使用Python的Twisted框架编写简单的网络客户端
Apr 16 Python
在Python中使用第三方模块的教程
Apr 27 Python
Python操作Excel之xlsx文件
Mar 24 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
解决pytorch DataLoader num_workers出现的问题
Jan 14 Python
python实现在一个画布上画多个子图
Jan 19 Python
python如何把字符串类型list转换成list
Feb 18 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 Python
Python实现敏感词过滤的4种方法
Sep 12 Python
pandas中DataFrame重置索引的几种方法
May 24 Python
Python实现简单的猜单词
Jun 15 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+ajax 无刷新删除数据
2010/02/20 PHP
PHP chmod 函数与批量修改文件目录权限
2010/05/10 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
php中define用法实例
2015/07/30 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
Javascript基础教程之比较null和undefined值
2016/05/16 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
简单介绍Python中的len()函数的使用
2015/04/07 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
html5使用canvas绘制一张图片
2014/12/15 HTML / CSS
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
写自荐信的七个技巧
2013/10/15 职场文书
施工人员岗位职责
2013/12/12 职场文书
学习党课思想汇报
2013/12/29 职场文书
化学工程专业求职信
2014/08/10 职场文书
政工例会汇报材料
2014/08/26 职场文书
公司老总年会致辞
2015/07/30 职场文书
2016银行求职自荐信
2016/01/28 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL
详解在OpenCV中如何使用图像像素
2022/03/03 Python