You are on page 1of 2

%Assignment1:MCV390

%Part A
F = xlsread("Table 26.1 wrt Table 26.2.xlsx");

F=F./100;
v_2_5= zeros(26,26); %creating V diagonal matrix, c matrix of measurement
c_2_5= zeros(26,1);
v_10= zeros(26,26);
c_10= zeros(26,1);

b= xlsread("Table 26.2.xlsx");
i=1;
while i<=26
v_2_5(i,i) = 1/(b(i,2)^2);
c_2_5(i,1) = b(i,1);
v_10 (i,i) = 1/(b(i,4)^2);
c_10(i,1) = b(i,3);
i=i+1;
end
%formula 26.16
g_2_5 = (inv(F'*v_2_5*F))*(F'*v_2_5*c_2_5); % formula for source contribution for
PM2.5
disp('g_2_5(A): Paved Road Dust,Vegetable Burning,Primary Crude Oil,Motor
Vehicles,Limestone')
disp(g_2_5)
g_2_5_A=g_2_5;
g_10= (inv(F'*v_10*F))*(F'*v_10*c_10); % formula for source contribution for PM10
g_10_A=g_10;
disp('g_10(A)')
disp(g_10)

%deviations of Part A from table 3

dev_2_5 = (g_2_5(1)-2.26)^2 + (g_2_5(1)-5.92)^2+( g_2_5(3)-0.25)^2+(g_2_5(4)-


9.24)^2+(g_2_5(5)-0.45)^2;
disp('Deviation_PM_2.5(A)')
disp(dev_2_5/5)
dev_10 = (g_10(1)-10.39)^2 +(g_10(2)-12.35)^2+(g_10(3)-0.29)^2+(g_10(4)-6.8)^2
+(g_10(5)-3.58)^2;
disp('Deviation_PM_10(A)')
disp(dev_10/5)

%Part B
sigma_aij = xlsread("Table_sigma aij.xlsx");
t=1;
k = 1; %iteration method for formula 26.17
while k <26
while t<=26
a = 0;
B = 0;
o = 1;
while o <= 5
a = a + sig_aij(t,o)^2*g_2_5(o)^2;
B =B + sig_aij(t,o)^2*g_10(o)^2;
o = o + 1;
end
v_2_5(t,t) = 1/(b(t,2)*b(t,2) + a);
v_10(t,t) = 1/(b(t,4)*b(t,4) +B);
t=t+1;
end
g_10 = (inv(F'*v_10*F))*(F'*v_10*c_10);
g_2_5 = (inv(F'*v_2_5*F))*(F'*v_2_5*c_2_5);
k=k+1;
end

disp('g_2_5(B)')
disp(g_2_5)
disp('g_10(B)')
disp(g_10)

%part C

F(12,1)=0.034; %changing the value for F as per the question part C


F(7,1)=0.21;
F(7,5)=0.071;
F(12,5)=0.266;

i=1;
while i<=26 %restoring values of V and C
v_2_5(i,i) = 1/(b(i,2)^2);
c_2_5(i,1) = b(i,1);
v_10 (i,i) = 1/(b(i,4)^2);
c_10(i,1) = b(i,3);
i=i+1;
end
%formula 26.16
g_2_5 = (inv(F'*v_2_5*F))*(F'*v_2_5*c_2_5);
disp('g_2_5(C): Paved Road Dust,Vegetable Burning,Primary Crude Oil,Motor
Vehicles,Limestone')
disp(g_2_5)
g_10= (inv(F'*v_10*F))*(F'*v_10*c_10);
disp('g_10(C)')
disp(g_10)

%deviation in PM_2.5(C)-PM_2.5(A) and PM_10(C) - PM_10(A)

disp('Deviation in PM_2.5(C)-PM_2.5(A)')
disp(g_2_5-g_2_5_A)
disp('Deviation in PM_10(C) - PM_10(A)')
disp(g_10-g_10_A)

You might also like