避免隐藏较大的系数

避免隐藏较大的系数

正如我们前面所说的,改进数值的一个典型建议是限制约束矩阵系数的范围。这一准则背后的基本原理是,在线性表达式中添加的术语应该具有相当的大小,以便将舍入误差降至最低。例如:

\ {eqnarray *}开始x - 10 ^{6}上的y & \组0 \ \ y \ [0, 10] \ {eqnarray *}结束


通常被认为是一个潜在的数值不稳定的来源,因为在约束的系数范围很宽。然而,很容易实现一个简单的(但无用的)替代方案:

\ {eqnarray *}开始x - 10 y_1 & \ \ \ y_1组0 - 10 y_2 & = & 0 \ \ y_2 - 10 y_3  &=& ... ...& = & 0 \ \ y_4 - 10 y_5 & = & 0 \ \ y_5 - 10 y & = & 0上的\ \ y \ [0, 10] \ {eqnarray *}结束


这个形式在矩阵中当然有更好的值。然而,解决方案 < span > < / span > y = -10美元^ {6},x = 1美元< span > < / span >可能仍被认为是可行的(在允许范围内)。一个更好的选择是重新制定

\ {eqnarray *}开始x - 10 ^{6}上的y & \组0 \ \ y \ [0, 10] \ {eqnarray *}结束


作为

\ {eqnarray *}开始x - 10 ^ {3} y ' & \组0 \ \ y ' &上的\ [0,10 ^ 4]\ \ \ {eqnarray *}结束


在哪里 <span>$</span>10^{-3} y' = y<span>$</span>.在此设置中,最负的值为< span > < /美元跨度> x < span > < / span >美元哪个可能被认为是可行的< span > < / span > -10美元^ {3}< span > < / span >美元,对于< span > < / span > y < span >美元< / span >这将是< span > < / span > -10美元^ {9}< span > < / span >美元,这比原来的情况有了明显的改善。