SuperNotes by yuri.rodrix

Notas de Yuri.Rodrix


Página tipo blog en el que voy a publicar mis notas de aprendizaje, en especial de temas como matemáticas, física y quizá algo de programación

Redes neuronales
Redes neuronales
Redes neuronales
Redes neuronales
Redes neuronales
Redes neuronales

Cálculo multivariable

Hasta ahora una función tomaba un número y devolvía un número, y su derivada medía una sola pendiente. Aquí damos el salto al espacio: funciones de varias variables, donde el dominio ya no es una recta sino un plano o un volumen, y donde a cada punto le podemos asignar un número (un campo escalar) o una flecha (un campo vectorial). Todo el aparato se reduce a un solo operador, ∇, y es exactamente el que, un par de posts más adelante, escribe las ecuaciones de Maxwell y hace radiar una antena.

=x,y,z  fgradiente ,Fdivergencia ,×Frotacional\nabla=\Big\langle\tfrac{\partial}{\partial x},\,\tfrac{\partial}{\partial y},\,\tfrac{\partial}{\partial z}\Big\rangle\ \Rightarrow\ \underbrace{\nabla f}_{\text{gradiente}}\ ,\quad \underbrace{\nabla\cdot\mathbf F}_{\text{divergencia}}\ ,\quad \underbrace{\nabla\times\mathbf F}_{\text{rotacional}}

La idea unificadora del post. El gradiente, la divergencia y el rotacional no son tres temas distintos: son el mismo operador ∇ aplicado de tres maneras — a un escalar, como producto punto con un vector y como producto cruz con un vector. Si entiendes ∇, entiendes los tres.

Derivadas parciales: una pendiente por dirección

Una derivada parcial congela todas las variables menos una y deriva como en una variable. Es, literalmente, la derivada que ya conoces mirando en una sola dirección:

fx=fx=xf=limh0f(x+h,y)f(x,y)h\frac{\partial f}{\partial x}=f_x=\partial_x f=\lim_{h\to0}\frac{f(x+h,\,y)-f(x,\,y)}{h}

Si paras sobre la superficie z=f(x,y)z=f(x,y) y la cortas con un plano paralelo al eje xx, obtienes una curva 1D; la pendiente de su tangente es f/x\partial f/\partial x. Cortas en la otra dirección y obtienes f/y\partial f/\partial y. Juntar esas dos pendientes en un vector es el gradiente:

f=(fx, fy, fz)\nabla f=\Big(\frac{\partial f}{\partial x},\ \frac{\partial f}{\partial y},\ \frac{\partial f}{\partial z}\Big)

El gradiente apunta en la dirección de máximo ascenso y su norma dice qué tan empinada es la subida. Manipúlalo en 3D: la superficie z=f(x,y)z=f(x,y) hace la idea evidente. Desliza el corte amarillo (un plano y=y0y=y_0 constante): lo que queda dibujado sobre la superficie es una curva 1D, z=f(x,y0)z=f(x,y_0) — una función de una sola variable, la del post de derivadas. El corte magenta hace lo mismo fijando x=x0x=x_0. En el punto donde se cruzan, la pendiente de cada curva es su derivada parcial, y las dos juntas son la flecha verde del gradiente sobre el piso. Debajo, las mismas dos rebanadas en 2D —gobernadas por los mismos sliders— confirman que cada corte es, literalmente, una función de una variable.

z=f(x,y)=x2+y2z=f(x,y)={ x}^{2}+{ y}^{2}
escena 3D (desplázate aquí)
corte y=y0y=y_0 (amarillo)y0=0.8y_0=-0.8
corte x=x0x=x_0 (magenta)x0=1.2x_0=1.2

En la intersección, la pendiente de cada corte es su parcial:

fx=2.39,fy=1.6\frac{\partial f}{\partial x}=2.39,\quad \frac{\partial f}{\partial y}=-1.6

