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中使用mechanize模块模拟浏览器功能
May 05 Python
实例解析Python中的__new__特殊方法
Jun 02 Python
Python操作SQLite数据库的方法详解
Jun 16 Python
python脚本替换指定行实现步骤
Jul 11 Python
浅谈pycharm下找不到sqlalchemy的问题
Dec 03 Python
使用Django简单编写一个XSS平台的方法步骤
Mar 25 Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
Python 批量刷博客园访问量脚本过程解析
Aug 30 Python
使用python和pygame制作挡板弹球游戏
Dec 03 Python
python定时截屏实现
Nov 02 Python
python如何做代码性能分析
Apr 26 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
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
JavaScript 组件之旅(四):测试 JavaScript 组件
2009/10/28 Javascript
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
详解vue的双向绑定原理及实现
2019/05/05 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
python 中的list和array的不同之处及转换问题
2018/03/13 Python
python多线程扫描端口(线程池)
2019/09/04 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
如何在Cookie里面保存Unicode和国际化字符
2013/05/25 面试题
《孔繁森》教学反思
2014/04/17 职场文书
党员创先争优活动总结
2014/05/04 职场文书
放飞理想演讲稿
2014/09/09 职场文书
JavaScript实现登录窗体
2021/06/22 Javascript