如何用python绘制单叶双曲面

用python中np.sqrt表示单叶双曲面的函数,绘制出来的单叶双曲面只有一半,这个该怎么解决呢

用sympy画了,利用plot3D函数 范围取在了(-6,6)


from sympy.plotting import plot3d
from sympy.abc import x,y
from sympy.functions import sqrt
plot3d((sqrt(((x**2)/8+(y**2)/10-1)*6),(x,-6,6),(y,-6,6)),(-sqrt(((x**2)/8+(y**2)/10-1)*6),(x,-6,6),(y,-6,6)))


import numpy as np
import matplotlib.pyplot as plt

# 定义参数范围
u = np.linspace(-5, 5, 100)
v = np.linspace(-5, 5, 100)

# 创建参数网格
U, V = np.meshgrid(u, v)
print(U)
print(V)
# 计算曲面坐标
X = np.cosh(U) * np.cos(V)
Y = np.cosh(U) * np.sin(V)
Z = np.sqrt(np.square(X) + np.square(Y))

# 绘制曲面
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')

# 设置图形标题
plt.title('Single-leaf Hyperboloid')

# 显示图形
plt.show()

调整参数范围对单叶双曲面的形状和大小产生影响的原因是,参数范围决定了曲面上的点在 u 和 v 方向上的变化程度。

在单叶双曲面的参数化方程中,参数 u 和 v 控制着曲面上每个点的坐标。当 u 和 v 的取值范围变化时,会导致参数化方程生成的点在 u 和 v 方向上的变化程度不同。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇文章:python sqrt函数的使用 也许有你想要的答案,你可以看看
  • 除此之外, 这篇博客: 【Python入门练习】1C 两点之间的距离中的 sqrt() 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    描述

    • 返回平方根

    模块

    • math
    # 整个导入
    import math
    
    # 只导入sqrt
    from math import sqrt
    

    语法

    from math import sqrt
    
    sqrt(3.2)
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^