y juntas forman el gradiente (flecha verde en el piso):

f=(2.39,1.6),  f=2.88\nabla f=(2.39,\,-1.6),\ \ \|\nabla f\|=2.88

El gradiente vive en el plano del dominio (el piso) y apunta hacia donde la superficie sube más rápido. Arrastra con el mouse para orbitar.

Corte amarillo: z=f(x,y0)z=f(x,\,y_0) — función de x (eje horizontal), con y0=0.8y_0=-0.8 fijo. La pendiente de la tangente es f/x=2.39\partial f/\partial x=2.39.

Corte magenta: z=f(x0,y)z=f(x_0,\,y) — función de y (eje horizontal), con x0=1.2x_0=1.2 fijo. La pendiente es f/y=1.6\partial f/\partial y=-1.6.

Campos vectoriales: divergencia y rotacional

Un campo vectorial F=(P,Q)\mathbf F=(P,Q) asigna una flecha a cada punto: el viento, la corriente de un río, el campo eléctrico. De él, ∇ extrae dos números con significado físico inmediato.

Divergencia

F=Px+Qy+Rz\nabla\cdot\mathbf F=\frac{\partial P}{\partial x}+\frac{\partial Q}{\partial y}+\frac{\partial R}{\partial z}

Cuánto brota el campo de un punto. Positiva = fuente, negativa = sumidero, cero = lo que entra sale (incompresible).

Rotacional

×F=(RyQz, PzRx, QxPy)\nabla\times\mathbf F=\Big(\frac{\partial R}{\partial y}-\frac{\partial Q}{\partial z},\ \frac{\partial P}{\partial z}-\frac{\partial R}{\partial x},\ \frac{\partial Q}{\partial x}-\frac{\partial P}{\partial y}\Big)

Cuánto gira el campo alrededor de un punto. Una ruedita de paletas puesta ahí giraría a esta velocidad.

Pero, ¿por qué esa suma de parciales mide una fuente, y esa resta mide un giro? Antes de creer las fórmulas, contémoslas con una sola cajita. Encierra un punto y mira sus lados. Para la divergencia contamos el flujo que cruza las caras: por la derecha el campo deja salir P(x+s2,y)P(x{+}\tfrac{s}{2},y), por la izquierda entra P(xs2,y)P(x{-}\tfrac{s}{2},y), y lo que sale de más es P(x+s2)P(xs2)PxsP(x{+}\tfrac{s}{2})-P(x{-}\tfrac{s}{2})\approx \tfrac{\partial P}{\partial x}\,s — la misma resta del cociente incremental, ahora sobre una cara. Suma los dos pares de caras, divide entre el área y encoge la caja: eso es la divergencia. Para el rotacional, la misma caja pero recorriendo las aristas a lo largo (tangencialmente): ahí los dos pares se restan en vez de sumarse, y eso mide el giro. Usa el toggle del widget, escribe tu propio P(x,y)P(x,y)/Q(x,y)Q(x,y) o un preset, orbita la escena y mueve la caja:

flujo normal por las caras → ¿brota?
escena 3D (desplázate aquí)

El balance de la caja, lado por lado

El flujo de cada cara es (valor del campo) · (longitud de la cara), con la misma normal del par. La contribución a la fuente es la resta cara de adelante − cara de atrás — el mismo siguiente − anterior de la derivada. (En el 3D: verde = el campo sale, rojo = entra.)

Par de caras en x (largo Δy = 1)
P · cara derecha1.79 = 1.79·Δy
P · cara izquierda0.19 = 0.19·Δy
derecha − izquierda = 1.79 − 0.19 = 1.599 ÷ área = 0.999
  =ΔPΔy    Px=0.999\;=\Delta P\,\Delta y\;\Rightarrow\;\frac{\partial P}{\partial x}=0.999
