Método de Euler

Nivel UniversitarioDificultad ★★★★★Método⌖ Ver en el mapa

¿Qué es?

El resolvedor numérico de EDO más sencillo: seguir la tangente durante un paso de tiempo pequeño, yk+1=yk+h f(tk,yk)y_{k+1} = y_k + h\,f(t_k, y_k). De primer orden (error O(h)O(h)), fácil de desestabilizar y, en su forma semiimplícita, el integrador por defecto de la física de videojuegos.

¿Por qué existe?

La mayoría de las EDO no tienen solución cerrada. La idea de Euler (1768): conocemos la pendiente en el punto actual, así que suponemos que no cambia durante un rato corto, avanzamos y repetimos. Convierte cualquier EDO en un bucle.

Intuición

Caminar con los ojos cerrados abriéndolos cada hh segundos para comprobar el rumbo. Con hh pequeño sigues el camino de cerca. Con hh grande te desvías, y en una órbita circular sales en espiral porque cada paso por la tangente abandona la circunferencia. Error por paso O(h2)O(h^2), acumulado en 1/h1/h pasos: O(h)O(h).

Definición formal

Euler explícito: yk+1=yk+h f(tk,yk)y_{k+1} = y_k + h\,f(t_k, y_k). Error global max⁡k∣y(tk)−yk∣=O(h)\max_k|y(t_k) - y_k| = O(h) para ff lipschitziana. En la ecuación de prueba y′=λyy' = \lambda y (λ<0\lambda < 0) solo es estable si ∣1+hλ∣≤1|1 + h\lambda| \le 1, es decir, h≤2/∣λ∣h \le 2/|\lambda|.

Fórmulas

yk+1=yk+h f(tk,yk)y_{k+1} = y_k + h\,f(t_k, y_k)
Euler explícito
vk+1=vk+h F(xk)m,xk+1=xk+h vk+1v_{k+1} = v_k + h\,\frac{F(x_k)}{m}, \qquad x_{k+1} = x_k + h\,v_{k+1}
Euler semiimplícito (simpléctico), usado en motores de juego
θk+1=θk−η ∇L(θk)⟺θ˙=−∇L(θ)\theta_{k+1} = \theta_k - \eta\,\nabla L(\theta_k) \quad\Longleftrightarrow\quad \dot\theta = -\nabla L(\theta)
el descenso de gradiente es Euler explícito sobre el flujo de gradiente

¿Cómo se calcula?

t, y = t0, y0
mientras t < T:
    y = y + h * f(t, y)
    t = t + h

En mecánica, actualiza primero la velocidad y después la posición con la velocidad nueva (semiimplícito): la energía se mantiene acotada en vez de crecer.

Ejemplo

y′=−2yy' = -2y, y(0)=1y(0) = 1 (exacta e−2te^{-2t}), paso h=0,1h = 0{,}1: yk=0,8ky_k = 0{,}8^k, así que y(1)≈0,810=0,107y(1) \approx 0{,}8^{10} = 0{,}107 frente a e−2=0,135e^{-2} = 0{,}135. Con h=1,5h = 1{,}5: yk=(−2)ky_k = (-2)^k; la solución numérica explota mientras la real decae. Eso es inestabilidad numérica.

¿Por qué importa?

Todo motor de videojuegos avanza su mundo con una variante de Euler a 60 Hz. Y el algoritmo más importante del aprendizaje automático es el método de Euler disfrazado: el descenso de gradiente es Euler explícito aplicado al flujo de gradiente θ˙=−∇L\dot\theta = -\nabla L, con el learning rate como paso de tiempo; por eso su límite de estabilidad η<2/λmax⁡\eta < 2/\lambda_{\max} es el límite de estabilidad de Euler.

Aplicaciones en informática

  • Motores físicos★★★★★fundamentalFísica y simulación

    Euler semiimplícito es el integrador por defecto de Box2D, Bullet y la mayoría de motores de juego.

Dónde aparece en IA

  • Descenso de gradiente★★★★★avanzadaIA y machine learning

    El descenso de gradiente es Euler explícito sobre θ˙=−∇L\dot\theta = -\nabla L; el learning rate es el paso de tiempo y hereda su límite de estabilidad.

  • Modelos generativos★★★★★avanzadaIA y machine learning

    Los muestreadores de difusión y flow matching integran una EDO/EDE aprendida con pasos tipo Euler.

¿Dónde se utiliza?

Temas de informática a los que se llega desde aquí, con la cadena de ideas que lleva a ellos:

Qué depende de él

Ejercicios

1Cálculo directo

Haz tres pasos de Euler con h=0,5h = 0{,}5 para y′=t−yy' = t - y, y(0)=1y(0) = 1.

Solución

y1=1+0,5(0−1)=0,5y_1 = 1 + 0{,}5(0 - 1) = 0{,}5; y2=0,5+0,5(0,5−0,5)=0,5y_2 = 0{,}5 + 0{,}5(0{,}5 - 0{,}5) = 0{,}5; y3=0,5+0,5(1−0,5)=0,75y_3 = 0{,}5 + 0{,}5(1 - 0{,}5) = 0{,}75 (exacta y(1,5)=1,5−1+2e−1,5≈0,946y(1{,}5) = 1{,}5 - 1 + 2e^{-1{,}5} \approx 0{,}946).

2Informática

Simula un planeta en órbita circular con Euler explícito. ¿Qué le pasa a su energía? ¿Cómo lo arregla Euler semiimplícito?

Solución

Cada paso explícito avanza por la tangente, fuera de la circunferencia: el radio y la energía crecen en cada paso y el planeta sale en espiral. Euler semiimplícito es simpléctico: conserva una energía ligeramente perturbada, así que la órbita sigue cerrada durante muchísimo tiempo.

3IA

Explica con el método de Euler por qué un learning rate mayor que 2/λmax⁡(H)2/\lambda_{\max}(H) hace divergir el entrenamiento.

Solución

Cerca de un mínimo ∇L≈H(θ−θ∗)\nabla L \approx H(\theta - \theta^\ast), así que el descenso de gradiente es Euler sobre e˙=−He\dot e = -He. En el vector propio dominante, ek+1=(1−ηλmax⁡)eke_{k+1} = (1 - \eta\lambda_{\max})e_k, que crece cuando ∣1−ηλmax⁡∣>1|1 - \eta\lambda_{\max}| > 1, es decir, η>2/λmax⁡\eta > 2/\lambda_{\max}.

↑ ↓ para navegar · ↵ · Esc