明霞山资源网 Design By www.htccd.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程序设计有所帮助。
标签:
python,计算,方程式根
明霞山资源网 Design By www.htccd.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
明霞山资源网 Design By www.htccd.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。