Par de caras en y (largo Δx = 1.6)
Q · cara de arriba1.76 = 1.1·Δx
Q · cara de abajo0.16 = 0.1·Δx
arriba − abajo = 1.76 − 0.16 = 1.6 ÷ área = 1
  =ΔQΔx    Qy=1\;=\Delta Q\,\Delta x\;\Rightarrow\;\frac{\partial Q}{\partial y}=1
¿Por qué flujo/área da justo la suma de parciales?
ΔPΔycaras x+ΔQΔxcaras yΔxΔyaˊrea=ΔPΔyΔxΔy+ΔQΔxΔxΔy=ΔPΔx+ΔQΔy    Δ0    Px+Qy\frac{\overbrace{\Delta P\,\Delta y}^{\text{caras }x}+\overbrace{\Delta Q\,\Delta x}^{\text{caras }y}}{\underbrace{\Delta x\,\Delta y}_{\text{área}}}=\frac{\Delta P\,\cancel{\Delta y}}{\Delta x\,\cancel{\Delta y}}+\frac{\Delta Q\,\cancel{\Delta x}}{\cancel{\Delta x}\,\Delta y}=\frac{\Delta P}{\Delta x}+\frac{\Delta Q}{\Delta y}\;\xrightarrow{\;\Delta\to0\;}\;\frac{\partial P}{\partial x}+\frac{\partial Q}{\partial y}

El flujo de una cara trae su longitud (Δy\Delta y en las caras x); el área trae ΔxΔy\Delta x\,\Delta y. Esa longitud se cancela y queda solo la pendiente perpendicular. Por eso «sumar sobre una cara y dividir entre el área» devuelve una sola parcial.

Con tus números: ΔP=1.6\Delta P=1.6, ΔQ=1\Delta Q=1, Δx=1.6\Delta x=1.6, Δy=1\Delta y=1.

flujo netoaˊrea2=Px0.999+Qy1= ⁣ ⁣F1.999\underbrace{\frac{\text{flujo neto}}{\text{área}}}_{2}=\underbrace{\frac{\partial P}{\partial x}}_{0.999}+\underbrace{\frac{\partial Q}{\partial y}}_{1}=\underbrace{\nabla\!\cdot\!\mathbf F}_{1.999}

Cada derivada parcial es el desbalance de un par de lados — la misma resta f(x+Δ)f(x)f(x{+}\Delta)-f(x) de 1D, ahora sobre una cara. La fórmula no se postula, se cuenta.

centro x1
centro y0.6
Δx\Delta x1.6
Δy\Delta y1

Encoge la caja (Δx,Δy0\Delta x,\Delta y\to0): flujo/aˊrea\text{flujo}/\text{área} (2) converge al valor exacto  ⁣ ⁣F\nabla\!\cdot\!\mathbf F en el centro (1.999) — igual que la secante se volvía tangente al achicar Δx\Delta x en tu post de derivadas.

La única diferencia entre las dos operaciones es un signo: la divergencia suma los dos pares (P/x+Q/y\partial P/\partial x + \partial Q/\partial y), el rotacional los resta (Q/xP/y\partial Q/\partial x - \partial P/\partial y). Pon Vórtice (gira, pero no brota) y Fuente (brota, pero no gira) y compara: misma caja, distinta cuenta.

Integrales múltiples y los teoremas

Integrar en varias variables es la misma suma de Riemann de tu post de integrales, pero acumulando sobre un área o un volumen:

RfdA=limΔx0Δy0i,jf(xi,yj)ΔxΔy\iint_R f\,dA=\lim_{\substack{\Delta x\to0\\ \Delta y\to0}}\sum_{i,j} f(x_i,y_j)\,\Delta x\,\Delta y

Lo asombroso es que estas integrales sobre una región se pueden leer solo desde su borde. Esa es la familia de teoremas que cierra el cálculo multivariable, y de hecho la caja de arriba ya la insinuó: el flujo por su contorno igualaba la suma de las parciales encerradas, y la circulación por sus aristas, el rotacional de dentro:

