首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LMFIT中的约束参数

LMFIT中的约束参数
EN

Stack Overflow用户
提问于 2020-06-23 21:14:43
回答 1查看 187关注 0票数 0

我有一个目标函数,可以考虑几个参数(a,b,c,d,.)取决于所考虑的数据集的数量。这些参数的约束方式是:

a+b+c+d +..+..<=1

假设我有a,b,c和d;所以a+b+c+d<=delta。我的定义是:

a+b

代码语言:javascript
复制
params = Parameters()
params.add('a', value=0.5, min=0., max=1.)
params.add('m', value=0.5)
params.add('b', expr='m -a')

对于m=delta -c-d,所以c=增量-m-d(我定义n=m-d)

代码语言:javascript
复制
params.add('n', value=0.5)
params.add('delta', value=0.5)
params.add('c', expr='delta-n')

最后n=m=>d=m

代码语言:javascript
复制
params.add('d', expr='m-n')

这是正确的吗?如何设置m,n和δ的最小和最大值?

我遵循在Python lmfit constraints: a < b < c上给出的提示

干杯,曼纽尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-24 02:20:42

我想这没什么。可以在约束表达式上设置min/max值,如

代码语言:javascript
复制
params.add('c', expr='delta-n', min=0, max=1)

但我应该说(如果我正确理解你的问题)我很可能会这样做

代码语言:javascript
复制
params = Parameters()
params.add('a', value=0.25, min=0, max=1)
params.add('b', value=0.25, min=0, max=1)
params.add('c', value=0.25, min=0, max=1)
params.add('delta', value=0.05, min=0, max=1)
params.add('d', expr='1-(a+b+c+delta)', min=0, max=1)

对我来说更简单..。除非你想知道你的mn的值.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62543862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档