Guest User

Untitled

a guest
Apr 22nd, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.63 KB | None | 0 0
  1. function unew = convdiff(u, a, d, dx, dt)
  2.     n = size(u, 2);
  3.     unew = zeros(size(u));    
  4.    
  5.     amu = (a * (dt / dx));
  6.     nm1 = ((amu/2) * (1 + amu)) + ((d*dt)/(dx^2));
  7.     np0 = 1 - (amu^2) - ((2*d*dt)/(dx^2));
  8.     np1 = ((d*dt)/(dx^2)) + (amu - 1)*(amu/2);
  9.    
  10.     %unew(1) = (((amu/2) * (1 + amu) + (d*dt/(dx^2))) * u(n - 1)) + (((1 - (amu)^2) - ((2*d*dt)/(dx^2))) * u(1)) - (((amu/2) * (1 - amu) - (d*dt/(dx^2))) * u(2));
  11.     unew(1) = (nm1 * u(n-1)) + (np0 * u(1)) - (np1 * u(2));
  12.     unew(end) = unew(1);
  13.    
  14.     for i = 2:(n-1)
  15.         unew(i) = ((nm1 * u(i-1)) + (np0 * u(i)) + (np1 * u(i + 1)));
  16.     end
  17.    
  18. end
Add Comment
Please, Sign In to add comment