未知值仍为起始值 - 曲线拟合工具箱MATLAB

时间:2014-05-28 11:36:41

标签: matlab curve-fitting levenberg-marquardt

我试图使用MATLAB的曲线拟合工具箱将Hertz模型(抛物线)拟合到某些数据中。

enter image description here

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)

我已经玩了很多迭代次数和终止容差,但问题仍然存在。

任何人遇到同样的问题,或者知道我的错误在哪里?

提前多多感谢!

0 个答案:

没有答案