python计算方程式根的方法


Posted in Python onMay 07, 2015

本文实例讲述了python计算方程式根的方法。分享给大家供大家参考。具体实现方法如下:

''' roots = polyRoots(a).
  Uses Laguerre's method to compute all the roots of
  a[0] + a[1]*x + a[2]*x^2 +...+ a[n]*x^n = 0.
  The roots are returned in the array 'roots',
'''  
from evalPoly import *
from numpy import zeros,complex
from cmath import sqrt
from random import random
def polyRoots(a,tol=1.0e-12):
  def laguerre(a,tol):
    x = random()
    # Starting value (random number)
    n = len(a) - 1
    for i in range(30):
      p,dp,ddp = evalPoly(a,x)
      if abs(p) < tol: return x
      g = dp/p
      h = g*g - ddp/p
      f = sqrt((n - 1)*(n*h - g*g))
      if abs(g + f) > abs(g - f): dx = n/(g + f)
      else: dx = n/(g - f)
      x = x - dx
      if abs(dx) < tol: return x
    print 'Too many iterations'
  def deflPoly(a,root): # Deflates a polynomial
    n = len(a)-1
    b = [(0.0 + 0.0j)]*n
    b[n-1] = a[n]
    for i in range(n-2,-1,-1):
      b[i] = a[i+1] + root*b[i+1]
    return b
  n = len(a) - 1
  roots = zeros((n),dtype=complex)
  for i in range(n):
    x = laguerre(a,tol)
    if abs(x.imag) < tol: x = x.real
    roots[i] = x
    a = deflPoly(a,x)
  return roots
  raw_input("\nPress return to exit")

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
Python 字典dict使用介绍
Nov 30 Python
在Python的web框架中编写创建日志的程序的教程
Apr 30 Python
Python OS模块常用函数说明
May 23 Python
Python基础中所出现的异常报错总结
Nov 19 Python
Python3 处理JSON的实例详解
Oct 29 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
python计算列表内各元素的个数实例
Jun 29 Python
Pycharm 设置默认头的图文教程
Jan 17 Python
django如何自己创建一个中间件
Jul 24 Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 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
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 #Python
在Linux中通过Python脚本访问mdb数据库的方法
May 06 #Python
You might like
PHP 一个页面执行时间类代码
2010/03/05 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
thinkphp连贯操作实例分析
2014/11/22 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
JS与框架页的操作代码
2010/01/17 Javascript
jQuery创建插件的代码分析
2011/04/14 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
JavaScript实现公历转农历功能示例
2017/02/13 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
JS库之wow.js使用方法
2017/09/14 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
Python解析nginx日志文件
2015/05/11 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
python 的列表遍历删除实现代码
2020/04/12 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
python字符串反转的四种方法详解
2019/12/02 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
Python远程方法调用实现过程解析
2020/07/28 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
营业员实习自我鉴定
2013/12/07 职场文书
银行简历自我评价
2014/02/11 职场文书
社区文化建设方案
2014/05/02 职场文书
入队仪式主持词
2015/07/04 职场文书
解决jupyter notebook启动后没有token的坑
2021/04/24 Python