Advertisement
Guest User

heat.m

a guest
Dec 9th, 2014
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.64 KB | None | 0 0
  1. function heat(t_i,t_f,a,l,dx,dt,c)
  2.     n      = (t_f-t_i)/dt;
  3.     m      = (l-a)/dx;
  4.     lambda = c^2*dt/dx^2;
  5.     u      = zeros(m+1,n+1);
  6.  
  7.     x = a:dx:l;
  8.     t = t_i:dt:t_f;
  9.  
  10.     for j=1:m+1,
  11.         u(j,1) = sin(x(j));     % u(x,0) = g(x)
  12.     end
  13.  
  14.     for k=1:n
  15.         u(1,k+1)=0.;            % u(0,t) = 0
  16.         for j=2:m
  17.             u(j,k+1)=u(j,k)+lambda*(u(j+1,k)-2*u(j,k)+u(j-1,k))+dt*x(j);
  18.         end
  19.         u(m+1,k+1)=0.;          % u(l,t) = 0
  20.     end
  21.  
  22.     % exact solution comparison
  23.     for j=1:m
  24.         for k=1:n
  25.             [j k x(j) t(k) u(j,k) exp(-3*t(k))*sin(x(j))+x(j)*t(k)]
  26.         end
  27.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement