% Advection diffusion with small viscosity % % Boundary conditions % % T=1; alpha=1; beta=3; % m=100; h=T/(m+1); xx=[h:h:T-h]'; visc=0.005; u=alpha+xx+(beta-alpha-1)*(exp(xx/visc)-1)./(exp(1/visc)-1); plot([0;xx;T],[alpha;u;beta]); e=ones(m,1); A=1/(h^2)*spdiags([e -2*e e],-1:1,m,m); %D=1/(2*h)*spdiags([-e e],[-1 1],m,m); D=1/h*spdiags([-e e],-1:0,m,m); F=-ones(m,1); F(1,1)=F(1,1)-alpha*visc/(h^2)-alpha/(h);%alpha/(2*h); F(end,1)=F(end,1)-beta*visc/(h^2); Am=visc*A-D; U=Am\F; hold on plot([0;xx;T],[alpha;U;beta],'r') hold off