Teorema de Stockes y Teorema de Gauss
Contents
Teorema de Stockes y Teorema de Gauss#
import time
print(' Última ejecución ', time.asctime() )
Última ejecución Tue Apr 11 18:07:17 2023
Objectivos#
Extender el teorema de Green a 3D. Teorema de Stockes.
Extender el teorema de la divergencia a 3D. Teorema de Gauss.
Mostrar algunos ejemplos sencillos.
# general imports
%matplotlib inline
%reload_ext autoreload
%autoreload 2
# numpy and matplotlib
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
matplotlib.style.use('ggplot')
import graph_utils as gf
figsize = 6, 3.8
cmap = 'hot'
Teorema de Stockes#
Superficies orientables#
Una superficie es orientable si tiene dos caras, por ejemplo, una hoja de papel.
Fíjare en la siguiente figura, es una cinta de Moebius y solo tiene una cara.
Orientación dextrógira
Damos la orientación de una superficie mendiante un giro dextrógiro. Giraremos por la línea de la frontera en sentido anti-horario dejando la superficie siempre a nuestra izquierda.
Observa: la siguiente figura, la superficie y su frontera. El giro dextrógiro seguiría la frontera en sentido contratio al de las agujas del reloj.
R = 2.
rrange, phirange = (0, R, 40), (0, 2*np.pi, 40)
sx = lambda r, phi : r * np.cos(phi)
sy = lambda r, phi : r * np.sin(phi)
sz = lambda r, phi : R*R - sx(r, phi)*sx(r, phi) - sy(r, phi)*sy(r, phi)
cx = lambda phi : R * np.cos(phi)
cy = lambda phi : R * np.sin(phi)
cz = lambda phi : 0. + 0. * phi
gf.wfsurface(sx, sy, sz, rrange, phirange, alpha = 0.4, color='red')
gf.line3d (cx, cy, cz, phirange, newfig = False, alpha = 0.4, color = 'black');
El teorema de Stockes es la generalización del de Green a 3 dimensiones.
Teorema: Sea una superficie \(S\) orientable, cuya frontera \({\bf c}(t)\) se recorre en sentido anti-horario, y parametrizada con \(\sigma(u, v)\), donde \((u, v)\) están definidas en una región \(R\); y sea un campo vectorial con derivadas primeras continuas \({\bf F}(x, y, z) = \left( F_x, F_y, F_z \right)\), se cumple:
Consideremos primero un campo \({\bf F}(x, y, z) = \left( F_x (x, y, z), 0, 0\right)\), y una superficie orientable \(S\) con frontera \({\bf c}\) parametrizada con \(\sigma(x, y, z(x, y) )\) en una región \(R\) de \((x, y)\) con frontera \({\bf d}\).
La integral a lo largo de la frontera \({\bf c}\) en sentido anti-horario es
Donde podemos entender \(F_x(x, y, z(x, y)) = f_x(x, y) \) como una función compuesta que depende de \((x, y)\) directamente e indirectamente via \(z(x, y)\), y podemos re-expresar el último término de la igualdad con una integral de 2 dimensiones.
Y aplicar el teorema de Green:
Aplicando la regla de la cadena, obtenemos:
Por otro lado sabemos el vector \({\bf n}\) de una superficie \(\sigma(x, y) = (x, y, z(x, y))\) es:
Luego podemos reescribir:
Esto es $\( = \oint_{{\bf d}} - \left( \frac{\partial F_x}{\partial y} + \frac{\partial F_x}{\partial z} \frac{\partial z}{\partial y} \right) \, \mathrm{d}x \)$
Si consideramos el vector \({\bf F}(x, y, z) = (0, F_y(x, y, z), 0)\) en la misma superficie obtenemos:
Y finalmente con \({\bf F}(x, y, z) = (0, 0, F_z(x, y, z))\) con parametrización de \(S\) en \(\sigma(x, y(x, z), z)\)
Y por lo tanto, para \({\bf F}(x, y, z) = \left( F_x, F_y, F_z \right)\)
con lo que queda demostrado el teorema de Stockes.
En la siguiente figura se muestra una la malla, la superficie está dividida en pequeños cuadrados. Consideremoslos infinitesimales. Si aplicamos el teorema de Stockes en cada cuadradito, la circulación en sus lados coincide con el rotacional en el centro por el área diferencial del cuadrado.
Si te das cuenta la circulación en dos cuadrados adyacentes se anulan y da como resultado la circulación en la frontera externa. Y esa cantidad debe ser igual a la integral del rotacional en la superficie.
Date cuenta que si la superficie es maleable, el teorema se aplica igualmente, la circulación en todos los cuadraditos es al final siempre la circulación en su frontera, e igual a la integral del rotacional en la superficie, da igual la forma de ésta.
def espira():
xrange = (-2., 2., 10)
Ex = lambda x, y: -y/2 + x/2 # -y/2 #+ x/2
Ey = lambda x, y: x/2 + y/2
gf.quiver2d(Ex, Ey, xrange, xrange);
x0, y0, xside, yside = -1, -1., 2., 2.
gf.square( (x0, y0), xside, yside, color = 'r');
gf.arrow ( x0 + 0.4 * xside, y0 , 0.2 * xside, 0.0 , head = 0.1, color = 'r');
gf.arrow ( x0 + xside , y0 + 0.4 * yside, 0.0 , 0.2* yside, head = 0.1, color = 'r');
gf.arrow ( x0 + 0.6 * xside, y0 + 1.0 * yside, -0.2 * xside, 0.0 , head = 0.1, color = 'r');
gf.arrow ( x0 , y0 + 0.6 * yside, 0.0 , -0.2* yside, head = 0.1, color = 'r');
plt.gca().set_aspect('equal', 'box')
Inciso
Vamos a ver una demostración aproximada del teorema de (Green-Stockes)
Considera la espera de tamaño diferencial, con lados \(\Delta x, \, \Delta y\) con vértice inferior en \((x_0, y_0)\). El campo tiene derivadas parciales continuas, por lo que admite el desarrollo de Taylor.
espira()
Considera la integral por los lados verticales en los que solo partipa \(F_y\). Nota que el lado de la derecha entra con un (+) y el de la izquierda con un (-) en la circulación. La integral podemos aproximarla:
Considera ahora la integral en los lados horizontales, arriba aparece un signa (-) al desplazarnos hacia la izquierda y abajo un signo (+).
Por lo tanto, la integral a lo largo de la espira infinitesimal es:
Ejercicio: Verificar el teorema de Stockes en la superficie dada por la intersección de un cilindro infinito con eje en la dirección \(z\) y base \(x^2 + y^2 = 1\), y el plano \(x+y+z =1\), con \({\bf F}(x, y, z) = (-y^3, x^3, z^3)\)
phirange, zrange = (0., 2*np.pi, 30), (-1, 3, 30)
s1x = lambda z, phi : 1 * np.cos(phi)
s1y = lambda z, phi : 1 * np.sin(phi)
s1z = lambda z, phi : z + 0.*phi
rrange = (0., 1., 20)
s2x = lambda r, phi : r * np.cos(phi)
s2y = lambda r, phi : r * np.sin(phi)
s2z = lambda r, phi : 1 - s2x(r, phi) - s2y(r, phi)
cx = lambda phi : 1 * np.cos(phi)
cy = lambda phi : 1 * np.sin(phi)
cz = lambda phi : 1 - cx(phi) - cy(phi)
gf.wfsurface(s1x, s1y, s1z, zrange, phirange, alpha = 0.4, color='orange')
gf.wfsurface(s2x, s2y, s2z, rrange, phirange, newfig = False, alpha = 0.4, color = 'red');
gf.line3d (cx, cy, cz, phirange, newfig = False, alpha = 0.4, color = 'black');
Fx = lambda x, y, z : -y**3
Fy = lambda x, y, z : x**3
Fz = lambda x, y, z : z**3
Rx = lambda x, y, z : 0
Ry = lambda x, y, z : 0
Rz = lambda x, y, z : 3*x*x + 3*y*y
rrange, phirange = (0., 1, 4), (0, 2*np.pi, 18)
gf.quiver3d_in_wfsurface(Rx, Ry, Rz, s2x, s2y, s2z, rrange, phirange, alpha = 0.5, color = 'red');
gf.wfsurface(s2x, s2y, s2z, rrange, phirange, newfig = False, alpha = 0.8, color = 'orange');
rrange, phirange = (0., 1, 4), (0, 2*np.pi, 50)
gf.quiver3d_in_line3d(Fx, Fy, Fz, cx, cy, cz, phirange, alpha = 0.5, color = 'blue');
gf.line3d(cx, cy, cz, phirange, newfig = False, alpha = 0.8, color = 'black');
Recordemos que la superficie tiene como base un disco de radio unidad y la intersección con el plano \(x + y + z = 1\)
Podemos parametrizar la superficie:
donde:
Y la frontera con la línea:
donde:
El rotacional de \({\bf F} = (-y^3, x^3, z^3)\) es:
La integral en la superfice:
La región \(R\) es el disco de radio unidad, que podemos integrar en polares
recuerda que el Jacobiano en polares es \(r\).
La integral de \({\bf F}\) a lo largo de la frontera:
Que dividimos en dos integrales:
En la primera intergral, si operamos:
Así:
La segunda integral se calcula directamente:
Ejercicio: Verifica el teorema de Stockes con el campo \({\bf F}(x, y, z) = (-y, x, 0)\) en la superficie \(z = 4 - x^2 - y^2\) con \(z \ge 0\).
sx = lambda r, phi : r * np.cos(phi)
sy = lambda r, phi : r * np.sin(phi)
sz = lambda r, phi : 4 - sx(r, phi)*sx(r, phi) - sy(r, phi)*sy(r, phi)
cx = lambda phi : 2. * np.cos(phi)
cy = lambda phi : 2. * np.sin(phi)
cz = lambda phi : 0. + 0. * phi
rrange, phirange = (0, 2, 40), (0, 2*np.pi, 40)
gf.wfsurface(sx, sy, sz, rrange, phirange, alpha = 0.4, color='red')
gf.line3d (cx, cy, cz, phirange, newfig = False, alpha = 0.4, color = 'black');
Fx = lambda x, y, z : -1.*y + 0.*x
Fy = lambda x, y, z : 1.*x + 0.*y
Fz = lambda x, y, z : 0. + 0.*z
Rx = lambda x, y, z : 0.*x
Ry = lambda x, y, z : 0.*y
Rz = lambda x, y, z : 2. + 0.*z
rrange, phirange = (0., 2, 10), (0, 2*np.pi, 16)
gf.quiver3d_in_wfsurface(Rx, Ry, Rz, sx, sy, sz, rrange, phirange, alpha = 0.5, color = 'red');
gf.wfsurface(sx, sy, sz, rrange, phirange, newfig = False, alpha = 0.8, color = 'orange');
gf.line3d(cx, cy, cz, phirange, newfig = False, alpha = 0.2, color = 'black');
gf.quiver3d_in_line3d(Fx, Fy, Fz, cx, cy, cz, phirange, newfig = False, alpha = 0.5, color = 'blue');
Parametrizamos la superficie como una gráfica:
Parametrizamos la frontera, que es la circunferencia de radio 2:
El rotacional:
La integral del rotacional en la superficie:
La región \(R\) es el disco de radio 2, si cambiamos a polares
Y la integral del campo a lo largo de la frontera:
Teorema de Strogradski-Gauss#
El teorema de Gauss corresponde a la extensión del teorema de la divergencia a 3 dimensiones.
Teorema: Sea un volumen regular \(V\), limitado por una superficie cerrada \(S\), y sea un campo vectorial con derivadas primeras continuas \({\bf F}(x, y, z) = \left( F_x, F_y, F_z \right)\), se cumple:
donde la superficie cerrada está definida hacia afuera.
Sea un volumen regular definido por una región \(D\) en \((x, y)\) y \(z_1(x, y) \le z \le z_2(x, y)\), donde \(z_1(x,y), \, z_2(x,y)\) son dos funciones escalares que nos limitan los valores de \(z\).
Consideremos:
r, phirange = 1, (0, 2*np.pi, 20)
theta1range, theta2range = (0, np.pi/2, 16), (np.pi/2, np.pi, 16)
Fx = lambda x, y, z : x
Fy = lambda x, y, z : y
Fz = lambda x, y, z : z
sx = lambda theta, phi : r * np.sin(theta) * np.cos(phi)
sy = lambda theta, phi : r * np.sin(theta) * np.sin(phi)
sz = lambda theta, phi : r * np.cos(theta)
gf.wfsurface(sx, sy, sz, theta1range, phirange, newfig = False, alpha = 0.5, color = 'orange');
gf.wfsurface(sx, sy, sz, theta2range, phirange, newfig = False, alpha = 0.5, color = 'red');
La integral
Donde hemos introducido el término
\(\hat{n}\) es el verctor unitario normal al diferencial de superficie de la superfice dada por \(z_2\), y \(\gamma\) el ángulo que forma \(\hat{n}\) con \(\hat{k}\). Este término es \(1\) para \(z_2\), y es \(-1\) para \(z_1\) dado que hemos definido la superficie hacia fuera.
Así:
Y de forma similar para el resto de sumandos, considerando para cada caso la correspondiente definición de las superficies que limitan el volumen.
Con lo que queda demostrato el teorema de Gauss.
Observa el siguiente cubo construido con cubitos. Si fueran infinitesimales, la integral del flujo en sus caras sería lo mismo que la divergencia en el centro del cubito por su volumen diferencial
Si los cubitos están adyantes el cálculo de su flujo se anula en las paredes que se tocan, y la suma de los flujos en todos los cubitos es igual a la de las caras de la superficie frontera. ¡Mientras que esa cantidad será igual a la suma de la divergencia en cada cubito por su volumen!
Ejemplo: Verifica el teorema de Gauss con el campo \({\bf F}(x, y, z) = (x, y, z)\) en la esfera de radio unidad.
Observa: Como el campo es radial, igual que los elementos diferenciales de área de la esfera.
r, thetarange, phirange = 1, (0., np.pi, 18), (0, 2*np.pi, 18)
Fx = lambda x, y, z : x
Fy = lambda x, y, z : y
Fz = lambda x, y, z : z
sx = lambda theta, phi : r * np.sin(theta) * np.cos(phi)
sy = lambda theta, phi : r * np.sin(theta) * np.sin(phi)
sz = lambda theta, phi : r * np.cos(theta)
gf.quiver3d_in_wfsurface(Fx, Fy, Fz, sx, sy, sz, thetarange, phirange, alpha = 0.5, color = 'red');
gf.wfsurface(sx, sy, sz, thetarange, phirange, newfig = False, alpha = 0.5, color = 'orange');
a) la divergencia \(\nabla \, {\bf F} = 3\)
b) Si parametrizamos la esfera en coordenadas esféricas, ya vimos que
Luego:
Así
Ejercicio: Calcular el flujo del campo \({\bf F}(x, y, z) = (2x, y^2, z^2)\) en la esfera de radio unidad.
Aplicamos el teorema de Gauss,
La integral
Las dos últimas integrales son nulas. Considera la primera. Dividimos el volumen en dos semiesferas \(y \le0\) e \(y \ge 0\), la integral vale lo mismo en cada semiesfera pero con signo cambiado.
La integral que resta es simplemente dos veces el volumen de la esfera:
Ejercicio: Calcular el flujo del campo \({\bf F}(x, y, z) = (x y^2, y x^2, y)\) sobre el cilindro de disco unidad y altura en \(z\) en \([-1, 1]\)
Aplicamos el teorema de Gauss:
La integral del volumen la hacemos en coordenadas cilíndricas, (recuerda que el jacobiano es \(r\)):
Esto es:
