在求和lsqcurvefit并不遵循收敛标准。

51视图(30天)
我有一个函数,使用求和来适应一个bi-exponential函数。因为我要从适合检索其他信息,不幸的是我不能使用exp2-fit函数。至于过程在8部分(n = 8)。数据是在t (xdata)和S (ydata)。每个条款1 - 8个人的贡献(yfit_n)计算然后相加在一起,得到的最终结果符合(yfit)。拟合的因数有7个变量向量x或x0各自startin点(x(2)在这个阶段不使用)。
FS_1 = 0.05;
FS_2 = 2.0264;
d = 1的军医;
dy = 1 e-5;
n = 1:8;
t = t_S_mathworks (: 1);
S = t_S_mathworks (:, 2);
x0 =兰德(7,1);
有趣= @ (x, t) x (1) + (3) . * (FS_1 + FS_2 *总和(((1 . ^ n) / n。^ 2)。* (1-cos (n *π* dy / d))
. * (x (4)。* exp (- x (6) * (t) * n ^ 2。*π/ d ^ ^ 2. 2)
(5)+ x。* exp (- x (7) * (t) * n。^ 2。*π/ d ^ ^ 2. 2)), 2));
选项。OptimalityTolerance = 1 e15汽油;
[x, resnorm] = lsqcurvefit(有趣,x0, t, S);
因为我得到了国旗,表明收敛性判据太低我想改变,但它fit-options成立,我想。
适合后聚合(但不是给一个有用的结果)我检查收敛性判据,它不是1的新e15汽油所取代。
优化完成:一阶最优性措施,1.132517 e-08,
小于选项。OptimalityTolerance = 1.000000 e-06。
当我检查配合使用
S_fitted = x (1) + (3) . * (FS_1 + FS_2 *总和(((1 . ^ n) / n。^ 2)。* (1-cos (n *π* dy / d))
. * (x (4)。* exp (- x (6) * (t) * n ^ 2。*π/ d ^ ^ 2. 2)
(5)+ x。* exp (- x (7) * (t) * n。^ 2。*π/ d ^ ^ 2. 2)), 2));
情节(t, S_fitted)
我明白了,只有前两个数据点给除了最小的数据点。看来配件本身并没有发生。我inlcued reproducable让你看到的错误数据。我希望这只是一个贝宁错误我现在似乎不能定位。
也感谢所有的帮助。
愿一切都好!
克里斯
3评论
Torsten
Torsten 2023年5月30日21:10
@Alex沙 有自己的软件,通常以非凡的好结果拟合问题。

登录置评。

接受的答案

马特·J
马特·J 2023年5月27日19:23
适合后聚合(但不是给一个有用的结果)我检查收敛性判据,它不是1的新e15汽油所取代。
因为你没有选择变量传递给 lsqcurvefit
选项。OptimalityTolerance = 1 e15汽油;
[x, resnorm] = lsqcurvefit(有趣,x0, t, S,[],[],选项);
7评论

登录置评。

更多的答案(0)

s manbetx 845


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!