Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function unew = convdiff(u, a, d, dx, dt)
- n = size(u, 2);
- unew = zeros(size(u));
- amu = (a * (dt / dx));
- nm1 = ((amu/2) * (1 + amu)) + ((d*dt)/(dx^2));
- np0 = 1 - (amu^2) - ((2*d*dt)/(dx^2));
- np1 = ((d*dt)/(dx^2)) + (amu - 1)*(amu/2);
- %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));
- unew(1) = (nm1 * u(n-1)) + (np0 * u(1)) - (np1 * u(2));
- unew(end) = unew(1);
- for i = 2:(n-1)
- unew(i) = ((nm1 * u(i-1)) + (np0 * u(i)) + (np1 * u(i + 1)));
- end
- end
Add Comment
Please, Sign In to add comment