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操作ie登陆土豆网的方法
May 09 Python
Python实现将绝对URL替换成相对URL的方法
Jun 28 Python
Python验证码识别的方法
Jul 10 Python
使用python实现个性化词云的方法
Jun 16 Python
python使用adbapi实现MySQL数据库的异步存储
Mar 19 Python
Python字符串的常见操作实例小结
Apr 08 Python
Python数据可视化:泊松分布详解
Dec 07 Python
Python 实现递归法解决迷宫问题的示例代码
Jan 12 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
Python迭代器Iterable判断方法解析
Mar 16 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
在keras中对单一输入图像进行预测并返回预测结果操作
Jul 09 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获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
jQuery 选择器详解
2015/01/19 Javascript
cookie的secure属性详解
2015/04/08 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
js模糊查询实例分享
2016/12/26 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
原生js实现轮播图特效
2020/05/04 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
python冒泡排序简单实现方法
2015/07/09 Python
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
用python处理MS Word的实例讲解
2018/05/08 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
python 绘制场景热力图的示例
2020/09/23 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
党员培训思想汇报
2014/01/07 职场文书
求职信怎么写
2014/05/23 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
表扬稿范文
2015/01/17 职场文书
再谈python_tkinter弹出对话框创建
2022/03/20 Python