All All: % Tugas 11

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 2

% Tugas 11

close all;
clc;
clear all;

%% Data
load dataJW1.mat;
L = 1;
Nx = 40;
dx = L./Nx;
Thot = 1e2;
v = 0.25;
T0 = 30;
tspan = linspace(0,5,51)';
Tinit = T0.*ones(1,Nx);

%% Mulai Optimizer Solver


p_tebakawal = [1]; %tebakan awal untuk alfa

lb = [0];
ub = [1];
[p,SSEout] = lsqnonlin(@rescalcfun,p_tebakawal,lb,ub,
[],Nx,dx,Thot,v,T0,tspan,data,Tinit);

%% Recalculation
alfa = p;
[t,T] = ode15s(@myJW1_odefun,tspan,Tinit,
[],Nx,dx,Thot,v,T0,tspan,data,Tinit,alfa);
T(:,1) = Thot;
T(:,Nx+1) = (4.*T(:,Nx)-T(:,Nx-1))./3;
Ycalc = T(:,Nx+1);

fprintf('Nilai alfa dari hasil fitting adalah %6.4f \n',alfa)


fprintf('dengan nilai SSE adalah %6.4f \n',SSEout)

%% Ploting
figure(1)
plot(tspan,Ycalc,'-r','LineWIdth',3)
hold on
plot(data(:,1),data(:,2),'ob','MarkerSize',10)
grid on

function res = rescalcfun(p,Nx,dx,Thot,v,T0,tspan,data,Tinit,alfa)


alfa = p(1); %Parameter thermal conductivity terus berubah selama proses
optimasi
[t,T] = ode15s(@myJW1_odefun,tspan,Tinit,
[],Nx,dx,Thot,v,T0,tspan,data,Tinit,alfa);
T(:,1) = Thot;
T(:,Nx+1) = (4.*T(:,Nx)-T(:,Nx-1))./3;
Ycalc = T(:,Nx+1);
% extract Y percobaan dari data
Yexp = data(:,2);

% res = Ycalc-Yexp;
res=sse(Ycalc-Yexp);
end

function dTdt = myJW1_odefun(t,T,Nx,dx,Thot,v,T0,tspan,data,Tinit,alfa)


dTdt = zeros(Nx,1);
T(1) = Thot;
T(Nx+1) = (4.*T(Nx)-T(Nx-1))./3;
for i = 2:Nx
d2Tdx2(i) = 1./dx.^2.*(T(i+1)-2.*T(i)+T(i-1));
dTdx(i) = 1./(2.*dx).*(T(i+1)-T(i-1));
dTdt(i) = alfa.*d2Tdx2(i)- v.*dTdx(i);
end
end

You might also like