Part C: Dictionaries, Arrays, Functions, and Modules
Exercises
- A simple simulation engine: Write a Python function
IterateLogistic()
that takes three parameters: Two real numbers and an integer.
Interpret the first two as the current state and the control parameter
value for the one-dimensional map: f(x) = r x (1 - x). The function
should return the state after the given number of iterations, which is
the third parameter. This is all the function should
do—the numerical iterations. Test your function interactively.
- Experimental data: Write a Python program LogisticData.py
that generates 10 data files, each with 50 logistic map iterates, at map
parameter r = 4.0. Each line in the files should list the
iteration number n and then the iteration value
xn. Start each program run with a different initial
condition x0. The initial conditions should be close:
Use x0 = 0.3 + deltai,
where deltai = i * 0.00005, i = 0, 1, 2, 3, ..., 9.
Name the 10 files "data1" to "data10".
Hint: Use the program you wrote for the Part B exercises to
generate the data files, adding the iteration function you wrote above.
- Write a Python module MatrixIO.py containing two
functions. One function
should read a file containing a text representation of a matrix;
that is, a certain number of lines each containing the same
number of numbers separated by spaces. The function should
return an array containing this data. Note that the function
should work for matrices of any size. The second function should
do the inverse: write a matrix of any size to a text file.
Use these in a Python program
MatrixReadWrite.py that reads in file data7
from the previous exercise and then writes it out to a file
data7.out.
Hint: Use the matrix module written above by
importing it.
- Processing experimental data: Recall that each line in the data files
you just generated has an iteration number and then a state value.
Assume that all files have the same length and that these time values
agree line by line. Write a Python program
MaxSeparation.py that
produces another time series consisting of lines with iteration number
and d_max, where d_max is the largest distance between all pairs of states
taken from the different files at the same iteration number. Store this new
times series in a file. What do you see? What is your interpretation of
the d_max values as a function of time?
Table of Contents