Advertisement
Guest User

Untitled

a guest
Oct 4th, 2015
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. % Program 8.2 Backward difference method for heat equation
  2. % input: space interval [xl,xr], time interval [yb,yt],
  3. % number of space steps M, number of time steps N
  4. % output: solution w
  5. % Example usage: w=heatbd(0,1,0,1,0.02,0.02)
  6. function w=heatbd(xl,xr,yb,yt,h,k)
  7. f = @(x) 2*cosh(x); % Oppgave 1a
  8. l = @(t) 2*exp(2*t);
  9. r = @(t) (exp(2)+1)*exp(2*t-1);
  10. D=2; % diffusion coefficient
  11. M=(xr-xl)/h; % number of space steps
  12. n=(yt-yb)/k; % number of time steps
  13. m=M-1;
  14. sigma=D*k/(h*h);
  15. a=diag(1+2*sigma*ones(m,1))+diag(-sigma*ones(m-1,1),1);
  16. a=a+diag(-sigma*ones(m-1,1),-1); % define matrix a
  17. lside=l(yb+(0:n)*k); rside=r(yb+(0:n)*k);
  18. w(:,1)=f(xl+(1:m)*h)'; % initial conditions
  19. for j=1:n
  20. w(:,j+1)=a\(w(:,j)+sigma*[lside(j);zeros(m-2,1);rside(j)]);
  21. end
  22. w=[lside;w;rside]; % attach boundary conds
  23. x=(0:m+1)*h;t=(0:n)*k;
  24. mesh(x,t,w') % 3-D plot of solution w
  25. view(60,30);axis([xl xr yb yt -1 60])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement