我有以下由变量参数化的优化代码n
。
from symfit import parameters, Eq, Ge, Fit
import numpy as np
n = 3
xdata = np.sort(np.random.choice(range(1, 4*n), n)) # Make fake data
print(xdata)
p1, p2, p3 = parameters('p1, p2, p3')
model = p1*p2*p3
constraints = [
Eq(xdata[0]*p1+(xdata[1]-xdata[0])*p2+(xdata[2]-xdata[1])*p3, 1),
Ge(p1, p2),
Ge(p2, p3),
Ge(p3, 0)
]
fit = Fit(- model, constraints=constraints)
fit_result = fit.execute()
print(fit_result)
我想将它用于更大的值,n
但我不知道如何更改线条
p1, p2, p3 = parameters('p1, p2, p3')
model = p1*p2*p3
而且constraints
要应付一个任意大的n
。
该代码正在使用symfit库。该链接显示了如何使用的示例以及parameters
文档的链接。
怎么能做到这一点?