function [w]=poisson3(xl,xr,yb,yt,M,N,P,K)
f=@(x,y) 0;
H=.005; delta=.1;
L=2;
m=M+1;n=N+1; mn=m*n;
h=(xr-xl)/M;h2=h^2;k=(yt-yb)/N;k2=k^2;
x=xl+(0:M)*h;
y=yb+(0:N)*k;
A=zeros(mn,mn);b=zeros(mn,1);
for i=2:m-1
for j=2:n-1
A(i+(j-1)*m,i-1+(j-1)*m)=1/h2;A(i+(j-1)*m,i+1+(j-1)*m)=1/h2;
A(i+(j-1)*m,i+(j-1)*m)=-2/h2-2/k2-2*H/(K*delta);
A(i+(j-1)*m,i+(j-2)*m)=1/k2;A(i+(j-1)*m,i+j*m)=1/k2;
b(i+(j-1)*m)=f(x(i),y(j));
end
end
for i=1:m
j=1;
A(i+(j-1)*m,i+(j-1)*m)=-3/(2*k)+H/K;
A(i+(j-1)*m,i+(j)*m)=2/k;
A(i+(j-1)*m,i+(j+1)*m)=-1/(2*k);
b(i+(j-1)*m)=0;
j=n;
A(i+(j-1)*m,i+(j-1)*m)=-3/(2*k)+H/K;
A(i+(j-1)*m,i+(j-2)*m)=2/k;
A(i+(j-1)*m,i+(j-3)*m)=-1/(2*k);
b(i+(j-1)*m)=0;
end
for j=2:n-1
i=1;
A(i+(j-1)*m,i+(j-1)*m)=-3/(2*h)+H/K;
A(i+(j-1)*m,i+1+(j-1)*m)=2/h;
A(i+(j-1)*m,i+2+(j-1)*m)=-1/(2*h);
b(i+(j-1)*m)=0;
i=m;
A(i+(j-1)*m,i+(j-1)*m)=-3/(2*h)+H/K;
A(i+(j-1)*m,i-1+(j-1)*m)=2/h;
A(i+(j-1)*m,i-2+(j-1)*m)=-1/(2*h);
b(i+(j-1)*m)=0;
end
for j=2:floor(n/2)
i=1;
A(i+(j-1)*m,i+(j-1)*m)=-3/(2*h);
A(i+(j-1)*m,i+1+(j-1)*m)=2/h;
A(i+(j-1)*m,i+2+(j-1)*m)=-1/(2*h);
b(i+(j-1)*m)=-P/(L*delta*K);
end
v=A\b;
w=reshape(v(1:mn),m,n);
mesh(x,y,w')
title(sprintf('Heat Distribution in Celsius on 4 x 4 cm Fin with 1 mm Thickness, Grid Size %d x %d',M,N))
xlabel('Cm')
ylabel('Cm')
zlabel('Temperature (C)')
view(73,26)
Error using poisson3 (line 17)
Not enough input arguments.