is an option for various numerical computation and plotting functions that gives an expression to evaluate whenever functions derived from the input are evaluated numerically.


  • The option setting is normally given as EvaluationMonitor:>expr. The :> is used instead of -> to avoid expr being immediately evaluated.
  • Whenever expr is evaluated, all variables in the numerical computation are assigned their current values. Block[{var1=val1,},expr] is effectively used. »


open allclose all

Basic Examples  (4)

Print information with every function evaluation used to find a root:

Count evaluations:

Use Reap and Sow to collect evaluation data:

Show the superlinear convergence of the method:

Monitor the time integration of a wave equation:

Scope  (5)

Monitor the solution progress when solving the sineGordon PDE:

Evaluations for a numerical minimization:

Evaluations for computing a numerical integral with NIntegrate:

Show a plot of the evaluation position versus evaluation number:

Evaluations for solving a differential equation with NDSolve with a extrapolation method:

A plot shows that with this method, not all evaluations are on the solution curve:

Count evaluations for doing a surface plot:

When the function is evaluated, it takes fewer evaluations since symbolic derivatives are used:

Generalizations & Extensions  (2)

Evaluate any expression:

With a different starting value, the computation is stopped:

Distinguish between function and derivative evaluations in doing a numerical minimization:

Show function, gradient, and Hessian evaluations in blue, yellow and red, respectively:

Applications  (6)

Show where evaluations were done for part of a plot using a tooltip that indicates order:

Show number of evaluations required to find a root as a function of starting value:

Compare evaluations required for different local minimization methods:

Compare evaluations and timing required for different ODE integration methods in NDSolve:

Steps and evaluations as a function of PrecisionGoal and AccuracyGoal in NDSolve:

Use a fixed order explicit RungeKutta method:

Use an adaptive order extrapolation method:

Compare the two methods. Beyond a goal of about 12, adaptive order is clearly superior:

Evaluations in parameter space for a nonlinear fit:

The evaluation points on a contour plot of the sum of squares:

Use a better starting value:

Compare the two fits with the data:

Properties & Relations  (1)

Evaluation done for EvaluationMonitor is scoped like Block:

This is effectively using Block with assignments of numerical values of the variable:

Wolfram Research (2003), EvaluationMonitor, Wolfram Language function, https://reference.wolfram.com/language/ref/EvaluationMonitor.html (updated 2007).


Wolfram Research (2003), EvaluationMonitor, Wolfram Language function, https://reference.wolfram.com/language/ref/EvaluationMonitor.html (updated 2007).


Wolfram Language. 2003. "EvaluationMonitor." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2007. https://reference.wolfram.com/language/ref/EvaluationMonitor.html.


Wolfram Language. (2003). EvaluationMonitor. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/EvaluationMonitor.html


@misc{reference.wolfram_2024_evaluationmonitor, author="Wolfram Research", title="{EvaluationMonitor}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/EvaluationMonitor.html}", note=[Accessed: 14-July-2024 ]}


@online{reference.wolfram_2024_evaluationmonitor, organization={Wolfram Research}, title={EvaluationMonitor}, year={2007}, url={https://reference.wolfram.com/language/ref/EvaluationMonitor.html}, note=[Accessed: 14-July-2024 ]}