python計算方程式根的方法
更新時間:2015年05月07日 11:19:44 作者:songguo
這篇文章主要介紹了python計算方程式根的方法,涉及Python數(shù)學運算的相關技巧,需要的朋友可以參考下
本文實例講述了python計算方程式根的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
''' 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機器學習算法與數(shù)據(jù)降維分析詳解
這篇文章主要為大家介紹了python機器學習算法與數(shù)據(jù)降維的分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-11-11Linux下使用python自動修改本機網(wǎng)關代碼分享
這篇文章主要介紹了Linux下使用python自動修改本機網(wǎng)關代碼分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-05-05Python可視化Matplotlib折線圖plot用法詳解
這篇文章主要為大家介紹了Python可視化中Matplotlib折線圖plot用法的詳解,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進步2021-09-09Python自動化運維之Ansible定義主機與組規(guī)則操作詳解
這篇文章主要介紹了Python自動化運維之Ansible定義主機與組規(guī)則操作,結合實例形式分析了自動化運維工具Ansible定義主機與組規(guī)則相關配置操作與注意事項,需要的朋友可以參考下2019-06-06