我有递归的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()