import numpy as np
from lmfit import Parameters, Model
def logistic(x, amp, a, b, c):
return amp / (1 + a*np.exp(b*(x-c)))
params = Parameters()
params.add('b2a_scale' value=1, vary=True) # ?
N = 5
model = Model(logistic, prefix='p1_')
for i in range(1, N+1):
params.add('p%d_amp' % i, value=1, min=0)
params.add('p%d_c' % i, value=1)
params.add('p%d_b' % i, value=5)
params.add('p%d_a' % i, expr='p%d_b * b2a_scale' % i)
if model > 1:
model += Model(logistic, prefix='p%d_' % i)
1条答案
按热度按时间o2gm4chl1#
不清楚你是否意味着
a_i/b_i
应该对所有N个数据集都是相同的常数-让我们假设它应该是。在这种情况下,定义这样的参数可能就足够了:字符串