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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
python实现的二叉树算法和kmp算法实例
Apr 25 Python
python实现类的静态变量用法实例
May 08 Python
Python使用arrow库优雅地处理时间数据详解
Oct 10 Python
python虚拟环境的安装配置图文教程
Oct 20 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
python3中的md5加密实例
May 29 Python
python指定写入文件时的编码格式方法
Jun 07 Python
python实现汉诺塔算法
Mar 01 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
Python对接支付宝支付自实现功能
Oct 10 Python
Python类的动态绑定实现原理
Mar 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
javascript数组组合成字符串的脚本
2021/01/06 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
js的逻辑运算符 ||
2010/05/31 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
jQuery实现跨域
2015/02/03 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
给Python初学者的一些编程技巧
2015/04/03 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
python交互界面的退出方法
2019/02/16 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
pygame实现打字游戏
2021/02/19 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
专科文秘应届生求职信
2013/11/18 职场文书
小学校园活动策划
2014/01/30 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
2019学子的答谢词范本!
2019/07/05 职场文书
Python实战之实现简易的学生选课系统
2021/05/25 Python
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS