X-Bar and R Control Chart
Source: HP 65 Stat Pac 2, 1975
from math import * # control chart function # run as a defined function # HP 65 Stat Pac 2, 1975 def ctrlchart(): #elements a2=[0,0,1.88,1.02,.73,.58,.48,.42,.37,.34,.31,.29,.27,.25,.24,.22,.21,.20,.19,.19,.18] d3=[0,0,0,0,0,0,0,.08,.14,.18,.22,.26,.28,.31,.33,.35,.36,.38,.39,.4,.41] d4=[0,0,3.27,2.57,2.28,2.11,2,1.92,1.86,1.82,1.78,1.74,1.72,1.69,1.67,1.65,1.64,1.62,1.61,1.6,1.59] # calculation meansum=0 rangesum=0 n=int(input("number of samples? ")) m=int(input("sample size (2-20)? ")) for i in range(n): x=[] for j in range(m): # adjust to show proper numbering s="x("+str(i+1)+","+str(j+1)+")? " p=eval(input(s)) x.append(p) rangesum+=max(x)-min(x) meansum+=sum(x)/m rangeavg=rangesum/n meanavg=meansum/n lowmean=meanavg-rangeavg*a2[m] highmean=meanavg+rangeavg*a2[m] lowrange=d3[m]*rangeavg highrange=d4[m]*rangeavg print("x-bar chart") print("L: "+str(lowmean)) print("H: "+str(highmean)) print("range chart") print("L: "+str(lowrange)) print("H: "+str(highrange))