Simulations
- Objectives
- What are simulations by College Board definition?
- Simulation vs. Experiment
- Analyzing an Example: Air-Traffic Simulator
- Functions we often need
- College Board Question 1
What are simulations by College Board definition?
- Simulations are abstractions that mimic more complex objects or phenomena from the real world
- Purposes include drawing inferences without the contraints of the real world
- Simulations use varying sets of values to reflect the changing state of a real phenomenon
- Often, when developing a simulation, it is necessary to remove specific details or simplify aspects
- Simulations can often contain bias based on which details or real-world elements were included/excluded
- Simulations allow the formulation of hypotheses under consideration
- Variability and randomness of the world is considered using random number generators
- Examples: rolling dice, spinners, molecular models, analyze chemicals/reactions...
Simulation vs. Experiment
- Experiment definition: procedure undertaken to make a discovery, test a hypothesis, or demonstrate a known fact
So, why use a simulation?
-
Advantages:
- Can be safer
- More cost-effective
- More efficient
- More data in less time
-
Disadvantages:
- Not as accurate as experiments
- outside factors not included (ex: in rolling dice simulation gravity and air resistance)
- When do you not use a simulation?
- when a situation already has set results/data (won't change)
- examples: a score in a game, most purchased food, average yearly wage
Analyzing an Example: Air-Traffic Simulator
-
Say we want to find out what the optimal number of aircrafts that can be in the air in one area is.
-
A simulation allows us to explore this question without real world contraints of money, time, safety
- Unfortunately we can't just fly 67 planes all at once and see what happens
- Since the simulation won't be able to take all variables into control, it may have a bias towards one answer
- Will not always have the same result
import random # a module that defines a series of functions for generating or manipulating random integers
random.choice() #returns a randomly selected element from the specified sequence
random.choice(mylist) # returns random value from list
random.randint(0,10) #randomly selects an integer from given range; range in this case is from 0 to 10
random.random() #will generate a random float between 0.0 to 1.
Question: The following code simulates the feeding of 4 fish in an aquarium while the owner is on a 5-day trip:
numFish ← 4
foodPerDay ← 20
foodLeft ← 160
daysStarving ← 0
REPEAT 5 TIMES {
foodConsumed ← numFish * foodPerDay
foodLeft ← foodLeft - foodConsumed
IF (foodLeft < 0) {
daysStarving ← daysStarving + 1
}
}
- This simulation simplifies a real-world scenario into something that can be modeled in code and executed on a computer.
- Explain what each part of the code does