FindMinimum::cvmit FindMaximum::cvmit FindFit::cvmit FindRoot::cvmit

Details
-
- This message is generated when the indicated limit on the number of iterations is reached before finding a region that contains the requested result.
- This error can occur if the objective function does not have the required minimum, maximum, or root.
- This error can often be corrected by choosing better starting values.
- Good starting values can often be chosen by evaluating the function at selected points, or by looking at a plot of the function.
- This error can also occur if the nonlinearity of the partial differential equation model is too strong. Then the error can be corrected by solving the PDE in steps.
- Off[message] switches off the message; On[message] switches it on. For example: Off[FindMinimum::cvmit].
Examples
Basic Examples (4)
The starting value is not near the local minimum of this function:

A minimum is computed without difficulty if the starting value is closer to the solution:
A plot of the function shows the location of the minimum:
The first argument in FindRoot does not have a real root:

A complex root of this equation can be computed by giving complex starting values:
The first argument in FindMinimum does not have a minimum:

Highly nonlinear partial differential equations may fail to solve when the nonlinearity is too strong. Consider this hyperelastic example from solid mechanics, where a rectangular region is held fixed on the left and the material is pulled on the right. Set up the model:
Solve the model for a specific force of :
Solve the model for a higher force of :

The model fails to solve because the nonlinearity has become too strong. Not all hope is lost, however. If this happens, a solver restart may help. The idea is to slowly increase the load and use the solution from the last step as a starting point for the next step until the maximum force has been applied.
A parametric function is created with a load parameter that will control the amount of force applied:
Next, set up an iteration with an initial displacement of 0 and where you want to get to the full force in 10 steps:
When you run the parametric function with a specific parameter , you get a displacement for that force. This displacement is used as an initial seed for the next-higher value of
until you reach the full force: