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 相关文章推荐
netbeans7安装python插件的方法图解
Dec 24 Python
python写入中英文字符串到文件的方法
May 06 Python
详解Python中的静态方法与类成员方法
Feb 28 Python
python2.7安装图文教程
Mar 13 Python
python 矩阵增加一行或一列的实例
Apr 04 Python
python 删除非空文件夹的实例
Apr 26 Python
Python内置random模块生成随机数的方法
May 31 Python
使用python接受tgam的脑波数据实例
Apr 09 Python
Python如何将函数值赋给变量
Apr 28 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
May 26 Python
Python OpenCV读取中文路径图像的方法
Jul 02 Python
Python文件夹批处理操作代码实例
Jul 21 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获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
PHP获取页面执行时间的方法(推荐)
2016/12/10 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
wordpress之js库集合研究介绍
2007/08/17 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
理解JavaScript中Promise的使用
2016/01/18 Javascript
JS实现的字符串数组去重功能小结
2019/06/17 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
js实现列表向上无限滚动
2020/01/13 Javascript
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
Python批量更改文件名的实现方法
2017/10/29 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
详解用selenium来下载小姐姐图片并保存
2021/01/26 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
元旦寄语大全
2014/04/10 职场文书
园林技术专业求职信
2014/07/28 职场文书
大学生赌博检讨书
2014/09/22 职场文书
家庭贫困证明
2014/09/23 职场文书
平安家庭事迹材料
2014/12/20 职场文书
匿名检举信范文
2015/03/02 职场文书
公司员工体检通知
2015/04/21 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
k-means & DBSCAN 总结
2021/04/27 Python
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python
Python合并多张图片成PDF
2021/06/09 Python
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
python 学习GCN图卷积神经网络
2022/05/11 Python