matlab非线性拟合参数上下限限制怎么做?

如果用lsqcurvefit拟合,但是拟合的参数有范围要求的同时还需要满足一个等式,比如要求四个参数的范围在0-1之间,与此同时还要求这四个参数之和为1,这种情况下怎么设置参数区间才行呢?
我之前的思路是先少设置一个参数的上下限,然后最后一个参数用等式求解,但这种情况下可能会出现三个参数之和大于1的情况,导致无法同时满足参数和为1与参数取值区间为0-1,所以想请教这种情况下如何进行拟合呢?

分析了题主的问题,仅拟合参数上下限限制,是不能满足四个参数之和为1。建议题主应创建一个带归一化语句的自定义函数,即
x11=x1/(x1+x2+x3+x4)
x22=x2/(x1+x2+x3+x4)
x33=x3/(x1+x2+x3+x4)
x44=x4/(x1+x2+x3+x4)
y=a*x11+b*x22+c*x33+d*x44
a、b、c、d为拟合函数的系数
温馨提示:答案为网友推荐,仅供参考
相似回答