CMTFE Assigment 2 Solution
CMTFE Assigment 2 Solution
Solution:
function f=AW(x,h)
f=(((4-(4.*x)+(2.*h)+(x.^2)-(x.*h)))/(4-(2.*x)+h))/(0.5*h*(0.5*(h+h)));
end
h=0.1;
n=0:h:1;
a=zeros(1,length(n));
b=zeros(1,length(n));
c=zeros(1,length(n));
d=zeros(1,length(n));
AT=zeros(1,length(n));
Fi=zeros(1,length(n));
P=zeros(1,length(n));
Q=zeros(1,length(n));
T=zeros(1,length(n));
c(1)=0;
b(end)=0;
A=54.10106;
B=25;
for i=1:length(n)
b(i)=AE(n(i),h);
c(i)=AW(n(i),h);
a(i)=b(i)+c(i);
end
for i=1:length(n)
if i==1
P(i)=0;
Q(i)=100;
elseif i==length(n)
Q(i)=25;
else
P(i)=(b(i)/(a(i)-(c(i)*P(i-1))));
Q(i)=((c(i)*Q(i-1)))/(a(i)-(c(i)*P(i-1)));
end
end
for i=length(n):-1:1
if i==length(n)
T(i)=Q(i);
else
T(i)=P(i)*T(i+1) + Q(i);
end
end
%disp(a)
%disp(c)
%disp(b)
%disp(P)
%disp(Q)
disp(T)
for i=1:length(n)
AT(i)=(2*A*log(2-n(i))) +B;
end
disp(AT)
T0=100;
T1=25;
n=0:0.1:1;
error=1;
tol=0.001;
iter=0;
Tx=zeros(1,length(n));
Tx(1)=T0;
Tx(length(n))=T0;
Told=Tx;
while (error>tol)
for i=1:length(n)
if i==1
Tx(i)=T0;
elseif i==length(n)
Tx(i)=T1;
else
Tx(i)=0.5.*(Told(i-1)+Told(i+1));
end
end
error=max(abs(Tx-Told));
Told=Tx;
iter=iter+1;
if mod(iter,50)==0
plot(n,Tx)
end
end
hold on
plot(n,T)
plot(n,AT)
xlabel("Nodes")
ylabel("Temperature")
legend('GS Iteration','Numerical Solution', 'Analytical Solution')
Solution:
function f=AW2(x,h)
f=((4+(4.*x)+(x.^2)-(2.*h)-(h.*x))/(4+(2.*x)-h))/(0.5*h*(0.5*(h+h)));
end
h=0.1;
n=0:h:1;
a=zeros(1,length(n));
b=zeros(1,length(n));
c=zeros(1,length(n));
d=zeros(1,length(n));
AT=zeros(1,length(n));
Fi=zeros(1,length(n));
P=zeros(1,length(n));
Q=zeros(1,length(n));
T=zeros(1,length(n));
c(1)=0;
b(end)=0;
A=-92.486;
B=228.21;
for i=1:length(n)
b(i)=AE2(n(i),h);
c(i)=AW2(n(i),h);
a(i)=b(i)+c(i);
end
for i=1:length(n)
if i==1
P(i)=0;
Q(i)=100;
elseif i==length(n)
Q(i)=25;
else
P(i)=(b(i)/(a(i)-(c(i)*P(i-1))));
Q(i)=((c(i)*Q(i-1)))/(a(i)-(c(i)*P(i-1)));
end
end
for i=length(n):-1:1
if i==length(n)
T(i)=Q(i);
else
T(i)=P(i)*T(i+1) + Q(i);
end
end
%disp(a)
%disp(c)
%disp(b)
%disp(P)
%disp(Q)
disp(T)
T0=100;
T1=25;
n=0:0.1:1;
error=1;
tol=0.001;
iter=0;
Tx=zeros(1,length(n));
Tx(1)=T0;
Tx(length(n))=T0;
Told=Tx;
while (error>tol)
for i=1:length(n)
if i==1
Tx(i)=T0;
elseif i==length(n)
Tx(i)=T1;
else
Tx(i)=0.5.*(Told(i-1)+Told(i+1));
end
end
error=max(abs(Tx-Told));
Told=Tx;
iter=iter+1;
if mod(iter,50)==0
plot(n,Tx)
end
end
hold on
plot(n,T)
for i=1:length(n)
AT(i)=(2*A*log(2+n(i))) +B;
end
plot(n,AT)
disp(AT)
xlabel("Nodes")
ylabel("Temperature")
legend('GS Iteration','Numerical Solution', 'Analytical Solution')
Solution:
function f=AW3(h)
f=1/(0.5*h*(0.5*(h+h)));
end
h=0.1;
n=0:h:1;
a=zeros(1,length(n));
b=zeros(1,length(n));
c=zeros(1,length(n));
d=zeros(1,length(n));
AT=zeros(1,length(n));
Fi=zeros(1,length(n));
P=zeros(1,length(n));
Q=zeros(1,length(n));
T=zeros(1,length(n));
c(1)=0;
b(end)=0;
A=-75;
B=100;
for i=1:length(n)
b(i)=AE3(h);
c(i)=AW3(h);
a(i)=b(i)+c(i);
end
for i=1:length(n)
if i==1
P(i)=0;
Q(i)=100;
elseif i==length(n)
Q(i)=25;
else
P(i)=(b(i)/(a(i)-(c(i)*P(i-1))));
Q(i)=((c(i)*Q(i-1)))/(a(i)-(c(i)*P(i-1)));
end
end
for i=length(n):-1:1
if i==length(n)
T(i)=Q(i);
else
T(i)=P(i)*T(i+1) + Q(i);
end
end
%disp(a)
%disp(c)
%disp(b)
%disp(P)
%disp(Q)
disp(T)
for i=1:length(n)
AT(i)=(A*n(i))+B;
end
disp(AT)
T0=100;
T1=25;
n=0:0.1:1;
error=1;
tol=0.001;
iter=0;
Tx=zeros(1,length(n));
Tx(1)=T0;
Tx(length(n))=T0;
Told=Tx;
while (error>tol)
for i=1:length(n)
if i==1
Tx(i)=T0;
elseif i==length(n)
Tx(i)=T1;
else
Tx(i)=0.5.*(Told(i-1)+Told(i+1));
end
end
error=max(abs(Tx-Told));
Told=Tx;
iter=iter+1;
if mod(iter,50)==0
plot(n,Tx)
end
end
hold on
plot(n,T)
plot(n,AT)
xlabel("Nodes")
ylabel("Temperature")
legend('GS Iteration','Numerical Solution', 'Analytical Solution')