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 实现堆排序算法代码
Jun 05 Python
利用Python绘制MySQL数据图实现数据可视化
Mar 30 Python
在Django框架中编写Contact表单的教程
Jul 17 Python
django表单实现下拉框的示例讲解
May 29 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
Python检查 云备份进程是否正常运行代码实例
Aug 22 Python
关于sys.stdout和print的区别详解
Dec 05 Python
PyQt5中多线程模块QThread使用方法的实现
Jan 31 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
用基于python的appium爬取b站直播消费记录
Apr 17 Python
python关于集合的知识案例详解
May 30 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实现HTML生成PDF文件的方法
2014/11/07 PHP
php判断表是否存在的方法
2015/06/18 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
PHP对象相关知识总结
2017/04/09 PHP
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Python自定义线程类简单示例
2018/03/23 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
python批量修改ssh密码的实现
2019/08/08 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
神路信息Java面试题目
2013/03/31 面试题
实习鉴定范文
2013/12/19 职场文书
腾讯广告词
2014/03/19 职场文书
劲霸男装广告词
2014/03/21 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android