绘制函数 z=[sin√(x∧2+y∧2)]/ √(x∧2+y∧2)] 的三维曲面图,编程实现并观察mesh函数的不同绘制效果。
时间: 2024-10-09 07:15:44 浏览: 63
要绘制函数 \(z = \frac{\sin(\sqrt{x^2 + y^2})}{\sqrt{x^2 + y^2}}\) 的三维曲面图,并观察mesh函数的不同绘制效果,你可以使用Python的matplotlib库以及numpy进行数值计算。这里是一个简单的示例,我们将使用`plot_surface`函数绘制默认的网格效果,然后使用`Triangulation`和`plot_trisurf`展示更精细的三角网格。
```python
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.tri import Triangulation
# 定义函数
def function(x, y):
return np.sin(np.sqrt(x**2 + y**2)) / np.sqrt(x**2 + y**2)
# 创建等间距的x和y坐标
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
# 计算Z值
Z = function(X, Y)
# 绘制默认的网格图
fig1 = plt.figure()
ax1 = fig1.add_subplot(projection='3d')
ax1.plot_surface(X, Y, Z, cmap='viridis', alpha=0.8)
ax1.set_xlabel('X')
ax1.set_ylabel('Y')
ax1.set_zlabel('Z')
ax1.title.set_text('Default Mesh Surface')
# 使用Triangulation绘制更精细的网格
tri = Triangulation(X.ravel(), Y.ravel())
Z_tri = function(X.ravel(), Y.ravel()).reshape(tri.triangles.shape[1:])
fig2 = plt.figure()
ax2 = fig2.add_subplot(projection='3d')
ax2.plot_trisurf(tri, Z_tri, triangles=tri.triangles, cmap='viridis', linewidth=0.5)
ax2.set_xlabel('X')
ax2.set_ylabel('Y')
ax2.set_zlabel('Z')
ax2.title.set_text('Refined Triangle Mesh')
plt.show()
阅读全文