MATLAB:多函数拟合
我有一个函数,三个指数之和:MATLAB:多函数拟合,matlab,curve-fitting,data-fitting,model-fitting,Matlab,Curve Fitting,Data Fitting,Model Fitting,我有一个函数,三个指数之和: F = f1*exp1 + f2*exp2 + f3*exp3 确切地说: F=1-((1-f(2)-f(3)).*(exp(-abs(data)./a(1)))+((1-f(1)-f(3)).*(exp(-abs(data)./a(2))))+((1-f(1)-f(2)).*(exp(-abs(data)./a(3))))); 其中f1、f2、f3是一个分数,每个exp都有一个参数,称之为a1、a2和a3 因此,将此函数与实验数据拟合得到六个参数(f1、f2、
F = f1*exp1 + f2*exp2 + f3*exp3
确切地说:
F=1-((1-f(2)-f(3)).*(exp(-abs(data)./a(1)))+((1-f(1)-f(3)).*(exp(-abs(data)./a(2))))+((1-f(1)-f(2)).*(exp(-abs(data)./a(3)))));
其中f1、f2、f3是一个分数,每个exp都有一个参数,称之为a1、a2和a3
因此,将此函数与实验数据拟合得到六个参数(f1、f2、f3、a1、a2、a3)
请注意
a1 > a2 > a3
及
该装配在几个时间段内完成(称为t1、t2、t3……)。因此,对于每个timelag,有一组六个参数
参数a1、a2和a3随着时间的推移呈线性增加(a1(t1)谢谢 首先,我建议减少参数的数量:
- 用1-f1-f2替换f3
- 如果ai(t)始终是线性的,则替换为ai(t)=ai0+bi*t。bi>0时,可以确保ai(t)增加
fmincon
来拟合这些时间点
使用
fmincon
,您可以以非常灵活的方式添加参数约束。您可能要添加约束0您使用什么来拟合参数?函数fmincon
允许您指定相等和不相等约束,您可以使用这些约束来确保a1>a2>a3
和f1+f2+f3始终为1
。
f1 + f2 + f3 = 1