%% Uppgift 5.2
% Lösning till Mongomerys problem

%% Uppgift 5.2 
% Jag har kopierat data från Mongomerys hemsida. "Klickkopiera" kolumnen i
% Excelfilen. Skriv in XD=[ och tryck CTRL-C avsluta med ]

XD=[6
9
10
15
10
4
6
11
7
8
10
5
8
9
6
13
9
10
7
13
12
11
10
10
16
10
8
9
7
5
10
4
9
7
8
12
15
16
10
13
8
12
14
16
6
13
9
11
16
9
13
15
7
13
10
12
11
7
10
16
15
10
11
14
9
8
12
10
15
7
10
11
8
6
9
12
13
14
11
15];
%%
% Jag omformar vektorn X till en matris med 20 rader och 4 kolumner med
% kommandot *reshape*.
% Kommandot *mean* beräknar medelvärdet för varje kolumn i matrisen. För
% att räkna ut medelvärdet på raderna måste X transponeras först. Samma
% gäller för *max* kommandot.


X=reshape(XD,4,20)';

XM=mean(X')';

R=(max(X')-min(X'))';   % Range för varje provgrupp
RM=mean(R);             % Medelrangen
XMM=mean(XM);           % Totala medelvärdet

%% X-R diagrammet
% Här delar vi upp figuren i två delar. Kommandot *hold* gör så att man kan
% rita flera plottar på varandra utan att den gamla raderas.
%%
% 
%%
% 
% $$\left\{
% \sqrt{\begin{array}{|ccl} \hline
% x&=& C_p\\ 
% y&=& C_{pk} 
% \end{array}}
% \right.$$
% 




subplot(2,1,1)
hold
plot( XM,'o-k');    % o betyder tecknet o, - betyder rakt och helt streck, k betyder svart.
A2=0.729;
UCL=XMM+A2*RM;
CL=XMM;
LCL=XMM-A2*RM;

plot(XM*0+UCL,'--');    
plot(XM*0+LCL,'--'); 
plot(XM*0+CL,'--'); 
%xlabel('Provgruppsnummer')
ylabel('Spänning (V)')
title('X-diagram')
text(length(XM)-1,UCL,['UCL = ', num2str(round(UCL*100)/100)]); % Exempel på hur man kan blanda text och variabelvärden.
text(length(XM)-1,CL,['CL = ', num2str(round(CL*100)/100)]);
text(length(XM)-1,LCL,['LCL = ', num2str(round(LCL*100)/100)]);
%%%%%%%%%%%%%%%%

subplot(2,1,2); 
hold
plot(R,'o-k')
D4=2.282;
D3=0;
UCL=D4*RM;
CL=RM;
LCL=0;

plot(R*0+UCL,'--');    
plot(R*0+LCL,'--'); 
plot(R*0+CL,'--'); 
xlabel('Provgruppsnummer')
ylabel('Spänning (V)')
title('R-diagram')
text(length(R)+1,UCL,'UCL')
text(length(R)+1,CL,'CL')

%% Uppgift 5.7 x-s-diagram

%%
% Beräknar standardavvikelsen för varje rad. Observera att jag måste
% transponera (använd tecknet *'* för transponering) matrisen eftersom kommandot *std* beräknar standardavvikelsen
% för varje kolumn. Sedan transponerar jag resultatet så att jag åter får
% en kolumnvektor.

S=(std(X'))';
SM=mean(S);

figure
subplot(2,1,1); 
hold;
plot( XM,'o-k');    % o betyder tecknet o, - betyder rakt och helt streck, k betyder svart.
A3=1.628;
UCL=XMM+A3*SM;
CL=XMM;
LCL=XMM-A3*SM;

plot(XM*0+UCL,'--');    
plot(XM*0+LCL,'--'); 
plot(XM*0+CL,'--'); 

ylabel('Spänning (V)')
title('X-diagram')
text(length(XM)+1,UCL,'UCL')
text(length(XM)+1,CL,'CL')
text(length(XM)+1,LCL,'LCL')

%%%%%%%%%%%%%%%%

subplot(2,1,2); 
hold;
plot(S,'o-k')
B4=2.266;
B3=0;
UCL=B4*SM;
CL=SM;
LCL=0;

plot(S*0+UCL,'--');    
plot(S*0+LCL,'--'); 
plot(S*0+CL,'--'); 
xlabel('Provgruppsnummer')
ylabel('Spänning (V)')
title('s-diagram')
text(length(R)+1,UCL,'UCL')
text(length(R)+1,CL,'CL')


%% Är data normalfördelade??
% Kommandot *figure* startar en ny figur. Subplotkommandot delar upp
% figuren i två axel-system. 
% Kommandot *hist* ritar ett histogram. Om man vill ange hur många staplar
% som skall ritas så skulle man kunna skriva *hist(XD,5)* om man nu ville
% ha 50 staplar.
% Kommandot *normplot* ritar en normalplot av data. Ligger data längs en
% rak linje så är de normalfördade. 

figure
subplot(1,2,1)
hist(XD)
subplot(1,2,2)
normplot(XD)
