Professional Documents
Culture Documents
% give data
x0=0;
xL=10;
dx=2;
T0=200;
TL=40;
Ta=10;
h=0.02;
A=zeros(n,n);
for i=1:n
if i==1
A(i,i)=2+h*dx*dx;
A(i,i+1)=-1;
elseif i==n
A(i,i)=2+h*dx*dx;
A(i,i-1)=-1;
else
A(i,i)=2+h*dx*dx;
A(i,i+1)=-1;
A(i,i-1)=-1;
end
end
%Matrix B
B=zeros(n,1);
for i=1:n
if i==1
B(i,1)=h*dx*dx*Ta+T0;
elseif i==n
B(i,1)=h*dx*dx*Ta+TL;
else
B(i,1)=h*dx*dx*Ta;
end
end
% Jacobi Method
% Initial Guess
T=zeros(n,1);
% iterations
iterations=50;
for itr=1:50
Told=T;
for i=1:1:n
factor=0;
factor1=0;
for j=1:1:i-1
factor1=A(i,j)*Told(j,1);
factor=factor1+factor;
end
for j=i+1:1:n
factor1=A(i,j)*Told(j,1);
factor=factor1+factor;
end
T(i,1)=(1/A(i,i))*(B(i,1)-factor);
end
end
% Plotting
T=[T0;T;TL];
fprintf('Temperatures is T = \n');
Temperatures is T =
>> disp(T)
200.0000
150.8898
113.0511
83.4564
59.7387
40.0000
>> plot([x0:dx:xL]',T)
>>
Gauss Seidal code:
>> close all
% give data
x0=0;
xL=10;
dx=2;
T0=200;
TL=40;
Ta=10;
h=0.02;
A=zeros(n,n);
for i=1:n
if i==1
A(i,i)=2+h*dx*dx;
A(i,i+1)=-1;
elseif i==n
A(i,i)=2+h*dx*dx;
A(i,i-1)=-1;
else
A(i,i)=2+h*dx*dx;
A(i,i+1)=-1;
A(i,i-1)=-1;
end
end
%Matrix B
B=zeros(n,1);
for i=1:n
if i==1
B(i,1)=h*dx*dx*Ta+T0;
elseif i==n
B(i,1)=h*dx*dx*Ta+TL;
else
B(i,1)=h*dx*dx*Ta;
end
end
>> T=zeros(n,1);
% iterations
iterations=50;
for itr=1:50
Told=T;
for i=1:1:n
factor=0;
factor1=0;
for j=1:1:n
factor =0;
factor1=0;
for j=1:1:n
if j~=i
factor1=A(i,j)*T(j,1);
factor=factor1+factor;
end
end
T(i,1)=(1/A(i,i))*(B(i,1)-factor);
end
end
% Plotting
T=[T0;T;TL];
fprintf('Temperatures is T = \n');
disp(T)
plot([x0:dx:xL]',T)
xlabel('length x')
ylabel('Temperature in ^o C')