python计算方程式根的方法

 更新时间:2015年05月07日 11:19:44   作者:songguo  
这篇文章主要介绍了python计算方程式根的方法,涉及Python数学运算的相关技巧,需要的朋友可以参考下

本文实例讲述了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机器学习算法与数据降维分析详解

    这篇文章主要为大家介绍了python机器学习算法与数据降维的分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • Linux下使用python自动修改本机网关代码分享

    Linux下使用python自动修改本机网关代码分享

    这篇文章主要介绍了Linux下使用python自动修改本机网关代码分享,本文直接给出实现代码,需要的朋友可以参考下
    2015-05-05
  • Python可视化Matplotlib折线图plot用法详解

    Python可视化Matplotlib折线图plot用法详解

    这篇文章主要为大家介绍了Python可视化中Matplotlib折线图plot用法的详解,有需要的朋友可以借鉴参考下,希望可以有所帮助,祝大家多多进步
    2021-09-09
  • python对RabbitMQ的简单入门使用教程

    python对RabbitMQ的简单入门使用教程

    RabbitMq是实现了高级消息队列协议(AMQP)的开源消息代理中间件,下面这篇文章主要给大家介绍了关于python对RabbitMQ的简单入门使用,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • python中yaml配置文件模块的使用详解

    python中yaml配置文件模块的使用详解

    本篇文章主要介绍了python中yaml配置文件模块的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 4种非常实用的python内置数据结构

    4种非常实用的python内置数据结构

    这篇文章主要介绍了4种非常实用的python内置数据结构,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • Python实现多线程下载脚本的示例代码

    Python实现多线程下载脚本的示例代码

    这篇文章主要介绍了Python实现多线程下载脚本的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Python自动化运维之Ansible定义主机与组规则操作详解

    Python自动化运维之Ansible定义主机与组规则操作详解

    这篇文章主要介绍了Python自动化运维之Ansible定义主机与组规则操作,结合实例形式分析了自动化运维工具Ansible定义主机与组规则相关配置操作与注意事项,需要的朋友可以参考下
    2019-06-06
  • Python 读取位于包中的数据文件

    Python 读取位于包中的数据文件

    这篇文章主要介绍了Python 如何读取位于包中的数据文件,帮助大家更好的理解和学习Python,感兴趣的朋友可以了解下
    2020-08-08
  • python 常见的排序算法实现汇总

    python 常见的排序算法实现汇总

    这篇文章主要介绍了python 常见的排序算法,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-08-08

最新评论