2017-06-24 6 views
0

In fsolve können Sie MaxFunEvals festlegen, um die Gesamtzahl der Funktionsauswertungen zu begrenzen. Kann ich trotzdem die Anzahl der Funktionsauswertungen pro Iteration begrenzen?fsolve FunEvals pro Iterationen

Ich möchte pro Iteration weniger Funktionsauswertungen vornehmen.

+0

Ein wenig off-topic, aber möglicherweise relevant, wenn das eigentliche Problem der Zeitverbrauch jeder Iteration ist. Es kann andere Faktoren geben, die berücksichtigt werden müssen. Erwägen Sie, andere Teile Ihres Codes zu vektorisieren (wenn nicht schon) –

Antwort

-1

Wenn Sie this example as given in the documentation folgen, wird es so angezeigt, als ob Sie Func-count minimieren möchten. Es ist unmöglich, direkt setzen Sie eine Begrenzung für diesen Parameter, alles, was man tun kann, ist entweder die Anzahl der Iterationen, durch MaxIterations, oder begrenzen Sie die Anzahl der Funktionen Bewertungen pro Iteration, die MaxFunctionEvaluations tut. Die Kombination von diesem, MaxIterations*MaxFunctionEvaluations, gibt den maximalen Wert Func-count kann erreichen.

Das MaxIterations Eingabeargument gemäß den documentation:

Maximale Anzahl von Iterationen erlaubt, eine positive ganze Zahl ist. Der Standardwert ist 400. Siehe Tolerances and Stopping Criteria und Iterations and Function Counts.

Die MaxFunctionEvaluations Eingabeargument sagt:

Maximale Anzahl der Funktionsauswertungen erlaubt, eine positive ganze Zahl ist. Der Standardwert ist 100*numberOfVariables. Siehe Toleranzen und Stoppkriterien und Iterationen und Funktionenzählung.

+0

Ich versuche nicht, die Anzahl der Iterationen zu begrenzen, sondern die Anzahl der Funktionsbewertungen pro Iteration. Es tut mir leid, wenn das in der Frage – kirikoumath

+0

@kirikoumath nicht klar war, dass der 'MaxFunctionEvaluations' Schalter sein sollte, den Sie bereits in Ihrer Frage erwähnen, sehen Sie die zitierten Dokumente. – Adriaan

+0

mit 'MaxFunctionEvaluations' auf den Standardwert' MaxIterations = 10' gesetzt, bekomme ich immer noch 'Func-count = 3457' in der ersten Iteration. Mein Ziel ist es, diesen Wert zu begrenzen. – kirikoumath