Green / Stokes

RFdl=R(QxPy)dA\oint_{\partial R}\mathbf F\cdot d\mathbf l=\iint_R\Big(\frac{\partial Q}{\partial x}-\frac{\partial P}{\partial y}\Big)\,dA

La circulación por el contorno = integral del rotacional dentro.

SFdlcirculacioˊn=S(×F)dAStokes\underbrace{\oint_{\partial S}\mathbf F\cdot d\mathbf l}_{\text{circulación}}=\underbrace{\iint_S(\nabla\times\mathbf F)\cdot d\mathbf A}_{\text{Stokes}}

Divergencia (Gauss)

VFdAflujo=V(F)dVdivergencia\underbrace{\oiint_{\partial V}\mathbf F\cdot d\mathbf A}_{\text{flujo}}=\underbrace{\iiint_V(\nabla\cdot\mathbf F)\,dV}_{\text{divergencia}}

El flujo por la superficie cerrada = integral de la divergencia dentro.

¿De dónde sale esa igualdad entre el borde y el interior? De la misma cajita de antes, repetida. Enlosa la región con muchas celdas: cada pared interna la comparten dos celdas, y el flujo que sale de una entra a la otra — se cancelan. Solo el borde exterior queda sin vecino, así que la suma de todos los balances locales colapsa al flujo por la frontera. Sube el número de celdas y míralo:

escena 3D (desplázate aquí)

De muchas cajas a una sola integral

Cada celda tiene su propio balance de flujo. En una pared interna, lo que sale de una celda entra a su vecina: los dos aportes son iguales y opuestos, así que se cancelan (por eso se ven tenues). Solo las flechas del borde exterior (gruesas) sobreviven. Sumar el flujo de todas las celdas = el flujo por el borde:

RFn^dlborde=celdas(flujo de la celda)internas se cancelan=R( ⁣ ⁣F)dAinterior\underbrace{\oint_{\partial R}\mathbf F\cdot\hat n\,dl}_{\text{borde}}=\underbrace{\sum_{\text{celdas}}\big(\text{flujo de la celda}\big)}_{\text{internas se cancelan}}=\underbrace{\iint_R(\nabla\!\cdot\!\mathbf F)\,dA}_{\text{interior}}
∮ borde F·n dl
15.36
Σ flujo de las 9 celdas
15.36
∬ (∇·F) dA
15.359

Los tres números coinciden: es el teorema de Green en su forma de flujo (el de la divergencia en el plano). Sube el número de celdas y míralo: el desorden interno se anula, el borde manda.

celdas por lado3
ancho región3.2
alto región2.4

Lectura unificada. Los tres teoremas dicen lo mismo: integrar la derivada (∇) sobre una región = evaluar la función en su frontera. Es el teorema fundamental del cálculo de tu primer post, subido a dimensiones más altas.

Puente a antenas

Aquí se cierra el círculo de la serie. Las ecuaciones de Maxwell en forma diferencial son, palabra por palabra, los operadores que acabas de manipular:

Ley de Gauss = divergencia

E=ρε0\nabla\cdot\mathbf E=\frac{\rho}{\varepsilon_0}

La divergencia del campo eléctrico es la densidad de carga: las cargas son las fuentes de E\mathbf E (el disco rojo del laboratorio).

Ley de Faraday = rotacional

×E=Bt\nabla\times\mathbf E=-\frac{\partial\mathbf B}{\partial t}

Un campo magnético que cambia en el tiempo enrolla un campo eléctrico a su alrededor (el arco del rotacional). De este acople nace la onda que radia la antena.

En el simulador FDTD ese ×\nabla\times se calcula como diferencias finitas sobre la malla de Yee, exactamente como la sonda de aquí estima (×F)z(\nabla\times\mathbf F)_z con un cociente incremental. Nada nuevo: solo Maxwell discretizado en el tiempo.