上下文:我試圖做一個非常簡單的伽馬函數分形繪圖使用Python和sympy,最初是一個非常簡單的版本,以瞭解它是如何工作的(基於計數器值= 0或1的兩種映射顏色)。我怎樣才能提高這個伽馬函數的速度和複數相關的代碼?
基本上代碼(下面)調用到伽馬函數,然後使一些複雜的比較次數:僅僅檢查複數「nextcomplex =伽瑪(mycomplex)」比越接近「1 + 0I」初始的「mycomplex」複數。最終的分形算法比這個更精細,但基本的計算就像那些,所以我需要提高這個簡單代碼的速度。
對於小的間隔它工作正常,我可以繪製值,但是對於很大的間隔非常緩慢,我現在正在運行它,並且它超過1小時,並且仍然運行總共test_limitn x test_limitm = 1000x1000元素。 (例如最大100x100去很好,我可以繪製的價值觀和看到一個非常基本的分形)
我的問題是:我怎麼能提高代碼,使其更快? (例如,其它的Python庫,或者有其他功能,更好的做比較,等等)
from sympy import gamma,I,re,im,zoo
test_limitn = 1000
test_limitm = 1000
for m in range(-test_limitm,test_limitm):
for n in range(-test_limitn, test_limitn):
counter = 0
mycomplex = m+(n*I)
nextcomplex = gamma(mycomplex).evalf(1)
if mycomplex!=zoo and nextcomplex!=zoo:
absrenextcomplex = re(nextcomplex)
absimnextcomplex = abs(im(nextcomplex))
if (abs(n) > absimnextcomplex) and (abs(1-m) > abs(1-absrenextcomplex)):
counter = 1
任何暗示非常歡迎,謝謝!
謝謝我將在星期一嘗試,並會回來:) – iadvd