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中__str__和__repr__方法的区别
Apr 17 Python
Python编程之序列操作实例详解
Jul 22 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
浅谈Pandas 排序之后索引的问题
Jun 07 Python
Django添加favicon.ico图标的示例代码
Aug 07 Python
不知道这5种下划线的含义,你就不算真的会Python!
Oct 09 Python
python3实现名片管理系统
Nov 29 Python
用Python逐行分析文件方法
Jan 28 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
Mar 13 Python
django日志默认打印request请求信息的方法示例
May 17 Python
基于django micro搭建网站实现加水印功能
May 22 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
实现树状结构的两种方法
2006/10/09 PHP
深入解析php模板技术原理【一】
2008/01/10 PHP
php结合飞信 免费天气预报短信
2009/05/07 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
载入进度条 效果
2006/07/08 Javascript
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
js函数排序的实例代码
2013/07/01 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
2016/06/03 Javascript
VueJS全面解析
2016/11/10 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
对numpy中的transpose和swapaxes函数详解
2018/08/02 Python
python 调用有道api接口的方法
2019/01/03 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
Django CBV类的用法详解
2019/07/26 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
2014年助理工程师工作总结
2014/11/14 职场文书