使用fit()和一阶导数的条件

时间:2016-09-20 21:27:07

标签: matlab curve-fitting

是否可以通过某些点拟合曲线并为最终拟合应用条件?

我希望拟合的一阶导数在x = 0时具有某个(强制)。

以下是代码示例:

options = fitoptions;
options.Weights = [1000,1000,1,1,1,1,1,1,1];
myfittype = fittype('(exp(g*x))*(a*(x^5) + b*(x^4) + c*(x^3) + d*(x^2) + e*(x) + f)','coeff',{'g','a','b','c','d','f'},'problem',{'e'});
[moment_fit,gof1] = fit(xdata_fit',momentarray1',myfittype,'problem',{-force});
[shear_fit_values,soilrctn_fit_values] = differentiate(moment_fit,points');

之前在自定义方程中引入指数之前,我曾经通过控制其中一个系数强制函数的导数为某个值,如上所示(如果它是一个没有指数的5次多项式,则值为e是0)处函数的导数。

有可能吗?我已经完成了计算,必须在系数上的条件为g*f + e = force

谢谢

1 个答案:

答案 0 :(得分:1)

为什么不手动计算导数并将系数插入?

myfit_derivative =@(x) exp(myfittype.g .* x) .* (myfittype.f.*myfittype.g + myfittype.e.*(1+myfittype.g.*x)+myfittype.d.*(2.*x+myfittype.g.*x^2)+myfittype.c.*(3.*x^2+myfittype.g.*x^3)+myfittype.b.*(4.*x^3+myfittype.g.*x^4)+myfittype.a.*(5.*x^4+myfittype.g.*x^5));