使用 sympylambdaify 和 scipy 的 Python 优化索引总和

标签 python lambda scipy sympy

我正在寻找建议答案 this 的混合解决方案线。第一个代码片段使用了更具象征意义的方式,我在第二个代码片段的属性之后使用了变量数量发生变化的属性。与此类似,变量数量 n 可以改变。

from sympy import *
from scipy.optimize import minimize
from sympy.utilities.lambdify import lambdify

x, i, n = symbols("x i n")
n = 10
func = Sum((Indexed('x',i)-3)/(1+0.2)**i,(i,1,n))
my_func = lambdify((x, i, n), func)


def my_func_v(x):
    return my_func(*tuple(x))

results = minimize(my_func_v, np.zeros(n))

有什么想法吗?

最佳答案

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

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)

还有什么建议吗?

关于使用 sympylambdaify 和 scipy 的 Python 优化索引总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47187841/

相关文章:

python - scikit-learn 和 scipy 库之间的决定系数不同。为什么?

python - 如何获得实时期权链?

python - gaierror [Errno 8] 当使用 Django python 和 gmail 发送邮件时

java - 在 gs-uploading-files Spring Boot 示例上将 Java 1.8 lambda 转换为 Java 1.7

java - Lambda 表达式和泛型仅在方法中定义

python - regr.score 和 r2_score 给出不同的值

python - 我无法整合数学范围错误的原因

python - 加入一组超时的python进程

javascript - 如何创建多选以显示 Django 中每个选定内容的详细信息?

function - Kotlin:将对象列表转换为对象属性映射