Weekly homework
Week 1. Due Th Jan 18
  • cover all sections until the "Advanced Unix/Linux" from www.tutorialspoint.com/unix/
  • develop a personal "cheat sheet" of useful commands
  • choose an editor (vi or gedit) and learn its basics
  • optional: use "jupyter notebook" to keep notes in this class; see /work/5P10/Lectures
Week 2. Due Th Jan 25
  • cover 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.
Week 3. Due Th Feb 1
  • Review and revise the skeleton Makefile distributed in the lacture; 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 to its dimensionless form and verify that the Fortran code actually calculates the correct Gaussian packet.
Week 4. Due Th Feb 8
  • Complete the port of the Fortran program packet.f to C. Use gnuplot for plotting its output.
Week 5. Due Th Feb 15
  • Complete last week's homework: port the Fortran program packet.f to C. Use gnuplot for plotting its output.
  • Student Project No.1:
    Code (in C) a numerical solution to the 1D square well potential problem in QM. Find the roots of the characteristic equation, having converted it to dimensionless form. Generate a plot of \(|\psi(x)|^2\) across the potential well, for each root found.
Week 6. Reading Week. Due Th Mar 1
  • Advanced fitting and plotting use: complete gnuplot- or physica-based analysis of the Cavendish experiment data.
  • Introduction to octave: work through the basic octave tutorial.
  • Convert one of previously obtained graphing/fitting exercises (VI.dat, Cavendish.dat) to octave.
Week 7. Inverse theory methods - Student Project No.2, Due Th Mar 8
  • 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/).