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

如何使用Matplotlib与Numpy绘制3D不等式(曲面图形式)

使用Matplotlib与Numpy绘制3D不等式组的曲面图

首先需要明确:你的不等式组存在有效区域约束条件,先推导变量的有效范围:

  • 由 y > 1/4 和 y < 2x - 1 可得 2x - 1 > 1/4 → x > 5/8
  • 由 z > 1/3 和 z < x + y - 1 可得 x + y - 1 > 1/3 → y > 4/3 - x,结合 y < 2x -1 可得 4/3 - x < 2x -1 → x > 7/9
  • 最终x的有效范围是 (7/9, 1),y的范围是 (max(1/4, 4/3 -x), 2x -1),z的范围是 (1/3, x+y-1)

实现代码(曲面图形式)

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 创建画布和3D坐标轴
fig = plt.figure(figsize=(10,8))
ax = fig.add_subplot(111, projection='3d')

# 生成x的有效区间采样点
x = np.linspace(7/9, 1, 100)

# 计算y的上下边界
y_lower = np.maximum(1/4, 4/3 - x)
y_upper = 2 * x - 1

# 绘制y的上下边界曲面(沿z轴拉伸)
x_grid, z_grid = np.meshgrid(x, np.linspace(1/3, 1, 100))
y_lower_surf = np.tile(y_lower, (100, 1))
y_upper_surf = np.tile(y_upper, (100, 1))
ax.plot_surface(x_grid, y_lower_surf, z_grid, alpha=0.3, color='blue')
ax.plot_surface(x_grid, y_upper_surf, z_grid, alpha=0.3, color='blue')

# 绘制z的上下边界曲面
x_grid, y_grid = np.meshgrid(x, np.linspace(y_lower.min(), y_upper.max(), 100))
# 筛选符合y范围的网格点
mask = (y_grid > np.maximum(1/4, 4/3 - x_grid)) & (y_grid < 2 * x_grid - 1)
z_lower = np.full_like(x_grid, 1/3)
z_upper = x_grid + y_grid - 1

# 仅绘制有效区域内的z曲面
ax.plot_surface(x_grid[mask], y_grid[mask], z_lower[mask], alpha=0.3, color='green')
ax.plot_surface(x_grid[mask], y_grid[mask], z_upper[mask], alpha=0.3, color='green')

# 绘制x的边界平面
y_grid_z, z_grid_z = np.meshgrid(np.linspace(y_lower.min(), y_upper.max(), 100), np.linspace(1/3, 1, 100))
ax.plot_surface(np.full_like(y_grid_z, 7/9), y_grid_z, z_grid_z, alpha=0.3, color='red')
ax.plot_surface(np.full_like(y_grid_z, 1), y_grid_z, z_grid_z, alpha=0.3, color='red')

# 设置坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

# 显示图形
plt.show()

代码说明

  • 先通过数学推导锁定变量有效范围,避免绘制无意义区域
  • 使用plot_surface绘制每个不等式对应的边界曲面,通过alpha参数设置透明度,清晰展示曲面围成的空间区域
  • 用mask筛选符合条件的网格点,仅保留有效区域内的曲面绘制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:03:15