Vejamos um exemplo simples de como usar o python para plotar curvas de nível. Para isso, vamos fazer uso de duas bibliotecas o matplotlib.plot, para fazer o gráfico, e o numpy para os cálculos numéricos.
Como exemplo, vamos plotar as curvas de nível do parabolóide \(f(x,y)=9x^2+4y^2\), no quadrado \([-5,5]\times[-5,5]\).
Código
import matplotlib.pyplot as pltimport numpy as np#define a função a ser plotadadef f(x, y):return9*x**2+4*y**2x = np.linspace(-5, 5, 100)y = np.linspace(-5, 5, 100)X, Y = np.meshgrid(x, y)Z = f(X, Y)plt.contour(X, Y, Z, 10, cmap='Reds')plt.colorbar()plt.show()
10 curvas de nível
Se você quiser que os espaços entre as curvas de nível seja prenchido, basta usar o comando plt.contourf no lugar de plt.contour, como abaixo.
Código
import matplotlib.pyplot as pltimport numpy as npdef f(x, y):return9*x**2+4*y**2x = np.linspace(-5, 5, 100)y = np.linspace(-5, 5, 100)X, Y = np.meshgrid(x, y)Z = f(X, Y)plt.contourf(X, Y, Z, 10, cmap='Reds')plt.colorbar()plt.show()
10 curvas de nível com preenchimento
Por fim, vamos plotar o gráfico da função usando plot_surface.
Código
import matplotlib.pyplot as pltimport numpy as npdef f(x, y):return9*x**2+4*y**2x = np.linspace(-5, 5, 100)y = np.linspace(-5, 5, 100)X, Y = np.meshgrid(x, y)Z = f(X, Y)# criando o ambiente 3dfig = plt.figure()ax = plt.axes(projection='3d')ax.plot_surface(X, Y, Z,cmap='viridis')plt.show()