分段函数图
PiecewisePlot(Piecewise(f(x)))处理分段函数,会区分不同区间或点集进行渲染(例如,用曲线表示连续部分,用点表示离散部分)。
x -- 输入, 符号变量.
阶梯电价模型
Piecewise(
(0.5 * x, And(x >= 0, x <= 100)), # 第一档电价
(50 + 0.8*(x-100), And(x > 100, x <= 200)), # 第二档
(130 + 1.2*(x-200), x > 200), # 第三档
(0, True) # 默认值(实际不会触发)
)
PiecewisePlot(Piecewise((0.5x, And(x>= 0, x<=100)),(50+0.8*(x-100), And(x >100,x<=200)),(130+1.2*(x-200),x> 200),(0,True)))
汽车制动距离模型
Piecewise(
(0.01*v**2, v <= 30), # 低速制动
(9 + 0.015*(v-30)**2, v > 30), # 高速制动
(0, True) # 默认值
)
PiecewisePlot(Piecewise((0.01*v^2, v<=30),(9+0.015*(v-30)^2, v>30),(0, True)))
医疗输液控制
Piecewise(
(20, And(t >= 0, t < 10)), # 初始快速滴注
(5, And(t >= 10, t < 60)), # 维持速率
(0, t >= 60), # 结束输液
(0, True) # 时间无效
)
PiecewisePlot(Piecewise((20, And(t>=0, t<10)),(5, And(t>=10, t<60)),(0, t>=60),(0, True)))
温度阈值控制系统
Piecewise(
(0, T < 10), # 低温关闭
(0.5*(T-10), And(T >= 10, T < 30)), # 线性调节
(10, T >= 30) # 高温限幅输出
)
PiecewisePlot(Piecewise((0, T<10),(0.5*(T-10), And(T>=10, T<30)),(10, T>= 30)))
绝对值函数
Piecewise(
(-x, x < 0), # 负区间
(x, x >= 0) # 非负区间
)
PiecewisePlot(Piecewise((-x, x<0),(x, x>=0)))