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之玩转字符串(1)
Sep 14 Python
Python最长公共子串算法实例
Mar 07 Python
用Python制作检测Linux运行信息的工具的教程
Apr 01 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
实例讲解Python爬取网页数据
Jul 08 Python
深入理解Django自定义信号(signals)
Oct 15 Python
PyCharm代码提示忽略大小写设置方法
Oct 28 Python
Python实现Selenium自动化Page模式
Jul 14 Python
python实现多进程通信实例分析
Sep 01 Python
用python写测试数据文件过程解析
Sep 25 Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 Python
Python使用xpath实现图片爬取
Sep 16 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
用Socket发送电子邮件
2006/10/09 PHP
php笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
JavaScript 监听textarea中按键事件
2009/10/08 Javascript
使用js获取QueryString的方法小结
2010/02/28 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
使用jQuery给input标签设置默认值
2016/06/20 Javascript
详解js的六大数据类型
2016/12/27 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
python简单程序读取串口信息的方法
2015/03/13 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
python三大神器之fabric使用教程
2019/06/10 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
Allen Edmonds官方网站:一家美国优质男士鞋类及配饰制造商
2019/03/12 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
军训学生自我鉴定
2014/02/12 职场文书
报告会主持词
2014/04/02 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
入党培养人考察意见
2015/06/08 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
redis三种高可用方式部署的实现
2021/05/11 Redis