我试图使用MATLAB的曲线拟合工具箱将Hertz模型(抛物线)拟合到某些数据中。
ft = fittype( '(4/3 * sqrt(20E-9)) * (E /(1-0.4^2)) * (d - 0)^(3/2)', 'independent', 'd', 'dependent', 'F' );
opts = fitoptions( ft );
opts.Algorithm = 'Levenberg-Marquardt';
opts.Display = 'Off';
opts.Lower = -Inf;
opts.StartPoint = 1.2E6;
opts.Upper = Inf;
ex = excludedata( xData, yData, 'Indices', [1 2 3... ]);
opts.Exclude = ex;
[fitresult, gof] = fit( xData, yData, ft, opts );
我遇到的问题是它似乎并不能使模型适合数据。未知(杨氏模量E)始终与我给出的相同数字作为起始值。对于这个特殊情况,我知道E应该在3.8E6左右,但从结果中可以看出E仍然保持在起始值1.2E6。但是,我不太清楚括号中的值代表什么。这是E值的错误吗?
General model:
ans(d) = (4/3 * sqrt(20E-9)) * (E /(1-0.4^2)) * (d - 0)^(3/2)
Coefficients (with 95% confidence bounds):
E = 1.2e+06 (6.103e+05, 1.79e+06)
我已经玩了很多迭代次数和终止容差,但问题仍然存在。
任何人遇到同样的问题,或者知道我的错误在哪里?
提前多多感谢!