Try our new documentation site (beta).
Filter Content By
Version
Text Search
${sidebar_list_label} - Back
Filter by Language
![next](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/next.png?x70725)
![up](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/up.png?x70725)
![previous](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/prev.png?x70725)
Next: Dealing with big-M constraints Up: Tolerances and user-scaling Previous: Advanced user scaling
Avoid hiding large coefficients
As we said before, a typical recommendation for improving numerics is to limit the range of constraint matrix coefficients. The rationale behind this guideline is that terms to be added in a linear expression should be of comparable magnitudes so that rounding errors are minimized. For example:
![\begin{eqnarray*}
x - 10^{6} y &\geq& 0 \
y&\in&[0,10]
\end{eqnarray*}](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/img209.png?x70725)
is usually considered a potential source of numerical instabilities due to the wide range of the coefficients in the constraint. However, it is easy to implement a simple (but useless) alternative:
![\begin{eqnarray*}
x - 10 y_1 &\geq& 0\
y_1 - 10 y_2 &=& 0\
y_2 - 10 y_3 &=& ...
... &=& 0\
y_4 - 10 y_5 &=& 0\
y_5 - 10 y &=& 0\
y&\in&[0,10]
\end{eqnarray*}](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/img210.png?x70725)
This form certainly has nicer values in the matrix. However, the solution
![<span>$</span>y=-10^{-6}, x=-1<span>$</span>](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/img211.png?x70725)
![\begin{eqnarray*}
x - 10^{6} y &\geq& 0 \
y&\in&[0,10]
\end{eqnarray*}](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/img209.png?x70725)
as
![\begin{eqnarray*}
x - 10^{3} y' &\geq& 0 \
y'&\in&[0,10^4]\
\end{eqnarray*}](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/img212.png?x70725)
where
![<span>$</span>10^{-3} y' = y<span>$</span>](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/img213.png?x70725)
![<span>$</span>x<span>$</span>](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/img9.png?x70725)
![<span>$</span>-10^{-3}<span>$</span>](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/img214.png?x70725)
![<span>$</span>y<span>$</span>](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/img26.png?x70725)
![<span>$</span>-10^{-9}<span>$</span>](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/img215.png?x70725)
![next](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/next.png?x70725)
![up](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/up.png?x70725)
![previous](https://www.gurobi.com/wp-content/plugins/hd_documentations/documentation/8.1/refman/prev.png?x70725)
Next: Dealing with big-M constraints Up: Tolerances and user-scaling Previous: Advanced user scaling
![](/wp-content/plugins/hd_documentations/content/images/documentation-ampl-guide.webp?x70725)
![](/wp-content/plugins/hd_documentations/content/images/documentation-cloud.webp?x70725)
![](/wp-content/plugins/hd_documentations/content/images/documentation-example-tour.webp?x70725)
![](/wp-content/plugins/hd_documentations/content/images/documentation-quick-start.webp?x70725)
![](/wp-content/plugins/hd_documentations/content/images/documentation-reference-manuals.webp?x70725)
![](/wp-content/plugins/hd_documentations/content/images/documentation-remote-services.webp?x70725)
![](/wp-content/plugins/hd_documentations/content/images/quickstart-os-linux.webp?x70725)
![](/wp-content/plugins/hd_documentations/content/images/quickstart-os-mac-osx.webp?x70725)
![](/wp-content/plugins/hd_documentations/content/images/quickstart-os-windows.webp?x70725)