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的正则表达式re模块的常用方法
Mar 09 Python
Python使用htpasswd实现基本认证授权的例子
Jun 10 Python
Python基于DES算法加密解密实例
Jun 03 Python
Python绘制的二项分布概率图示例
Aug 22 Python
Python爬虫常用小技巧之设置代理IP
Sep 13 Python
python实现Dijkstra算法的最短路径问题
Jun 21 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
Oct 28 Python
Python3的unicode编码转换成中文的问题及解决方案
Dec 10 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 Python
最新Python idle下载、安装与使用教程图文详解
Nov 28 Python
Python pygame实现中国象棋单机版源码
Jun 20 Python
总结Python变量的相关知识
Jun 28 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静态类
2006/11/25 PHP
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
php下统计用户在线时间的一种尝试
2010/08/26 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
JavaScript让IE浏览器event对象符合W3C DOM标准
2009/11/24 Javascript
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
js编写选项卡效果
2017/05/23 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
javascript实现异形滚动轮播
2019/11/28 Javascript
node.js制作一个简单的登录拦截器
2020/02/10 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
爬山算法简介和Python实现实例
2014/04/26 Python
Python实现LRU算法的2种方法
2015/06/24 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
jupyter实现重新加载模块
2020/04/16 Python
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
介绍一下write命令
2012/09/24 面试题
反腐倡廉演讲稿
2014/05/22 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android