如何使用条件范围与lsqcurvefit参数?
5视图(30天)
显示旧的评论
我想符合指数曲线的一组数据(指数累积分布函数)。
我想解出的参数
λ
,
,
,但是有一些我需要绑定的参数条件。
“
和
既非负的值可以是0但是两个值不能大于0的同时”
以及“
的自然对数
λ
可以是任何值在0和4之间。”
有,我将能够使用lsqcurvefit定义这些条件参数来解决吗?如果不是我的方法拟合曲线数据应该如何?下面是我试图使用lsqcurvefit没有之间的条件
和
。
xdata = 0:7;
ydata = 100 * 0.112543130593672 - 0.814735805710535 [0 1 1 1 1 1);
磅=(日志(1),0,0);
乌兰巴托=(日志(4),100);%如何定义上界条件?
有趣= @ (x, xdata) (1 - exp (- x (1) * (xdata-x (2))) + x (3));
x = lsqcurvefit(有趣,(0,0,0),xdata, ydata,磅,乌兰巴托)
阴谋(1 * ydata xdata,“同意”,“MarkerSize”,20)
持有在
情节有趣(xdata 1 * (x, xdata))
接受的答案
马特·J
2023年1月25日
编辑:马特·J
2023年1月25日
你必须把这个问题分为两种情况:一种情况下,X0 Y0时固定在0和第二固定在零。
xdata = 0:7;
ydata = 100 * 0.112543130593672 - 0.814735805710535 [0 1 1 1 1 1);
磅= (exp (0), 0, 0);
乌兰巴托= (exp (4), 100);
%例1:Y0 = 0
有趣= @ (x, xdata) (1 - exp (- x (1) * (xdata-x (2))));
x = lsqcurvefit(有趣,(0,0),xdata ydata,磅(1:2),乌兰巴托(1:2));
索尔{1}= [x (1), (2), 0];
%例2:X0 = 0
有趣= @ (x, xdata) (1 - exp (- x (1) * (xdata)) + x (2));
x = lsqcurvefit(有趣,(0,0),xdata ydata,磅([1,3]),乌兰巴托([1,3]));
索尔{2}= [x (1) 0 (2)];
现在测试每个解决方案和看到resnorm给最好的。显然,溶胶的{2}是最好的:
有趣= @ (x)规范(1 - exp (- x (1) * (xdata-x (2))) + x (3) -ydata);
乐趣(sol {1})
乐趣(sol {2})