Cheminformatics/Other/06 Sept CBR.Rmd

145 lines
3.6 KiB
Plaintext

---
title: "BCR 06 Sept"
author: "Jonathan Herrewijnen"
date: "September 6, 2018"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
This is an R Markdown document. 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 click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
```{r cars}
summary(cars)
```
## Including Plots
You can also embed plots, for example:
```{r pressure, echo=FALSE}
plot(pressure)
```
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
//CBR Two dimensional phase portraits, equilibria and stability
```{r}
#install.packages("phaseR")
library("phaseR")
# define 2D ODE model
model = function(timepoint, state, parameters) {
with(as.list(c(state, parameters)), {
dx = -2 * x - 3 * y
dy = -x - 2 * y
list(c(dx, dy))
})
}
# for setting the axis limits
xlim = c(-10, 10)
ylim = c(-10, 10)
# no parameters in the ODE, so we set pars as an empty vector
pars = vector()
# draw vector field
model.flowField = flowField(xlab = "x", ylab = "y", model, xlim = xlim, ylim = ylim,
parameters = pars, points = 19, add = FALSE, state.names = c("x", "y"))
# draw nullclines
model.nullclines = nullclines(model, xlim = xlim, ylim = ylim, parameters = pars,
points = 500, state.names = c("x", "y"))
# draw trajectory
model.trajectory = trajectory(model, y0 = c(-5, -5), tlim = c(0, 10), parameters = pars,
state.names = c("x", "y"))
```
//Numerical Solution
```{r}
# perform numerical simulation and plot end result
model.numericalSolution = numericalSolution(model, y0 = c(-5, -5), tlim = c(0,
20), type = "one", parameters = pars, col = c("green", "orange"), ylim = ylim,
add.legend = F)
# make legend for plot
legend("topright", col = c("green", "orange"), legend = c("x", "y"), lty = 1)
# after the next command, click mouse to find values of a point within the
# phase portrait (e.g., to approximate the value of an equilibrium)
eq = locator(n = 1)
eq
```
//QUESTION 1
The 0, 0 location was determined from the first phase portrait!
Not from the second click portrait!
```{r}
#?stability
stability(model, ystar = c(0, 0))
#stability(deriv, ystar = NULL, parameters = NULL, system = "two.dim", h = 1e-07, summary = TRUE, state.names = c("x", "y"))
```
//Question 2
Meaning of T and Delta.
T=(I THINK!) the value of the equilibrium at dx/dt=0 -> So for the equilibrium, in our case the equilibrium is stable.
Delta="In the two dimensional system case, value of the Jacobians determinant at y.star. ->So the Jacobian matrix
//Question 3: PhasePlaneAnalysis
```{r}
# perform phase plane analysis
phasePlaneAnalysis(model, xlim = xlim, ylim = ylim, parameters = pars)
```
//QUESTION 4-8
```{r}
library("phaseR")
# define 2D ODE model
model = function(timepoint, state, parameters) {
with(as.list(c(state, parameters)), {
#Question 4
dx = -x + (2 * y)
dy = (-5 * x) - y
#Question 5
#dx = -3*x -2*y
#dy = -2*x -y
list(c(dx, dy))
})
}
# for setting the axis limits
xlim = c(-10, 10)
ylim = c(-10, 10)
# no parameters in the ODE, so we set pars as an empty vector
pars = vector()
#Determine Stability
stability(model, ystar = c(0, 0))
# perform phase plane analysis
phasePlaneAnalysis(model, xlim = xlim, ylim = ylim, parameters = pars)
```