introduction to computation and programming using python%2c revised - guttag%2c john v..181

1
164 Chapter 12. Stochastic Programs, Probability, and Statistics Figure 12.8 contains a version of flipPlot1 that plots coefficients of variation. Figure 12.8 Final version of flipPlot1 def flipPlot1(minExp, maxExp, numTrials): """Assumes minExp and maxExp positive ints; minExp < maxExp numTrials a positive integer Plots summaries of results of numTrials trials of 2**minExp to 2**maxExp coin flips""" ratiosMeans, diffsMeans, ratiosSDs, diffsSDs = [], [], [], [] ratiosCVs, diffsCVs = [], [] xAxis = [] for exp in range(minExp, maxExp + 1): xAxis.append(2**exp) for numFlips in xAxis: ratios = [] diffs = [] for t in range(numTrials): numHeads, numTails = runTrial(numFlips) ratios.append(numHeads/float(numTails)) diffs.append(abs(numHeads - numTails)) ratiosMeans.append(sum(ratios)/float(numTrials)) diffsMeans.append(sum(diffs)/float(numTrials)) ratiosSDs.append(stdDev(ratios)) diffsSDs.append(stdDev(diffs)) ratiosCVs.append(CV(ratios)) diffsCVs.append(CV(diffs)) numTrialsString = ' (' + str(numTrials) + ' Trials)' title = 'Mean Heads/Tails Ratios' + numTrialsString makePlot(xAxis, ratiosMeans, title, 'Number of flips', 'Mean Heads/Tails', 'bo', logX = True) title = 'SD Heads/Tails Ratios' + numTrialsString makePlot(xAxis, ratiosSDs, title, 'Number of Flips', 'Standard Deviation', 'bo', logX = True, logY = True) title = 'Mean abs(#Heads - #Tails)' + numTrialsString makePlot(xAxis, diffsMeans, title, 'Number of Flips', 'Mean abs(#Heads - #Tails)', 'bo', logX = True, logY = True) title = 'SD abs(#Heads - #Tails)' + numTrialsString makePlot(xAxis, diffsSDs, title, 'Number of Flips', 'Standard Deviation', 'bo', logX = True, logY = True) title = 'Coeff. of Var. abs(#Heads - #Tails)' + numTrialsString makePlot(xAxis, diffsCVs, title, 'Number of Flips', 'Coeff. of Var.', 'bo', logX = True) title = 'Coeff. of Var. Heads/Tails Ratio' + numTrialsString makePlot(xAxis, ratiosCVs, title, 'Number of Flips', 'Coeff. of Var.', 'bo', logX = True, logY = True)

Upload: zhichaowang

Post on 09-Sep-2015

220 views

Category:

Documents


1 download

DESCRIPTION

f

TRANSCRIPT

  • 164 Chapter 12. Stochastic Programs, Probability, and Statistics

    Figure 12.8 contains a version of flipPlot1 that plots coefficients of variation.

    Figure 12.8 Final version of flipPlot1

    def flipPlot1(minExp, maxExp, numTrials): """Assumes minExp and maxExp positive ints; minExp < maxExp numTrials a positive integer Plots summaries of results of numTrials trials of 2**minExp to 2**maxExp coin flips""" ratiosMeans, diffsMeans, ratiosSDs, diffsSDs = [], [], [], [] ratiosCVs, diffsCVs = [], [] xAxis = [] for exp in range(minExp, maxExp + 1): xAxis.append(2**exp) for numFlips in xAxis: ratios = [] diffs = [] for t in range(numTrials): numHeads, numTails = runTrial(numFlips) ratios.append(numHeads/float(numTails)) diffs.append(abs(numHeads - numTails)) ratiosMeans.append(sum(ratios)/float(numTrials)) diffsMeans.append(sum(diffs)/float(numTrials)) ratiosSDs.append(stdDev(ratios)) diffsSDs.append(stdDev(diffs)) ratiosCVs.append(CV(ratios)) diffsCVs.append(CV(diffs)) numTrialsString = ' (' + str(numTrials) + ' Trials)' title = 'Mean Heads/Tails Ratios' + numTrialsString makePlot(xAxis, ratiosMeans, title, 'Number of flips', 'Mean Heads/Tails', 'bo', logX = True) title = 'SD Heads/Tails Ratios' + numTrialsString makePlot(xAxis, ratiosSDs, title, 'Number of Flips', 'Standard Deviation', 'bo', logX = True, logY = True) title = 'Mean abs(#Heads - #Tails)' + numTrialsString makePlot(xAxis, diffsMeans, title, 'Number of Flips', 'Mean abs(#Heads - #Tails)', 'bo', logX = True, logY = True) title = 'SD abs(#Heads - #Tails)' + numTrialsString makePlot(xAxis, diffsSDs, title, 'Number of Flips', 'Standard Deviation', 'bo', logX = True, logY = True) title = 'Coeff. of Var. abs(#Heads - #Tails)' + numTrialsString makePlot(xAxis, diffsCVs, title, 'Number of Flips', 'Coeff. of Var.', 'bo', logX = True) title = 'Coeff. of Var. Heads/Tails Ratio' + numTrialsString makePlot(xAxis, ratiosCVs, title, 'Number of Flips', 'Coeff. of Var.', 'bo', logX = True, logY = True)