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 相关文章推荐
总结用Pdb库调试Python的方式及常用的命令
Aug 18 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 Python
python列表的增删改查实例代码
Jan 30 Python
对numpy中array和asarray的区别详解
Apr 17 Python
解决Python pandas df 写入excel 出现的问题
Jul 04 Python
Python实现钉钉发送报警消息的方法
Feb 20 Python
python实现弹窗祝福效果
Apr 07 Python
Python入门Anaconda和Pycharm的安装和配置详解
Jul 16 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
Mar 23 Python
基于Python采集爬取微信公众号历史数据
Nov 27 Python
Django集成MongoDB实现过程解析
Dec 01 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定义函数代码
2015/02/26 PHP
PHP7多线程搭建教程
2017/04/21 PHP
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
jquery与js实现全选功能的区别
2017/06/11 jQuery
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
python内存管理分析
2015/04/08 Python
使用python实现链表操作
2018/01/26 Python
django输出html内容的实例
2018/05/27 Python
实例讲解python中的协程
2018/10/08 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
我就是这样学习Python中的列表
2019/06/02 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
应届毕业生就业自荐信
2013/10/26 职场文书
房屋改造计划书
2014/01/10 职场文书
应聘教师求职信
2014/07/19 职场文书
2015大学自主招生自荐信范文
2015/03/04 职场文书
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript