
Home > Courses > 5P10

Weekly homework

Week 1. Due Th Sep 14

 Cover all sections until the "Advanced Unix/Linux", but including the "File System Basics" from www.tutorialspoint.com/unix/.
 Develop a personal "cheat sheet" of useful commands.
 Choose an editor (vi or gedit) and learn its basics
 Learn to use "jupyter notebook" to keep notes in this class; see /work/5P10/Lectures.

Week 2. Due Thursday Sep 21

 Familiarize yourself with the "Advanced Unix/Linux" from
www.tutorialspoint.com/unix/.
 Complete a bash script for your choice of a task, involving file operations,
searching for textual information inside files, etc.
 Review and revise the skeleton Makefile distributed in the lecture;
adapt it to the needs of your version of packet.c.
 Modify and extend the functionality of packet.c to accept additional
commandline switches, with and without parameters. Add error checking against
invalid parameter values as needed.
 Read through packet.f and reconcile its code to the derivation
of the solution for the Schrödinger equation developed in class.
Convert the solution into a dimensionless form.

Week 3. Due Thursday Sep 28

 Complete the packet project. With the help of the existing Fortran code,
develop packet.c that calculates a Gaussian packet, at a moment
in time specified as a parameter at run time. Ample comments throughout your
code must make its logic and its overall structure clear to any reader.
 Develop a gnuplot script that runs your program repeatedly and demonstrates
the evolution of the packet encountering a squarewell potential.
 Embed your code and your plots in a jupyter notebook, add markup cells that describe
what your project has achieved, and what you learned along the way. Make sure your name
is included in the top (header) markup cell of the project file.
 Your jupyter notebook must be submitted via email to the instructor.

Week 4. Due Thursday Oct 5

 Complete a plot and analysis of/work/5P10/Cavendish.dat,
extract the value of \( G \) and its error estimate, and produce a publicationquality plot.
Use one of eXtrema, gnuplot, octave, or python for plotting,
provide detailed comments in the script, and ensure that a different data set could easily
be analyzed using the same script, by changing only the data file name.
The distance to the board on which the position of the laser dot was recorded is \(L=10.31\)m.

Week 5. Reading Week.

Week 6. Introduction to MATLAB/octave

 Complete the introductory tutorial: basics, 2D and 3D plotting, loops, functions.
 Explore at least two advanced topics: ODEs, integration, leastsquares fits, linear algebra methods (e.g. svd).
 Convert one of previously obtained graphing/fitting exercises (VI.dat, Cavendish.dat) to octave.

Week 7. MATLAB/octave project (to be submitted Oct.30)

 Follow the skeleton of the project as posted in Lectures to learn how to
read in the data from remote sites, parse and plot it, bring into a common data structure with a
common time base.
 Perform regression analysis to determine the role played by the two obvious major influencers.
 Analyse trends in the adjusted data, with influencers removed.

Weeks 89. Inverse theory methods (to be submitted Nov.13)

 Review the concept of SVD decomposition.
 Analyze the skeleton code of regularize(); make sure you understand every line.
 Modify the main code by adding appropriate loops, etc. to reproduce the results
presented for the exponential example, including the Lcurves, on the sample data
provided in /work/5P10/test.dat
 Automate the optimum selection of parameter λ. One possible approach is to seek the
value that corresponds to the shortest distance to the origin on the Lcurve. Be efficient:
vary the step size in λ depending on how strong the dependence on λ is.
 Optionally, use your program to analyze a real experimental data set (in /work/5P10/Inverse/).

Weeks 910. 2D FFT in polar coordinates (to be submitted Nov.23)

 Carefully read the entire paper: Averbuch et al., 2005.
 Explore 1D FFT (see the skeleton script below) to build intuition into its properties. Vary the width, position, and shape of pulses in the time domain, and see how the FT changes.
 Create a family of test images that represent a cosinusoidal wave emanating radially from the centre in all directions, decaying with a Gaussian envelope as a function of the radial distance from the center. Postulate what a 2D FT in polar coordinates should look like for such test images, and perform the PPFFT. Was your initial guess correct?
 Vary parameters of your test file: rate of Gaussian decay of signal intensity, size of the test image, level of random noise added, the execution time, the map of phase errors, etc. Choose some interesting aspect to explore extensively and prepare a summary table (and a plot, if appropriate) of your findings. Reflect and discuss the result in your conclusions.
 See if you can measure the spacing of interference lines obtained in PHYS 3P91 experiments by using FFT. Sample images can be found in /work/5P10/Images. Use appropriate forms of FFT, depending on the image.
 Prepare and submit a full project writeup, as a Jupyter notebook.

Weeks 1011. Ising Model of ferromagnetism (to be submitted Dec.4)

 Modify
Evolve() function to implement the Metropolis algorithm.
 Calculate total energy and magnetization and keep a record of these.
 Repeat until the values settle to a stable equilibrium value; may need to ignore some early states that may reflect the initial conditions, wait until those are "forgotten".
 Change the temperature and repeat, recording the equilibrium values and the extent of fluctuations for each temperature.
 Plot magnetization as a function of temperature, find the conditions for ferromagnetic and antiferromagnetic transitions by exploring a range of parameters.
 As an independent part of the project, modify to consider one of:
 nearest and nextnearestneighbour interactions
 triangular lattice
 anisotropic spinspin interactions, e.g. EastWest coupling is different in strength from NorthSouth coupling
 lattice of spins that can reorient at their sites, with the Hamiltonian given by
$$
{\cal H} =  J \sum_{i,j} \vec{s}_i \cdot \vec{s}_j \mu \sum_j \vec{h} \cdot \vec{s}_j
$$
i.e. dependent on the [cos of the] angle between the two nearestneigbour spins, and of each spin with the direction of external magnetic field. Without loss of generality, one can assume that $\forall j, \vec{h}_j=\vec{h}=h\hat{k}$.

Week 12. Final paper (to be submitted Th Dec.14)

 Choose one of your previously completed octave/MATLAB jupyter notebooks and convert it to a scientific publication;
 Report your results as if these were novel, and this means relating them to the previously known results (in the Introduction), reporting Methods and Results, and discussing the implications in Conclusions;
 5P10 students: review the instructions for authors of one of the AIP or Elsevier journals and select an appropriate LaTeX style file on
overleaf.com ;
 4P10 students: you can choose to do the same, or use a Lab Report template, i.e. generating not an original research publication, but an internal laboratory report; the rest of the requirements are the same and all of the above sections need to be present;
 Before submitting, make sure that all figures and formulas remain legible and satisfy the journal guidelines in the
final form of the publication, not just the preprint one.

