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爬虫之HTTP异常处理
Nov 05 Python
Python爬取读者并制作成PDF
Mar 10 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
Python使用pymysql小技巧
Jun 04 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
python简单实现AES加密和解密
Mar 28 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
python 寻找离散序列极值点的方法
Jul 10 Python
Python-openCV开运算实例
Jul 05 Python
python函数超时自动退出的实操方法
Dec 28 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+mysql留言本源码
2009/11/11 PHP
php中json_decode()和json_encode()的使用方法
2012/06/04 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
Python的ORM框架SQLObject入门实例
2014/04/28 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
Python 使用 docopt 解析json参数文件过程讲解
2019/08/13 Python
python的等深分箱实例
2019/11/22 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
请解释在new与override的区别
2012/10/29 面试题
租赁协议书范本
2014/04/22 职场文书
超市商业计划书
2014/05/04 职场文书
关于学习的演讲稿
2014/05/10 职场文书
应届生求职自荐信
2014/07/04 职场文书
三八节祝酒词
2015/08/11 职场文书
妇产科护理心得体会
2016/01/22 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技