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

Using fit() with conditions for the first derivative

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

我希望拟合的 一阶导数 在 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

谢谢

为什么不直接手动计算导数并将系数代入?

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));