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字典的常用操作方法小结
May 16 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
May 24 Python
python中int与str互转方法
Jul 02 Python
python3.4爬虫demo
Jan 22 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
20行python代码的入门级小游戏的详解
May 05 Python
wxPython电子表格功能wx.grid实例教程
Nov 19 Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 Python
Pytorch 中retain_graph的用法详解
Jan 07 Python
完美解决jupyter由于无法import新包的问题
May 26 Python
Selenium环境变量配置(火狐浏览器)及验证实现
Dec 07 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中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
php 信息采集程序代码
2009/03/17 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
QQ登录简单实现代码
2021/03/09 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
Python concurrent.futures模块使用实例
2019/12/24 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
通过实例解析python and和or使用方法
2020/11/14 Python
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
C#面试题问题集
2016/04/02 面试题
物流专业大学生的自我鉴定
2013/11/13 职场文书
前台文员的岗位职责
2013/11/14 职场文书
大学生毕业鉴定
2014/01/31 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
消防志愿者活动方案
2014/08/23 职场文书
2016春节慰问信范文
2015/03/25 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers