我想生成一个玩具示例来说明python
中的凸分段线性函数,但我无法找到最佳方法。我想做的是指出行数,然后随机生成函数。
凸分段线性函数定义为:
例如,如果我想要有四条直线,那么我想生成如下所示的东西。
因为有四条线。我需要生成四个递增的随机整数来确定x轴上的间隔。
import random
import numpy as np
random.seed(1)
x_points = np.array(random.sample(range(1, 20), 4))
x_points.sort()
x_points = np.append(0, x_points)
x_points
[0 3 4 5 9]
我现在可以使用前两个点,创建一个随机线性函数,但我不知道如何从那里继续保持凸性。注意,如果函数图形上任何两点之间的线段不位于两点之间的图形之下,则函数被称为凸函数。
2条答案
按热度按时间xienkqul1#
斜率从0开始,通过范围[0,1)中的随机值单调增加。第一个y值也是零,请参见注解。
可能的输出如下所示:
要打印此图:
fkvaft9z2#
确保梯度(=dx/dy)正在增加。伪代码: