用于找到方程根的慢递归代码

时间:2018-03-15 06:21:35

标签: python recursion

我有递归的Python代码来找到方程的根。 出于某种原因,它不会运行大量的迭代,例如n = 100。

我想知道这段代码有什么问题。为什么这么慢?

import os    
import sympy as sy    
from sympy.solvers import solve    
from sympy import Symbol    
x = Symbol('x')    
from sympy import *    
n=100    
def ene(j):    
    if j<0:    
            return 0    
    elif 0<=j<2:    
            return 1        
    elif 2<=j<4:    
            return N(simplify(ene(j-2)*(4*j-6-x))/(j*(j-1)))    
    elif 4<=j<6:    
            return N(simplify((ene(j-2)*(4*j-6-x))-3*ene(j-4))/(j*(j-1)))    
    elif 6<=j<n+1:    
            return N(simplify((ene(j-2)*(4*j-6-x))+ene(j-6)-3*ene(j-4))/(j*(j-1)))     

d=ene(n)    
print(d)    
root=(sy.solve(d,x))    
print(root)    
aa=str(root)    
with open('newEnergyvalue3.txt', 'wt') as energy:    
    energy.writelines(aa)    
print('finished')    
energy.close()    

0 个答案:

没有答案