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 相关文章推荐
如何解决django配置settings时遇到Could not import settings 'conf.local'
Nov 18 Python
python中os模块详解
Oct 14 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
Python字符串和字典相关操作的实例详解
Sep 23 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
Feb 11 Python
python 请求服务器的实现代码(http请求和https请求)
May 25 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 Python
Python3如何在服务器打印资产信息
Aug 27 Python
PyQt实现计数器的方法示例
Jan 18 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/12/06 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
PHP中Array相关函数简介
2016/07/03 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
Three.js快速入门教程
2016/09/09 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
2017/03/02 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
详解JavaScript 高阶函数
2020/09/14 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
python基础教程之udp端口扫描
2014/02/10 Python
Python编程中归并排序算法的实现步骤详解
2016/05/04 Python
python模拟Django框架实例
2016/05/17 Python
Django数据库操作之save与update的使用
2020/04/01 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
降低python版本的操作方法
2020/09/11 Python
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
新领导上任欢迎词
2014/01/13 职场文书
2014年房地产销售工作总结
2014/12/01 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
Python Flask实现进度条
2022/05/11 Python