#python #matplotlib
#python #matplotlib
Вопрос:
Учитель в классе дал эту формулу
w = x**2 y**2 - z**2
и показал его 3D-графику в классе, показанном ниже. Как мне построить это, используя Matplotlib (минус пересекающаяся плоскость)? Я предполагаю, что сначала необходимо выбрать конкретное значение для w, например 10, иначе 3D-построение было бы невозможно. Тогда я должен преобразовать в полярные координаты из-за z * * 2 в формуле? Я попробовал это и потерпел неудачу. Буду признателен за любую помощь. Кроме того, есть ли у этой фигуры имя?
Комментарии:
1. Что касается вашего второго вопроса: это (круговой) гиперболоид
Ответ №1:
Понял. Нашел здесь несколько хороших материалов, и, следуя представленным формулам, у меня есть приведенный ниже код Python.
http://msenux.redwoods.edu/Math4Textbook/Plotting/ParametricSurfaces.pdf
from __future__ import division
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=plt.figaspect(1)) # Square figure
ax = fig.add_subplot(111, projection='3d')
r=1;
u=np.linspace(-2,2,200);
v=np.linspace(0,2*np.pi,60);
[u,v]=np.meshgrid(u,v);
a = 1
b = 1
c = 1
x = a*np.cosh(u)*np.cos(v)
y = b*np.cosh(u)*np.sin(v)
z = c*np.sinh(u)
ax.plot_surface(x, y, z, rstride=4, cstride=4, color='b')
plt.show()