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实现下载网易云音乐的高清MV
Mar 16 Python
介绍Python的@property装饰器的用法
Apr 28 Python
django开发教程之利用缓存文件进行页面缓存的方法
Nov 10 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
Python os模块常用方法和属性总结
Feb 20 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
Python获取浏览器窗口句柄过程解析
Jul 25 Python
Python+logging输出到屏幕将log日志写入文件
Nov 11 Python
Python截图并保存的具体实例
Jan 14 Python
Python利用folium实现地图可视化
May 23 Python
Pytest中skip skipif跳过用例详解
Jun 30 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-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
python实现探测socket和web服务示例
2014/03/28 Python
python多进程控制学习小结
2018/10/31 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
上学迟到的检讨书
2014/01/11 职场文书
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
让人感觉高大上的讲话稿怎么写?
2019/07/08 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server
JavaScript分页组件使用方法详解
2021/07/26 Javascript