Contents
% Uppgift 5.2 och 5.7
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.
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')
Current plot held Current plot held
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')
Current plot held Current plot held
Ä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)