Ecuación de Burgers

Métodos Numéricos Avanzados. 2023-2024

David Gómez-Castro

Universidad Complutense de Madrid

Ecuación de Burgers

La ecuación de Burgers corresponde a un fluido que se mueve con velocidad \(v = \rho/2\), es decir \(F = v \rho\) y

\[ \frac{\partial \rho}{\partial t} = - \frac{\partial}{\partial x} \frac {\rho^2} 2 \]

El \(2\) procede de \(\frac{\partial \rho}{\partial t} =- \rho \frac{\partial \rho }{\partial x}\).

Dato inicial

\[ \rho_0 = \min\Big(1,\max(2-4|x|,0)\Big) \]

using Plots, LaTeXStrings, Printf

plot_ρ(x,ρ,t) = plot(x, ρ, ylim=[0.0,1.5],
    title=@sprintf("t = %0.3f", t),
    linewidth=2,thickness_scaling = 1.5,label="")
plot_ρ (generic function with 1 method)
N  = 64; 
x  = range(-1.0,1.0,N+1); x = vec(x[1:end-1])
Δx = x[2] - x[1]
ρ0(x) = min.(1,max.(-4*abs.(x).+2,0))

plot_ρ(x,ρ0(x),0)

Soluciones exactas

Soluciones exactas. Shocks

Si intentamos buscar soluciones exactas \(\rho_t (X_t ) = \rho_0 (y)\) deducimos que \[ \frac{dX_t}{dt} (t) = \rho_0(y) \]

Luego \(\rho_t (y + \rho_0(y) t) = \rho_0(y)\)

y = copy(x)

@gif for t=0:0.01:2
    plot_ρ( y + ρ0(y)*t , ρ0(y), t )
end