且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用sympy lambdify和scipy进行Python优化索引和

更新时间:2023-02-26 16:42:31

所以这似乎可以解决问题:

So this seems to do the trick:

from sympy import Sum, symbols, Indexed, lambdify
from scipy.optimize import minimize
import numpy as np

def _eqn(y, variables, periods, sign=-1.0):
    x, i = symbols("x i")
    n = periods-1
    s = Sum(Indexed('x', i)/(1+0.06)**i, (i, 0, n))
    f = lambdify(x, s, modules=['sympy'])
    return float(sign*(y + f(variables)))

z = 3
results = minimize(lambda x: _eqn(3, x, z),np.zeros(z))
print(results.x)

还有其他建议吗?