0% found this document useful (0 votes)
14 views2 pages

M-Script: 'T %4.1f, T %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f/n'

This document summarizes the Crank Nicolson method for solving the heat equation numerically. It defines parameters like time and space increments, initializes temperature values at nodes, and uses a tridiagonal matrix algorithm within a time loop to calculate temperature values at each time step. Graphs of temperature over time and space are generated to visualize the results.

Uploaded by

Muhammad Razaq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views2 pages

M-Script: 'T %4.1f, T %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f/n'

This document summarizes the Crank Nicolson method for solving the heat equation numerically. It defines parameters like time and space increments, initializes temperature values at nodes, and uses a tridiagonal matrix algorithm within a time loop to calculate temperature values at each time step. Graphs of temperature over time and space are generated to visualize the results.

Uploaded by

Muhammad Razaq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

M-Script

% The Crank Nicolson Method Ricky Wisaksono


clear; clc;
% Parameters
x0=0; L=0.1;
t0=0; tf=100;Ts=200;
alpha=54/7800/490;
%segment or node
nx=5; nt=10;
dx=(L-x0)/nx;
dt=(tf-t0)/nt;

lamda=alpha*dt/dx^2;

u = lamda; % Upper diagonal: coefficients of T(i+1)


s = lamda; % Subdiagonal: coefficients of T(i-1)
D = -2*(1+lamda); % Main Diagonal: coefficients of T(i)
% Boundary conditions and Initial Conditions
T(1)=200; T(2:nx)=25; T(nx+1)=25; %IC
Tn(1)=200; Tn(nx+1)=25; %BC

Temp(1,:)=T; % Store results for future use

for j=1:nt % Loop over time


t(j)=t0+j*dt;
% Use column vectors to construct tridiagonal matrices
A=D*diag(ones(nx-1,1))+ u*diag(ones(nx-2,1),1)+ s*diag(ones(nx-2,1),-
1);
% construct b matrices
for k=1:nx-1
b(k)=-lamda*T(k)-2*(1-lamda)*T(k+1)-lamda*T(k+2);
end % note that b is row vector
b(1)=-lamda*T(1)-2*(1-lamda)*T(2)-lamda*T(3)-lamda*Tn(1);
b(end)=-lamda*T(nx-1)-2*(1-lamda)*T(nx)-lamda*T(nx+1)-
2*lamda*25*dx/54*200;
A(4,3)=2*lamda;
A(4,4)=-2*(1+lamda+lamda*25*dx/54);
Y=A\b'; % Find the solution for interior nodes i=2,3,4,5
Tn(nx+1)=Y(end-1)-2*25*0.02*lamda/54*(Y(end)-200);
Tn=[Tn(1),Y',Tn(nx+1)]; % Build the whole solution as row vector
Temp(j+1,:)=Tn; % Store results for future use
T=Tn; % to start over
fprintf('t = %4.1f, T = %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n',t(j),T)
end
x=[0:dx:L]';
t=[t0,t]';
subplot(1,2,1)
surf(x,t,Temp)
subplot(1,2,2)
plot(x,Temp(2,:),'r*-'), hold on
plot(x,Temp(3,:),'bo-')
plot(x,Temp(4,:),'g*-')
plot(x,Temp(5,:),'bo-')
Output

You might also like