matlab问题 最优解

我有X和Y的一组数据想要求其他三个参数的最优解,应该怎么实现。。。。
公式为Y=A1*(1-exp(-A2*X^A3))
A1 A2 A3为未知数 想要求出他们的最优解。。。。
谢谢各位大神

zhyj8810的回答思路是最为正确的——对超越形式的拟合,需要通过变换化为非超越形式,这可大大提高matlab的处理能力。但zhyj8810的等价推导有误:
Y = A1*(1-exp(-A2*X^A3))
<==>

1 - exp(-A2*X^A3) = Y / A1
<==>
exp(-A2*X^A3) = 1 - Y / A1
<==>
A2*X^A3 = - ln(1-Y/A1)
<==>
X^A3 = - [ ln(1-Y/A1) ] / A2.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-19
X = [...];
Y = [...];
ff = @(a, b, c, x)(a*(1-exp(-b*x.^c)));
typ = fittype(ff);
[fitobject,gof] = fit(X, Y, typ);
ci = coeffvalues(fitobject); % 得到a b c
matlab2012b,用到了curve fit 工具箱
第2个回答  2013-09-19
这是一个优化为题。问题可以转化为 min Y-[A1*(1-exp(-A2*X^A3))] 转化为
min -X^A3=[1-log(Y/A1)]/A2.。然后将他们写成矩阵的形式,可以用matlab自带的最小二乘解搞定