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 command-line 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 square-well 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 publication-quality 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, least-squares 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 8-9. 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 L-curves, 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 L-curve. 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 9-10. 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 write-up, as a Jupyter notebook.
Weeks 10-11. 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 next-nearest-neighbour interactions
    • triangular lattice
    • anisotropic spin-spin interactions, e.g. East-West coupling is different in strength from North-South coupling
    • lattice of spins that can re-orient 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 nearest-neigbour 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.