【问题标题】:fsolve FunEvals per iterationsfsolve FunEvals 每次迭代
【发布时间】:2017-06-24 12:40:03
【问题描述】:

fsolve 中,您可以设置MaxFunEvals 来限制函数评估的总数。无论如何我可以设置每次迭代的函数评估次数限制吗?

我想减少每次迭代的函数评估。

【问题讨论】:

  • 有点离题,但可能相关,如果您的实际问题是每次迭代的时间消耗。可能还有其他因素需要考虑。考虑对代码的其他部分进行矢量化(如果还没有)

标签: matlab optional-parameters


【解决方案1】:

如果您关注this example as given in the documentation,则表示您想最小化Func-count。不可能直接对该参数设置上限,只能通过MaxIterations 限制迭代次数,或者限制每次迭代的函数评估次数,MaxFunctionEvaluations做。 MaxIterations*MaxFunctionEvaluations 的组合给出了 Func-count 可以达到的最大值。

MaxIterations 输入参数根据 documentation:

允许的最大迭代次数,一个正整数。默认值为400。请参阅Tolerances and Stopping CriteriaIterations and Function Counts

MaxFunctionEvaluations 输入参数说:

允许的最大函数评估次数,一个正整数。默认值为100*numberOfVariables。请参阅容差和停止条件以及迭代和函数计数。

【讨论】:

  • 我不是要限制迭代次数,而是每次迭代的函数评估次数。很抱歉,如果问题中没有明确说明
  • @kirikoumath 应该是您在问题中已经提到的MaxFunctionEvaluations 开关,请参阅引用的文档。
  • MaxFunctionEvaluations 设置为默认值MaxIterations = 10,我在第一次迭代时仍然得到Func-count = 3457。我的目标是限制这个值。
  • 好吧,那就减少函数评估的次数,而不是设置为默认值。另外,请编辑您的问题,以便我可以查看您有多少变量以及您的系统是什么。您发布的(非常简短的)问题的字面答案是MaxFunctionEvaluations
猜你喜欢
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
  • 2012-10-08
  • 1970-01-01
  • 2018-04-12
相关资源
最近更新 更多