下面是一个示例代码,用于绘制三维曲面函数的切平面:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def plot_surface_with_plane(func, xlim, ylim, zlim, plane_pos=0, plane_color='r'):
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 创建网格点
x = np.linspace(xlim[0], xlim[1], 100)
y = np.linspace(ylim[0], ylim[1], 100)
X, Y = np.meshgrid(x, y)
# 计算函数值
Z = func(X, Y)
# 绘制曲面
ax.plot_surface(X, Y, Z, cmap='viridis')
# 绘制切平面
ax.contour(X, Y, Z, levels=[plane_pos], colors=plane_color)
# 设置坐标轴范围
ax.set_xlim(xlim)
ax.set_ylim(ylim)
ax.set_zlim(zlim)
# 设置坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
# 示例函数:z = x^2 + y^2
def example_func(x, y):
return x**2 + y**2
# 绘制z = x^2 + y^2的曲面和切平面
plot_surface_with_plane(example_func, xlim=[-5, 5], ylim=[-5, 5], zlim=[0, 50], plane_pos=20)
这段代码定义了一个plot_surface_with_plane
函数,该函数可以接收一个三维曲面函数和切平面的位置作为参数,并绘制出曲面和切平面的图形。在示例中,我们定义了一个示例函数example_func
,代表z = x^2 + y^2的曲面函数,并绘制了该曲面和切平面在z = 20的位置。您可以根据需要修改或替换示例函数,并调整坐标轴范围和切平面位置来适应您的需求。