You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python解决含参数线性不等式组并可视化参数坐标系

Python实现(α, β)坐标系中不等式组的区域可视化

先简化原不等式组

原不等式组:

αy ≥ x + y
β
x ≥ x + y
x > 0, y > 0

因为x、y都是正数,直接对不等式变形简化:

  • 第一个不等式两边除以y,得到 α ≥ 1 + x/y,令t = x/y(t>0),则条件变为 α ≥ 1 + t
  • 第二个不等式两边除以x,得到 β ≥ 1 + y/x,也就是 β ≥ 1 + 1/t(t>0)

要存在正数t同时满足这两个式子,等价于:α>1、β>1,且(α-1)*(β-1)≥1。

代码实现

用numpy生成网格点,matplotlib绘制满足/不满足条件的点:

import numpy as np
import matplotlib.pyplot as plt

# 生成α和β的采样范围,这里取0到5,各200个点
alpha = np.linspace(0, 5, 200)
beta = np.linspace(0, 5, 200)
# 生成二维网格点
alpha_grid, beta_grid = np.meshgrid(alpha, beta)

# 标记满足条件的点:α>1,β>1,且(α-1)(β-1)≥1
mask = (alpha_grid > 1) & (beta_grid > 1) & ((alpha_grid - 1) * (beta_grid - 1) >= 1)

# 绘图
plt.figure(figsize=(8, 8))
# 先画不满足条件的红色点
plt.scatter(alpha_grid[~mask], beta_grid[~mask], color='red', s=5, label='不满足条件')
# 再画满足条件的绿色点
plt.scatter(alpha_grid[mask], beta_grid[mask], color='green', s=5, label='满足条件')

# 添加辅助线和边界曲线
plt.axvline(x=1, color='gray', linestyle='--')
plt.axhline(y=1, color='gray', linestyle='--')
# 绘制(α-1)(β-1)=1的边界曲线
t = np.linspace(0.01, 4, 100)
plt.plot(1 + t, 1 + 1/t, color='black', label='边界:(α-1)(β-1)=1')

# 设置图表属性
plt.xlabel('α')
plt.ylabel('β')
plt.title('(α, β)坐标系中不等式组的满足区域')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()

代码说明

  • 用meshgrid生成二维网格点,覆盖指定的α和β范围
  • mask变量是布尔数组,标记每个网格点是否满足条件
  • 先绘制红色不满足点,再绘制绿色满足点,避免颜色覆盖
  • 添加灰色虚线α=1、β=1,以及黑色边界曲线,清晰展示区域划分

内容的提问来源于stack exchange,提问作者baring

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:01:46