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网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
python将每个单词按空格分开并保存到文件中
Mar 19 Python
Python抽象和自定义类定义与用法示例
Aug 23 Python
Django利用cookie保存用户登录信息的简单实现方法
May 27 Python
Django 限制访问频率的思路详解
Dec 24 Python
Python计算公交发车时间的完整代码
Feb 12 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
Oct 15 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
Python实现Excel自动分组合并单元格
Feb 22 Python
用Python进行栅格数据的分区统计和批量提取
May 27 Python
使用Django框架创建项目
Jun 10 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中动态HTML的输出技术
2006/10/09 PHP
PHP 网页过期时间的控制代码
2009/06/29 PHP
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
PHP rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
JavaScript自执行闭包的小例子
2013/06/29 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
JS中数据结构之栈
2019/01/01 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
在weex中愉快的使用scss的方法步骤
2020/01/02 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
python能做哪方面的工作
2020/06/15 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
就业表自我评价分享
2014/02/06 职场文书
银行职员自我鉴定
2014/04/20 职场文书
责任担保书范文
2014/05/21 职场文书
市场营销计划书
2015/01/17 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电