====== Differences ====== This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
gibson:teaching:spring-2016:math445:lab3 [2016/02/03 06:33] gibson |
gibson:teaching:spring-2016:math445:lab3 [2016/02/11 08:29] (current) gibson |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Math 445 lab 3: scripts, plotting, and publishing ====== | + | ====== Math 445 lab 3: scripts, log-linear relations ====== |
- | Write a single Matlab script file that solves the following problems, and use the Matlab ''publish'' function to create a nice-looking PDF of your code and graphs to turn in. Be sure to label each problem with comments like ''%% Problem 1%%'' so that the problems are separated and labeled in the PDF. | + | Write a single Matlab script file that solves the following problems, and use the [[http://www.mathworks.com/help/matlab/matlab_prog/publishing-matlab-code.html | Matlab ''publish'']] function to create a nice-looking PDF of your code and graphs to turn in. Be sure to label each problem with comments like ''<nowiki> %% Problem 1%% </nowiki>'' so that the problems are separated and labeled in the PDF. |
**Problem 1:** Redo problem 15 from lab 2 using a Matlab script. The problem is make a plot of the polynomial $f(x) = x^3 -5x^2 + 2x + 3$ over the range $-1 \leq x \leq 5$. Give the plot square axes and the title "math 445 lab 3 problem 1". | **Problem 1:** Redo problem 15 from lab 2 using a Matlab script. The problem is make a plot of the polynomial $f(x) = x^3 -5x^2 + 2x + 3$ over the range $-1 \leq x \leq 5$. Give the plot square axes and the title "math 445 lab 3 problem 1". | ||
Line 9: | Line 9: | ||
**Problem 3:** Make a plot of $y(x) = 0.3 \log x + 2$ over the range $1 \leq x \leq 10^5$ using a dot-dashed cyan line. Chose an appropriate plotting function that best displays the functional relationship between $x$ and $y$. For this plot, it's best to create the ''x'' vector with ''logspace'' rather than ''linspace''; e.g. ''x = logspace(0,5,20)'' will set ''x'' to 20 points between $1 = 10^0$ and $10^5$ which are uniformly spaced on a logarithmic plot. Label the axes, set the $y$ range of the plot to $2 \leq y \leq 6$, and place a coordinate grid within the plot. Title the plot as in previous problems. | **Problem 3:** Make a plot of $y(x) = 0.3 \log x + 2$ over the range $1 \leq x \leq 10^5$ using a dot-dashed cyan line. Chose an appropriate plotting function that best displays the functional relationship between $x$ and $y$. For this plot, it's best to create the ''x'' vector with ''logspace'' rather than ''linspace''; e.g. ''x = logspace(0,5,20)'' will set ''x'' to 20 points between $1 = 10^0$ and $10^5$ which are uniformly spaced on a logarithmic plot. Label the axes, set the $y$ range of the plot to $2 \leq y \leq 6$, and place a coordinate grid within the plot. Title the plot as in previous problems. | ||
- | **Problem 4:** Make a plot of $y(x) = 10 x^{-3}$ over the range $10 \leq x \leq 10^4$ using a solid green line. Chose an appropriate plotting function that best displays the functional relationship between $x$ and $y$. Use the ''logspace'' function for ''x'' as in problem 3. Label the axes, set the $x$ range of the plot to $0 \leq x \leq 10^5$, and place a coordinate grid within the plot. Title the plot as in previous problems. | + | **Problem 4:** Make a plot of $y(x) = 10 x^{-3}$ over the range $10 \leq x \leq 10^4$ using a solid green line. Chose an appropriate plotting function that best displays the functional relationship between $x$ and $y$. Use the ''logspace'' function for ''x'' as in problem 3. Label the axes, set the $x$ range of the plot to $10^0 \leq x \leq 10^5$, and place a coordinate grid within the plot. Title the plot as in previous problems. |
+ | |||
+ | **Instructions for problems 5,6,7:** For these problems you will deduce the functional relationship between variables in data sets using graphical analysis. The data sets are given as // N x 2// matrices with //x// as the first column and //y// as the second. For each data set, you will find a function //y(x)// that fits the data, using the following steps: | ||
+ | |||
+ | - Download or cut & paste the data set to a text file with an appropriate name, e.g. ''earthquake_magnitude.asc'' for problem 1. | ||
+ | - Load the dataset to Matlab with ''load''. For example, ''data = load('earthquake_magnitude.asc');''. | ||
+ | - Extract the two columns of the loaded data into two appropriately named vectors, e.g. ''M = data(:,1);'' and ''N = data(:,2);'' will extract the M (magnitude) and N (number) columns of the earthquake-magnitude data matrix into vectors ''M'' and ''N'' for problem 1. For the remaining generic instructions I'll call these vectors ''x'' and ''y''. | ||
+ | - Experiment with ''plot'', ''semilogy'', ''semilogx'', and ''loglog'' to determine the functional relationship between ''y'' and ''x''. | ||
+ | - Estimate the constants in the log-linear relationship graphically to determine the specific functional relation between ''y'' and ''x''. | ||
+ | - Plot the estimated function and the data together, and fine-tune your function by adjusting the constants until there is a good fit between the estimated function and the data. | ||
+ | |||
+ | Once you have good fit between the data and the function, make a plot that shows | ||
+ | |||
+ | * the data set's //y// versus //x// as red circles | ||
+ | * your function //y(x)// as a solid blue line | ||
+ | * a legend indicating the meaning of each plotting symbol | ||
+ | * appropriate labels for each axis and a title | ||
+ | |||
+ | and provide an explicit formula for $y(x)$. | ||
+ | |||
+ | |||
+ | |||
+ | **Problem 5: The distribution of earthquake magnitudes, by Moment Magnitude scale.** | ||
+ | Big earthquakes are rare, and little earthquakes are frequent. In fact, there is a | ||
+ | very clean empirical law that governs how many earthquakes of a given magnitude | ||
+ | typically occur world-wide in a given year. Your job is to deduce that law from | ||
+ | the following historical data. | ||
+ | |||
+ | <file - earthquake_magnitude.asc> | ||
+ | % M N | ||
+ | 8 2 | ||
+ | 7 18 | ||
+ | 6 120 | ||
+ | 5 800 | ||
+ | 4 6200 | ||
+ | 3 49000 | ||
+ | 2 365000 | ||
+ | 1 2920000 | ||
+ | </file> | ||
+ | |||
+ | The first column is the [[http://en.wikipedia.org/wiki/Moment_magnitude_scale | moment magnitude]] //M//, and the second column is the number of earthquakes //N// of that magnitude that occur, on average, in a year. The last two entries are estimates, since it's impossible to detect every small earthquake around the world. The data are obtained from [[http://www.earthquake.ethz.ch/education/NDK/NDK|Earthquake Statistics and Earthquake Prediction Research]] by Stefan Wiemer, Institute of Geophysics, Zurich. | ||
+ | |||
+ | Using Matlab plotting commands, deduce the form of the functional relationship //N(M)//. Estimate the constants in the relationship by estimating the slope and the //y//-intercept, and then fine-tuning by matching the plot of your estimate against the plot of the data. | ||
+ | |||
+ | **Problem 6: The distribution of earthquake magnitudes, by energy.** The moment magnitude scale is logarithmic, in that an earthquake of magnitude //M+1// releases about 32 times more energy than an earthquake of magnitude //M//. The following dataset gives the number //N// of earthquakes in a given | ||
+ | year of energy //E// measured in Joules. | ||
+ | <file - earthquake_energy.asc> | ||
+ | % E N | ||
+ | 6e16 2 | ||
+ | 2e15 18 | ||
+ | 6e13 120 | ||
+ | 2e12 800 | ||
+ | 6e10 6200 | ||
+ | 2e09 49000 | ||
+ | 6e07 365000 | ||
+ | 1e06 2920000 | ||
+ | </file> | ||
+ | |||
+ | Deduce the form of the functional relation //E(N)// using Matlab plotting, then estimate | ||
+ | and fine-tune the constants in the relation, just as in problem 1. | ||
+ | |||
+ | **Problem 7: World population.** The following data set provides the human population //P// of the earth at a given time //t//, measured in years A.D. | ||
+ | |||
+ | <file - world_population.asc> | ||
+ | % t P | ||
+ | 1927 2e09 | ||
+ | 1960 3e09 | ||
+ | 1974 4e09 | ||
+ | 1987 5e09 | ||
+ | 1999 6e09 | ||
+ | 2011 7e09 | ||
+ | </file> | ||
+ | |||
+ | Deduce the form of the functional relation //P(t)// and determine the constants graphically. | ||
+ | |||
+ | Assume that the formula you derived for //P(t)// is valid indefinitely into the future and | ||
+ | the past. What year will the population of the earth reach one trillion? What year were the | ||
+ | first humans born? Do you believe these answers? If not, why not? | ||