% implicit.m - implicit discretisation of the % heat equation via sparse matrix formulation: % A*u(new) = u(old) dx = .025; 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