Local Solver 分段操作符
利用分段(piecewise)操作符在LocalSolver中引入分段线性函数。分段线性函数是由直线段组成的函数。每条直线的末端称为断点。我们定义分段函数是按照从左到右的顺序给出它的所有断点。
分段操作符接受3个参数:
- 一个非递减数组,包含“n”个常量,“n”>= 2。
- 一个包含“n”常量的数组。
- 整数或双精度表达式
如果第三个操作数的值严格小于第一个数组的第一个元素,或严格大于第一个数组的最后一个元素,则此解决方案将不可行。该操作符返回一个浮点数。
表达式piecewise(x,y,z) 通过几何点(x[0], y[0]), (x[1], y[1]), .... (x[n-1], y[n-1])定义的函数返回z的图像。
比如 piecewise({0,
50,
100},
{0,
10,
100},
75) 将返回55.
下图说明了由 y <-piecewise({0,10,15,48.2},{1,2,-0.5,3.15}, x) 定义的曲线。
请注意,当 x < 0 或 x > 48.2 时,此表达式返回未定义的值。在这种情况下,如果在目标或约束中(直接或间接)使用了此未定义值,则该解决方案将被视为无效。
函数定义中允许存在不连续性,即两个几何点可以共享相同的 x 坐标。按照惯例,函数在这样一个不连续点处取的值是与数组中最后一次出现此 x 坐标相关联的值。
例如piecewise({0,
50,
50,
100},
{0,
0.1,
0.9,
1},
50) 返回0.9.
下图说明了由 y <-piecewise({0 ,10 ,10 ,30 ,30 , 48.2}, {1, 1, 2, 2, 3.15, 3.15}, x) 定义的曲线。
这种阶梯形状通常是有用的,但允许使用任何其他不连续的线性函数。
学习过程中如有其他关于localsolver的问题,请联系local Solver中国区总代理商无锡迅合信息科技有限公司数学工程师或售前。谢谢!