Below are MATLAB lab activities I use in GEOL 214 - The Interior of the Earth. I hesitate to "publish" these to the web because they are not a complete, refined package. Rather I'm putting them here in hopes that others will try them out, make suggestions for improvements, and possibly share their own good ideas.
GEOL 214 is a core course required of all Geology BA and BS students at Binghamton University. My goal is to give them a first exposure and a degree of understanding of the important principles of Geophysics and Structural Geology.
We have a campus site license for MATLAB, a program which provides an excellent platform for visualization. It also provides a friendly user interface for students' first attempts at programming. Students in GEOL 214 typically have not studied Linear Algebra, so the ideas of matrices and particularly matrix multiplication must be introduced. This is not a Math course, though. Here MATLAB is used only to illustrate physical concepts and techniques useful in learning Geophysics.
In the following, the title of the lab is a link to directions in PDF format. Any needed files are linked within the description.
After a basic MATLAB tutorial, students work together in groups of 2-3 to write a script which will be used later in the course. In an earlier version of this lab I had the students draw a box, then rotate and translate it, but they got the idea that MATLAB was primarily used for drawing things rather than doing computations. This revised version has them write a script for an actual mathematical formula, the gravity anomaly profile over some density anomaly at depth.
Here are my scripts for this exercise, one in 2-d and another in 3-d. The students will write their own, typically much cruder, for example without variables. They learn through their mistakes.
Students start with a script I wrote that plots a 3-D cube. Students input values into a deformation tensor (essentially the strain tensor not constrained to be symmetric) to see how this changes the shape of the cube. They see that shear occurs with symmetric off-diagonal terms, rotation with anti-symmetric off-diagonal terms and compression-dilatation with on-diagonal terms. But then they discover that if the deformation tensor is applied to a rotated cube, the results can be quite different. In MATLAB they can see the before and after pictures, superimposed with vectors showing how each apex has moved, and can rotate the entire image in 3-D interactively.
Fermat's Principle and Snell's Law
Students derive Fermat's Principle of Least Time for themselves by calculating the travel times between points in a 2-layered medium for a variety of raypaths, and plot arrival time vs incidence angle. Gee, Snell's Law works!
The following is my script for this exercise. The students will write their own.
Using the SeismicLab and SEGYMat packages, students can read in shallow seismic refraction or reflection data in SU format, apply reduction velocities or NMO corrections, compute a layered velocity model and superimpose travel-time curves. I have a velocity analysis script and even a tau-p script for them to try. These tend to work best with fake or synthetic "data", but after seeing how they work, students apply them to real data.
The following scripts are provided. I'll also include one data file so you can see how this works.
shotgather.m, tt2.m, taup.m, fake.m, 200.su (right click and "save as" the su data file)
Note: With a recent change in SeismicLab version, the clip and cvnmo functions changed. Without time to change my scripts prior to the class using them, I simply used the old versions of these functions. I'll include them here.
Similar to the Refraction lab, but this time using artificially generated seismic reflection data. Students plot the data, do constant velocity NMO corrections, and a velocity scan to derive a layered model. They then superimpose travel-time curves on the "data" to see how well they did. These scripts use the SeismicLab and SEGYMat packages,
The following scripts are provided. Again, the older version of cvnmo is used in nmo_old.m I'll also include one synthetic data file and the script that generated it.
plotsyn.m, nmo_old.m, velscan.m, syn1.mat, syn3.mat (right click and "save as" the mat data files)
After plotting sinusoids with different values of period, amplitude and phase, students can sum sinusoids to generate an impulse (is this possible?) or a boxcar function.
The following scripts are provided:
Questions or comments: jbarker@binghamton.edu
Last modified: September 25, 2007 (content), reformatted and moved to Google sites 6/19/21