EDA365电子论坛网

标题: 一个关于lsqnonlin的小问题 [打印本页]

作者: flamesmnm    时间: 2021-5-21 14:06
标题: 一个关于lsqnonlin的小问题
Solver stopped prematurely.. p0 i& X( [6 o. c

9 h" j# K$ m# V* n) T) T7 P& ~lsqnonlin stopped because it exceeded the function evaluation limit,; J9 c# n3 D$ u  G
options.MaxFunEvals = 700 (the default value).( B+ z. e" j8 I
! W' \6 a* `7 `7 c) U- \* H
lsqnonlin迭代计算貌似异常中止了?超过函数评估极限是什么意思?7 d& |/ c/ ^4 T  f

! v  A, F* r) Boutput =7 O. W/ j$ a2 C: B6 H$ w
; a7 p9 [; d1 |; B& ~' O; p
    firstorderopt: 0.005095521762489& F" M3 n0 O* o& k& p! V
       iterations: 87
3 \. a! N+ g( \) s        funcCount: 704
$ I+ u* \. J9 B+ b  k/ p& a     cgiterations: 0
1 J2 Q. t  [) [  h% o' y0 w        algorithm: 'trust-region-reflective'0 P, N! P* ]5 ], K6 e) s
          message: [1x144 char]
0 X# k' R+ {; U3 x! i# |4 I  Q另外我无论用什么初值,迭代次数都是87,是否这个是默认的最大迭代次数?,我通过在lsqnonlin上一行输入op=optimset('MaxFunEvals',1000,'MaxIter',1000)想改变最大迭代次数,但貌似没效果,lsqnonlin修改迭代次数不是用这种方法吗?求解!

1 U1 U) o7 h8 `' |5 r+ _+ E
作者: nevadaooo    时间: 2021-5-21 14:37
如果重新设置了参数还不行,则可能是陷入了局部最优,建议换迭代初值试试
作者: qq666888qqw    时间: 2021-5-21 16:39
& U/ I; a0 g6 A& I6 q
因为迭代过程中函数计算次数超过了MaxFunctionEvaluations的限制了,MaxFunctionEvaluations默认是100x变量数目n(x0的长度),迭代一次需要计算n+1次函数值。比如n=2,采用默认设置,最多迭代66次。光设置MaxIterations没用




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2