clear all;
length_x = 6.0;
length_y = 4.0;
X = 31;
Y = 21;
dx = length_x / (X-1);
dy = length_y / (Y-1);
criterion = 1e-8;
u_new=zeros(Y,X);
u_old=zeros(Y,X);
a_p = 2 * (1 / dx^2 + 1 / dy^2);
a_e = 1 / (dx^2);
a_w = 1 / (dx^2);
a_n = 1 / (dy^2);
a_s = 1 / (dy^2);
u_new(21 , 1/dx+2 : 1 : 6/dx+1) = 100;
u_old = u_new;
error = 1;
while error > criterion
error=0;
for i=2 : 1 : Y-1
for j=2 : 1 : X-1
u_new(i,j) = (1 / a_p) * (a_e * u_old(i+1,j) + a_w * u_old(i-1,j) + a_n * u_old(i,j+1) + a_s * u_old(i,j-1));
end
end
for i=1 : 1 : Y
u_new(i,X) = u_new(i,X-1);
end
error = 0
for i=1 : 1 : Y
for j=1 : 1 : X
error = error + (u_new(i,j) - u_old(i,j))^2;
end
end
error = sqrt(error / ((X-2) * (Y-2)));
u_old = u_new;
end
contour(u_new,'ShowText','on')