Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all
- close all
- clc
- dx = 0.1
- dt=0.001
- X1=0: dx: 1
- X2=0: dx: 1
- T = 0: dt: 1
- M = zeros(length(X1),length(X2))
- N = zeros(length(X1),length(X2))
- for i = 2 : 1 : 10
- for j = 2 : 1 : 6
- N(i,j) = 1
- end
- end
- for i = 6 : 1 : 10
- for j = 5 : 1 : 10
- N(i,j) = 1
- end
- end
- for j = 2 : 1 : 6
- N(2, j) = 6
- end
- for j = 2 : 1 : 10
- N(10, j) = 5
- end
- for i = 3 : 1 : 9
- N(i, 2) = 3
- end
- for i = 6 : 1 : 9
- N(i, 10) = 4
- end
- for i = 6 : 1 : 10
- N(5, i) = 6
- end
- for i = 3 : 1 : 4
- N(i, 6) = 4
- end
- N(5, 6) = 10
- for i=1:1:length(X1)
- for j=1:1:length(X2)
- if N(i,j) ~= 0
- M(i,j) = sin(pi*X1(i))*cos(pi*X2(j))+1;
- end
- end
- end
- lista = {M}
- for k=2: 1: length(T)
- a = lista{end};
- b = zeros(size(a));
- for i=2:1:length(X1)-1
- for j=2:1:length(X2)-1
- if N(i,j) == 1
- b(i,j) = dt/(dx)^2 *(a(i-1,j)+a(i+1,j)+a(i,j-1)+a(i,j+1)-4*a(i,j))+a(i,j);
- end
- end
- end
- for i = 1 : 1 : length(X1)
- if N(i,j) == 2
- b(i,j) = 0
- elseif N(i,j) == 3
- b(i,j) = b(i, j - 1)
- elseif N(i,j) == 4
- b(i,j) = b(i, j + 1)
- elseif N(i,j) == 5
- b(i, j) = b(i - 1, j)
- elseif N(i,j) == 6
- b(i, j) = b(i + 1, j)
- elseif N(i,j) == 7
- b(i, j) = b(i - 1, j + 1)
- elseif N(i, j) == 8
- b(i, j) = b(i + 1, j - 1)
- elseif N(i, j) == 9
- b(i, j) = b(i - 1, j - 1)
- elseif N(i, j) ==10
- b(i, j) = b(i + 1, j + 1)
- end
- end
- lista{k} = b;
- end
- for t=1:1:length(lista)
- mesh(lista{t})
- zlim([-1,2])
- drawnow
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement