This is an R markdown notebook
This is an R Markdown Notebook. It mixes text and R code in a single document. The code is contained in R chunks. When you execute code in a code chunk, the results appear beneath the code chunk.
Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.
plot(cars)
Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.
This document uses the R Markdown format. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).
The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.
First we need to load some libraries. So run the following code.
library(mizer)
library(tidyverse)
library(plotly)
Exercise 1: Number density plot
Do this exercise only once you have reached the corresponding point in the tutorial notebook. It involves using similar code to that you have seen in the examples in that notebook.
Create a MizerParams object describing a single species in a power-law background where the Sheldon exponent is 2.1. Then plot the number density as a function of weight in the steady state of that model.
.
Once you are satisfied with your plot, continue in the tutorial notebook until you reach the next exercise.
Exercise 2: Number of fish in size class
Create the params object used in the tutorial, describing the single-species in a power-law background with exponent 2.05. Run the model to steady state. Then determine the number of fish in the size bracket between 10 grams and 10.5 grams.
.
Exercise 3: Mortality rate plot and fit
Make a log-log plot of the mortality rate in the steady state of the model from exercise 2. You can get the mortality rate with the getMort() function. Watch out for a surprise when you look at the variable names in the data frame that you will create.
.
Now fit a linear model to determine the slope and and intercept and thus the allometric exponent for the mortality rate and the coefficient, to establish that \[\mu(w) = 1.909\ w^{-1/4}.\]
.
Exercise 4: Growth rates
Make a plot showing the growth rates of the original model and of the model with the changed maturity curve.
.
Exercise 6: Predation kernel
Change the paramters of the predation kernel to beta = 500 and sigma = 3 and plot the predation kernel of a predator of size 1g. You should see that the predation kernel is truncated so that the predator never feeds on prey larger than themselves.
.
Next, plot the steady state arising with this feeding kernel when the prey abundance is artificially reduced by a factor of 10 in the size range between 1mg and 10mg as in previous examples. What do you observe? Are you surprised?
.
Exercise 7: Decreased gamma
What effect will this change in growth rate have on the slope of the juvenile spectrum? Will it be steeper or shallower? Make the plot of the spectrum to see.
.
LS0tCnRpdGxlOiAiRXhlcmNpc2VzIG9uIHNpbmdsZS1zcGVjaWVzIHNpemUtc3BlY3RydW0gZHluYW1pY3MiCmF1dGhvcjogIllvdXIgbmFtZSBoZXJlIgpkYXRlOiAiMTQgSmFudWFyeSAyMDIwIgpvdXRwdXQ6IAogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2M6IFRSVUUKLS0tCgojIFRoaXMgaXMgYW4gUiBtYXJrZG93biBub3RlYm9vawpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gSXQgbWl4ZXMKdGV4dCBhbmQgUiBjb2RlIGluIGEgc2luZ2xlIGRvY3VtZW50LiBUaGUgY29kZSBpcyBjb250YWluZWQgaW4gUiBjaHVua3MuCldoZW4geW91IGV4ZWN1dGUgY29kZSBpbiBhIGNvZGUgY2h1bmssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlCmNodW5rLiAKClRyeSBleGVjdXRpbmcgdGhpcyBjaHVuayBieSBjbGlja2luZyB0aGUgKlJ1biogYnV0dG9uIHdpdGhpbiB0aGUgY2h1bmsgb3IgYnkgcGxhY2luZyB5b3VyIGN1cnNvciBpbnNpZGUgaXQgYW5kIHByZXNzaW5nICpDdHJsK1NoaWZ0K0VudGVyKi4gCgpgYGB7cn0KcGxvdChjYXJzKQpgYGAKCkFkZCBhIG5ldyBjaHVuayBieSBjbGlja2luZyB0aGUgKkluc2VydCBDaHVuayogYnV0dG9uIG9uIHRoZSB0b29sYmFyIG9yIGJ5IHByZXNzaW5nICpDdHJsK0FsdCtJKi4KClRoaXMgZG9jdW1lbnQgdXNlcyB0aGUgUiBNYXJrZG93biBmb3JtYXQuIE1hcmtkb3duIGlzIGEgc2ltcGxlIGZvcm1hdHRpbmcgc3ludGF4IGZvciBhdXRob3JpbmcgSFRNTCwgUERGLCBhbmQgTVMgV29yZCBkb2N1bWVudHMuIEZvciBtb3JlIGRldGFpbHMgb24gdXNpbmcgUiBNYXJrZG93biBzZWUgPGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20+LgoKV2hlbiB5b3Ugc2F2ZSB0aGUgbm90ZWJvb2ssIGFuIEhUTUwgZmlsZSBjb250YWluaW5nIHRoZSBjb2RlIGFuZCBvdXRwdXQgd2lsbCBiZSBzYXZlZCBhbG9uZ3NpZGUgaXQgKGNsaWNrIHRoZSAqUHJldmlldyogYnV0dG9uIG9yIHByZXNzICpDdHJsK1NoaWZ0K0sqIHRvIHByZXZpZXcgdGhlIEhUTUwgZmlsZSkuCgpUaGUgcHJldmlldyBzaG93cyB5b3UgYSByZW5kZXJlZCBIVE1MIGNvcHkgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBlZGl0b3IuIENvbnNlcXVlbnRseSwgdW5saWtlICpLbml0KiwgKlByZXZpZXcqIGRvZXMgbm90IHJ1biBhbnkgUiBjb2RlIGNodW5rcy4gSW5zdGVhZCwgdGhlIG91dHB1dCBvZiB0aGUgY2h1bmsgd2hlbiBpdCB3YXMgbGFzdCBydW4gaW4gdGhlIGVkaXRvciBpcyBkaXNwbGF5ZWQuCgpGaXJzdCB3ZSBuZWVkIHRvIGxvYWQgc29tZSBsaWJyYXJpZXMuIFNvIHJ1biB0aGUgZm9sbG93aW5nIGNvZGUuCmBgYHtyIG1lc3NhZ2U9RkFMU0V9CmxpYnJhcnkobWl6ZXIpCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHBsb3RseSkKYGBgCgoKIyBFeGVyY2lzZSAxOiBOdW1iZXIgZGVuc2l0eSBwbG90CkRvIHRoaXMgZXhlcmNpc2Ugb25seSBvbmNlIHlvdSBoYXZlIHJlYWNoZWQgdGhlIGNvcnJlc3BvbmRpbmcgcG9pbnQgaW4gdGhlCnR1dG9yaWFsIG5vdGVib29rLiBJdCBpbnZvbHZlcyB1c2luZyBzaW1pbGFyIGNvZGUgdG8gdGhhdCB5b3UgaGF2ZSBzZWVuIGluCnRoZSBleGFtcGxlcyBpbiB0aGF0IG5vdGVib29rLgoKQ3JlYXRlIGEgTWl6ZXJQYXJhbXMgb2JqZWN0IGRlc2NyaWJpbmcgYSBzaW5nbGUgc3BlY2llcyBpbiBhIHBvd2VyLWxhdyAKYmFja2dyb3VuZCB3aGVyZSB0aGUgU2hlbGRvbiBleHBvbmVudCBpcyAyLjEuIFRoZW4gcGxvdCB0aGUgbnVtYmVyIGRlbnNpdHkKYXMgYSBmdW5jdGlvbiBvZiB3ZWlnaHQgaW4gdGhlIHN0ZWFkeSBzdGF0ZSBvZiB0aGF0IG1vZGVsLgpgYGB7cn0KLgoKYGBgCgpPbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBwbG90LCBjb250aW51ZSBpbiB0aGUgdHV0b3JpYWwgbm90ZWJvb2sgdW50aWwKeW91IHJlYWNoIHRoZSBuZXh0IGV4ZXJjaXNlLgoKIyBFeGVyY2lzZSAyOiBOdW1iZXIgb2YgZmlzaCBpbiBzaXplIGNsYXNzCkNyZWF0ZSB0aGUgcGFyYW1zIG9iamVjdCB1c2VkIGluIHRoZSB0dXRvcmlhbCwgZGVzY3JpYmluZyB0aGUgc2luZ2xlLXNwZWNpZXMgaW4KYSBwb3dlci1sYXcgYmFja2dyb3VuZCB3aXRoIGV4cG9uZW50IDIuMDUuIFJ1biB0aGUgbW9kZWwgdG8gc3RlYWR5IHN0YXRlLiBUaGVuCmRldGVybWluZSB0aGUgbnVtYmVyIG9mIGZpc2ggaW4gdGhlIHNpemUgYnJhY2tldCBiZXR3ZWVuIDEwIGdyYW1zIGFuZCAxMC41IGdyYW1zLgpgYGB7cn0KLgoKYGBgCgojIEV4ZXJjaXNlIDM6IE1vcnRhbGl0eSByYXRlIHBsb3QgYW5kIGZpdApNYWtlIGEKbG9nLWxvZyBwbG90IG9mIHRoZSBtb3J0YWxpdHkgcmF0ZSBpbiB0aGUgc3RlYWR5IHN0YXRlIG9mIHRoZSBtb2RlbCBmcm9tIApleGVyY2lzZSAyLiBZb3UgY2FuIGdldCB0aGUKbW9ydGFsaXR5IHJhdGUgd2l0aCB0aGUgYGdldE1vcnQoKWAgZnVuY3Rpb24uIFdhdGNoIG91dCBmb3IgYSBzdXJwcmlzZSB3aGVuCnlvdSBsb29rIGF0IHRoZSB2YXJpYWJsZSBuYW1lcyBpbiB0aGUgZGF0YSBmcmFtZSB0aGF0IHlvdSB3aWxsIGNyZWF0ZS4KYGBge3J9Ci4KYGBgCgpOb3cgZml0IGEgbGluZWFyIG1vZGVsIHRvIGRldGVybWluZSB0aGUgc2xvcGUgYW5kIGFuZCBpbnRlcmNlcHQgYW5kIHRodXMgdGhlCmFsbG9tZXRyaWMgZXhwb25lbnQgZm9yIHRoZSBtb3J0YWxpdHkgcmF0ZSBhbmQgdGhlIGNvZWZmaWNpZW50LCB0byBlc3RhYmxpc2gKdGhhdAokJFxtdSh3KSA9IDEuOTA5XCB3XnstMS80fS4kJAoKYGBge3J9Ci4KYGBgCgojIEV4ZXJjaXNlIDQ6IEdyb3d0aCByYXRlcwpNYWtlIGEgcGxvdCBzaG93aW5nIHRoZSBncm93dGggcmF0ZXMgb2YgdGhlIG9yaWdpbmFsIG1vZGVsIGFuZCBvZiB0aGUgbW9kZWwKd2l0aCB0aGUgY2hhbmdlZCBtYXR1cml0eSBjdXJ2ZS4KYGBge3J9CiAuCmBgYAoKIyBFeGVyY2lzZSA1OiBFeHRyYSBwcmV5ClBsb3QgdGhlIHN0ZWFkeSBzdGF0ZSBiaW9tYXNzIGRlbnNpdHkgaW4gb3VyIG1vZGVsIHdoZW4gdGhlIGNvbW11bml0eQphYnVuZGFuY2UgaXMgaW5jcmVhc2VkIGJ5IGEgZmFjdG9yIG9mIDEwIGluIHRoZSBzaXplIHJhbmdlIGZyb20gMW1nIHRvIDEwbWcuCgpgYGB7cn0KIC4KYGBgCgojIEV4ZXJjaXNlIDY6IFByZWRhdGlvbiBrZXJuZWwKQ2hhbmdlIHRoZSBwYXJhbXRlcnMgb2YgdGhlIHByZWRhdGlvbiBrZXJuZWwgdG8gYGJldGEgPSA1MDBgIGFuZApgc2lnbWEgPSAzYCBhbmQgcGxvdCB0aGUgcHJlZGF0aW9uIGtlcm5lbCBvZiBhIHByZWRhdG9yIG9mIHNpemUgMWcuCllvdSBzaG91bGQgc2VlIHRoYXQgdGhlIHByZWRhdGlvbiBrZXJuZWwgaXMgdHJ1bmNhdGVkIHNvIHRoYXQgdGhlIHByZWRhdG9yCm5ldmVyIGZlZWRzIG9uIHByZXkgbGFyZ2VyIHRoYW4gdGhlbXNlbHZlcy4KYGBge3J9CiAuCmBgYAoKTmV4dCwgcGxvdCB0aGUgc3RlYWR5IHN0YXRlIGFyaXNpbmcgd2l0aCB0aGlzIGZlZWRpbmcga2VybmVsIHdoZW4gdGhlIHByZXkKYWJ1bmRhbmNlIGlzIGFydGlmaWNpYWxseSByZWR1Y2VkIGJ5IGEgZmFjdG9yIG9mIDEwIGluIHRoZSBzaXplIHJhbmdlIGJldHdlZW4KMW1nIGFuZCAxMG1nIGFzIGluIHByZXZpb3VzIGV4YW1wbGVzLiBXaGF0IGRvIHlvdSBvYnNlcnZlPyBBcmUgeW91IHN1cnByaXNlZD8KYGBge3J9CiAuCmBgYAoKCiMgRXhlcmNpc2UgNzogRGVjcmVhc2VkIGdhbW1hCldoYXQgZWZmZWN0IHdpbGwgdGhpcyBjaGFuZ2UgaW4gZ3Jvd3RoIHJhdGUgaGF2ZSBvbiB0aGUgc2xvcGUgb2YgdGhlIGp1dmVuaWxlCnNwZWN0cnVtPyBXaWxsIGl0IGJlIHN0ZWVwZXIgb3Igc2hhbGxvd2VyPyBNYWtlIHRoZSBwbG90IG9mIHRoZSBzcGVjdHJ1bSB0bwpzZWUuCmBgYHtyfQogLgpgYGAK