% explicit.m - explicit discretisation of the % heat equation via sparse matrix formulation: % U(new) = A*u(old) dx = .05; x = -1+dx:dx:3-dx; N = length(x); dt = input('dt? '); nu = dt/dx^2; A = (1-2*nu) * speye(N); for i = 1:N-1 A(i,i+1) = nu; A(i+1,i) = nu; end u = max([1-abs(x); 0*x])'; x1 = [-1, x, 3]; u1 = [ 0, u', 0]; while 1 plot(x1,u1,'linewidth',2) axis([-1 3 0 1]), grid, pause u = A*u; x1 = [-1, x, 3]; u1 = [ 0, u', 0]; end