function [UU, x, t] = waveleap(J) % WAVELEAP Solve wave equation by staggered leap frog method. % Example: % >> [UU, x, t] = waveleap(100); % >> imagesc(x,t,UU), xlabel x, ylabel t % ELB 4/25/07 c = 1; L = 100; tf = 40; dx = L / J; x = 0:dx:L; dt = 0.5 * dx; N = ceil(tf / dt); dt = tf / N; t = 0:dt:tf; nu = c * dt / dx; UU = zeros(N+1,J+1); UU(1,:) = exp(- (x-50).^2 /4); W = - c * (UU(1,2:J+1) - UU(1,1:J)) / dx; V = zeros(1,J+1); for n = 1:N UU(n+1,:) = UU(n,:) + dt * V; W = W - nu * (V(2:J+1) - V(1:J)); V(2:J) = V(2:J) - nu * (W(2:J) - W(1:J-1)); end