习题2.5
习题2.5代码
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 参数
a = 2
b = np.sqrt(10)
c = np.sqrt(8)
# 创建u和v的网格
u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(-np.pi / 2, np.pi / 2, 100)
u, v = np.meshgrid(u, v)
# 计算x, y, z的值
x = a * np.sinh(v) * np.cos(u)
y = b * np.sinh(v) * np.sin(u)
z = c * np.cosh(v)
# 创建图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 绘制曲面
ax.plot_surface(x, y, z, cmap='viridis')
# 设置标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('Hyperboloid of One Sheet')
# 显示图形
plt.show()
import numpy as np
import pandas as pd
import sympy as sp
sp.init_printing(use_unicode=True)
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Times New Roman + SimSun + WFM Sans SC']
plt.rcParams['mathtext.fontset']='cm'
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['figure.dpi'] = 200
# plt.rcParams['figure.figsize'] = [4, 3]
# plt.rcParams['font.size'] = 12
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'
u = np.linspace(0,2*np.pi,50)
v = np.linspace(-np.pi/2,np.pi/2,50)
u, v = np.meshgrid(u, v)
x = 2*np.cosh(v)*np.cos(u)
y = np.sqrt(10)*np.cosh(v)*np.sin(u)
z = 2*np.sqrt(2)*np.sinh(v)
fig = plt.figure(dpi=300)
ax = fig.add_subplot(projection='3d')
ax.plot_surface(x, y, z, cmap='ocean')
plt.show()