Я пытаюсь подогнать 3 пика, используя lmfit с профилем перекоса Voigt (это не так важно для моего вопроса). Я хочу установить ограничение на центры пиков в форме:
peak1 = SkewedVoigtModel(prefix='sv1_')
pars.update(peak1.make_params())
pars['sv1_center'].set(x)
peak2 = SkewedVoigtModel(prefix='sv2_')
pars.update(peak2.make_params())
pars['sv2_center'].set(1000+x)
peak3 = SkewedVoigtModel(prefix='sv3_')
pars.update(peak3.make_params())
pars['sv3_center'].set(2000+x)
По сути, я хочу, чтобы они были на расстоянии 1000 друг от друга, но мне нужно соответствовать фактическому сдвигу, х. Я знаю, что могу заставить некоторые параметры быть равными, используя pars['sv2_center'].set(expr='sv1_center')
, но мне нужно было бы pars['sv2_center'].set(expr='sv1_center'+1000)
(что не работает так). Как я могу достичь того, что мне нужно? Спасибо!