黑松山资源网 Design By www.paidiu.com
本文实例讲述了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程序设计有所帮助。
黑松山资源网 Design By www.paidiu.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
黑松山资源网 Design By www.paidiu.com
暂无评论...
更新日志
2024年10月09日
2024年10月09日
- 【原神手游】5.1版本更新维护预告
- 李锦华.1987-日与夜(LP版)【SOLO】【WAV+CUE】
- 伍珂玥.2014-伍珂玥【湾彩星辰】【FLAC分轨】
- 吕方.2001-旧情人·老情歌精选2CD【华纳】【WAV+CUE】
- 《星际战士2》¥219,《100% 鲜橙汁》¥7
- 手办鉴赏室:少女眼神颇有杀意!连衣裙勾勒傲人轮廓
- 未来可期的二次元大逃杀游戏——《白厄战境》简评
- 炉石传说死亡骑士卡组怎么搭配 死亡骑士最新卡组2024推荐
- 魔兽世界地下堡珍玩怎么升级 地下堡珍玩升级方法攻略分享
- 魔兽世界怎么获得泽克维尔的残血珍玩 泽克维尔的残血珍玩获取方式
- FrankSinatra-StrangersInTheNight(1966Jazz)[Flac24-96]
- 大原樱子《CAMON+5thAnniversaryBest~》2CD[24-96]flac
- Isgaard2003-GoldenKey(LimitedEdition)【WAV+CUE】
- 《合金装备3RE》伊娃定妆照公布:没被政确太好了
- 石家庄新增《黑神话:悟空》墙绘:小狐狸萍萍