En construccion
# Código Python usando Matplotlib (para generar la gráfica estática) derivada direccional
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# Configuración de la figura
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(111, projection='3d')
# Superficie f(x,y) = e^x sin(y)
x = np.linspace(-1, 1, 50)
y = np.linspace(0, np.pi, 50)
X, Y = np.meshgrid(x, y)
Z = np.exp(X) * np.sin(Y)
ax.plot_surface(X, Y, Z, cmap='viridis', alpha=0.7)
# Punto de interés (0, π/3)
x0, y0 = 0, np.pi/3
z0 = np.exp(x0) * np.sin(y0)
ax.scatter(x0, y0, z0, color='red', s=100, label='Punto (0, π/3)')
# Vectores (gradiente y dirección unitaria)
grad = [np.sqrt(3)/2, 1/2] # ∇f(0,π/3)
u = [-3/5, 4/5] # Vector unitario de v=(-6,8)
# Escalado para visualización
scale = 0.5
ax.quiver(x0, y0, z0, grad[0]*scale, grad[1]*scale, 0, color='blue', label='∇f (Gradiente)')
ax.quiver(x0, y0, z0, u[0]*scale, u[1]*scale, 0, color='green', label='u (Dirección)')
# Derivada direccional (pendiente en la dirección de u)
dz = grad[0]*u[0] + grad[1]*u[1] # D_u f = ∇f · u
ax.text(x0-0.5, y0, z0+1, f'D_u f = {dz:.3f}', color='black', fontsize=12)
# Configuración adicional
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('f(x,y)')
ax.set_title('Derivada Direccional de f(x,y) = e^x sin(y) en (0, π/3)')
ax.legend()
plt.tight_layout()
plt.show()