Info
此问题已关闭。 请重新打开它进行编辑或回答。
Fmincon: Impossible values obtained. Solver prematurely stopped due to MaxFunEvals has reached.
1 次查看(过去 30 天)
显示 更早的评论
Observe this formula:
dbc = (db./(sin(180./nb) + (pi./nb))); %Burner circle diameter
db = 1.5 * tf;
nb = (8:20) %Thus, (sin(180./nb) will always be positive
Now, look at the results,
tf =
1.2895
1.2895
nb =
8.0001
8.0001
dbc =
-20.5260
-20.5260
How am I getting a negative value of dbc even though, all the values are positive?
This leads to the following error:
Solver stopped prematurely.
fmincon stopped because it exceeded the function evaluation limit,
options.MaxFunEvals = 500 (the default value).
I tried increasing MaxFunEvals (to at the most 2500) but, the error still remains.
2 个评论
回答(1 个)
Walter Roberson
2018-3-22
Why would sin(180./nb) always be positive? You are requesting sine of 9 radians through sine of 22.5 radians, which spans more than 2*Pi radians and so will pass through every possible value that sin can produce.
4 个评论
Walter Roberson
2018-3-22
For much of the region permitted by your bounds, the qout "Heat leaving" calculated your Lobo function is positive, approaching 10300, which would seem to make sense. However, in the region near the X above, the qout is somewhat negative, approaching -30000. If your starting point were within the "basin of attraction" of that firmly negative region and if that region is ruled out by one of your nonlinear constraints, then fmincon (which is a local minimizer) might not be able to determine a direction that is able to escape from the forbidden region.
In the tracking that I did without considering the nonlinear constraint, I was searching near [0.480032473824172523, 7.45783314076774762, 590.200000000000159, 19.9999999999992468, 0.104986038979125673] before I changed the bounds to focus more towards X you got. The value is positive near that point and the first parameter especially was creeping higher, more towards 1, but the 590.2 (which is one of your lower bounds) was being pretty much stuck to and the 19.9* (upper bound 20) was being pretty much stuck to.
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!