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 相关文章推荐
pycharm 使用心得(一)安装和首次使用
Jun 05 Python
python里将list中元素依次向前移动一位
Sep 12 Python
用Python中的__slots__缓存资源以节省内存开销的方法
Apr 02 Python
python实现百万答题自动百度搜索答案
Jan 16 Python
详解Python字典小结
Oct 20 Python
python微信撤回监测代码
Apr 29 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
在tensorflow中实现屏蔽输出的log信息
Feb 04 Python
python字符串下标与切片及使用方法
Feb 13 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
如何对python的字典进行排序
Jun 19 Python
python中HTMLParser模块知识点总结
Jan 25 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 文件扩展名 获取函数
2009/06/03 PHP
国外十大最流行的PHP框架排名
2013/07/04 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
jQuery 加上最后自己的验证
2009/11/04 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
2014/12/19 Javascript
Js可拖拽放大的层拖动特效实现方法
2015/02/25 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
详解Python中heapq模块的用法
2016/06/28 Python
Python探索之Metaclass初步了解
2017/10/28 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
django框架F&amp;Q 聚合与分组操作示例
2019/12/12 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
在pycharm中实现删除bookmark
2020/02/14 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
比驿:全球酒店比价网
2018/06/20 全球购物
汽车工程专业应届生求职信
2013/10/19 职场文书
公司庆典活动邀请函
2014/01/09 职场文书
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL