├── .gitattributes ├── .gitignore ├── 02-Unconstrained_Optimization.Rmd ├── 03-One_Dimensional_Optimization.Rmd ├── 04-Line_Search_Descent_Methods.Rmd ├── 05-Conjugate_Gradient_Methods.Rmd ├── 06-Quasi_Newton_Methods.Rmd ├── CODE_OF_CONDUCT.md ├── README.md ├── _bookdown.yml ├── _bookdown_files └── bookdownproj_files │ └── figure-html │ ├── unnamed-chunk-1-1.png │ ├── unnamed-chunk-1-3.png │ ├── unnamed-chunk-10-1.png │ ├── unnamed-chunk-10-2.png │ ├── unnamed-chunk-10-3.png │ ├── unnamed-chunk-10-5.png │ ├── unnamed-chunk-2-1.png │ ├── unnamed-chunk-2-11.png │ ├── unnamed-chunk-2-13.png │ ├── unnamed-chunk-2-15.png │ ├── unnamed-chunk-2-17.png │ ├── unnamed-chunk-2-19.png │ ├── unnamed-chunk-2-21.png │ ├── unnamed-chunk-2-23.png │ ├── unnamed-chunk-2-25.png │ ├── unnamed-chunk-2-27.png │ ├── unnamed-chunk-2-29.png │ ├── unnamed-chunk-2-3.png │ ├── unnamed-chunk-2-31.png │ ├── unnamed-chunk-2-33.png │ ├── unnamed-chunk-2-35.png │ ├── unnamed-chunk-2-5.png │ ├── unnamed-chunk-2-7.png │ ├── unnamed-chunk-2-9.png │ ├── unnamed-chunk-6-1.png │ ├── unnamed-chunk-6-11.png │ ├── unnamed-chunk-6-13.png │ ├── unnamed-chunk-6-15.png │ ├── unnamed-chunk-6-17.png │ ├── unnamed-chunk-6-19.png │ ├── unnamed-chunk-6-21.png │ ├── unnamed-chunk-6-23.png │ ├── unnamed-chunk-6-25.png │ ├── unnamed-chunk-6-27.png │ ├── unnamed-chunk-6-29.png │ ├── unnamed-chunk-6-3.png │ ├── unnamed-chunk-6-31.png │ ├── unnamed-chunk-6-33.png │ ├── unnamed-chunk-6-35.png │ ├── unnamed-chunk-6-37.png │ ├── unnamed-chunk-6-39.png │ ├── unnamed-chunk-6-41.png │ ├── unnamed-chunk-6-43.png │ ├── unnamed-chunk-6-45.png │ ├── unnamed-chunk-6-47.png │ ├── unnamed-chunk-6-48.png │ ├── unnamed-chunk-6-49.png │ ├── unnamed-chunk-6-5.png │ ├── unnamed-chunk-6-51.png │ ├── unnamed-chunk-6-53.png │ ├── unnamed-chunk-6-55.png │ ├── unnamed-chunk-6-57.png │ ├── unnamed-chunk-6-59.png │ ├── unnamed-chunk-6-61.png │ ├── unnamed-chunk-6-63.png │ ├── unnamed-chunk-6-65.png │ ├── unnamed-chunk-6-7.png │ └── unnamed-chunk-6-9.png ├── _output.yml ├── book-description.html ├── docs ├── a-caucus-race-and-a-long-tale.html ├── bookdownproj_files │ └── figure-html │ │ ├── unnamed-chunk-1-1.png │ │ ├── unnamed-chunk-1-3.png │ │ ├── unnamed-chunk-10-1.png │ │ ├── unnamed-chunk-10-2.png │ │ ├── unnamed-chunk-10-3.png │ │ ├── unnamed-chunk-10-5.png │ │ ├── unnamed-chunk-2-1.png │ │ ├── unnamed-chunk-2-11.png │ │ ├── unnamed-chunk-2-13.png │ │ ├── unnamed-chunk-2-15.png │ │ ├── unnamed-chunk-2-17.png │ │ ├── unnamed-chunk-2-19.png │ │ ├── unnamed-chunk-2-21.png │ │ ├── unnamed-chunk-2-23.png │ │ ├── unnamed-chunk-2-25.png │ │ ├── unnamed-chunk-2-27.png │ │ ├── unnamed-chunk-2-29.png │ │ ├── unnamed-chunk-2-3.png │ │ ├── unnamed-chunk-2-31.png │ │ ├── unnamed-chunk-2-33.png │ │ ├── unnamed-chunk-2-35.png │ │ ├── unnamed-chunk-2-5.png │ │ ├── unnamed-chunk-2-7.png │ │ ├── unnamed-chunk-2-9.png │ │ ├── unnamed-chunk-6-1.png │ │ ├── unnamed-chunk-6-11.png │ │ ├── unnamed-chunk-6-13.png │ │ ├── unnamed-chunk-6-15.png │ │ ├── unnamed-chunk-6-17.png │ │ ├── unnamed-chunk-6-19.png │ │ ├── unnamed-chunk-6-21.png │ │ ├── unnamed-chunk-6-23.png │ │ ├── unnamed-chunk-6-25.png │ │ ├── unnamed-chunk-6-27.png │ │ ├── unnamed-chunk-6-29.png │ │ ├── unnamed-chunk-6-3.png │ │ ├── unnamed-chunk-6-31.png │ │ ├── unnamed-chunk-6-33.png │ │ ├── unnamed-chunk-6-35.png │ │ ├── unnamed-chunk-6-37.png │ │ ├── unnamed-chunk-6-39.png │ │ ├── unnamed-chunk-6-41.png │ │ ├── unnamed-chunk-6-43.png │ │ ├── unnamed-chunk-6-45.png │ │ ├── unnamed-chunk-6-47.png │ │ ├── unnamed-chunk-6-49.png │ │ ├── unnamed-chunk-6-5.png │ │ ├── unnamed-chunk-6-51.png │ │ ├── unnamed-chunk-6-53.png │ │ ├── unnamed-chunk-6-55.png │ │ ├── unnamed-chunk-6-57.png │ │ ├── unnamed-chunk-6-59.png │ │ ├── unnamed-chunk-6-61.png │ │ ├── unnamed-chunk-6-63.png │ │ ├── unnamed-chunk-6-65.png │ │ ├── unnamed-chunk-6-7.png │ │ └── unnamed-chunk-6-9.png ├── conjugate-gradient-methods-1.html ├── contributor-covenant-code-of-conduct.html ├── img 1.png ├── img 10.png ├── img 11.png ├── img 12.png ├── img 13.png ├── img 14.png ├── img 15.png ├── img 16.png ├── img 17.png ├── img 18.png ├── img 19.png ├── img 2.png ├── img 20.png ├── img 21.png ├── img 22.png ├── img 23.png ├── img 24.png ├── img 25.png ├── img 26.png ├── img 27.png ├── img 3.png ├── img 4.png ├── img 5.png ├── img 6.png ├── img 7.png ├── img 8.png ├── img 9.png ├── index.html ├── introduction-to-unconstrained-optimization.html ├── libs │ ├── accessible-code-block-0.0.1 │ │ └── empty-anchor.js │ ├── anchor-sections-1.0.1 │ │ ├── anchor-sections.css │ │ └── anchor-sections.js │ ├── gitbook-2.6.7 │ │ ├── css │ │ │ ├── fontawesome │ │ │ │ └── fontawesome-webfont.ttf │ │ │ ├── plugin-bookdown.css │ │ │ ├── plugin-clipboard.css │ │ │ ├── plugin-fontsettings.css │ │ │ ├── plugin-highlight.css │ │ │ ├── plugin-search.css │ │ │ ├── plugin-table.css │ │ │ └── style.css │ │ └── js │ │ │ ├── app.min.js │ │ │ ├── clipboard.min.js │ │ │ ├── jquery.highlight.js │ │ │ ├── lunr.js │ │ │ ├── plugin-bookdown.js │ │ │ ├── plugin-clipboard.js │ │ │ ├── plugin-fontsettings.js │ │ │ ├── plugin-search.js │ │ │ └── plugin-sharing.js │ └── jquery-2.2.3 │ │ └── jquery.min.js ├── licence.html ├── line-search-descent-methods.html ├── quasi-newton-methods.html ├── reference-keys.txt ├── search_index.json ├── solving-one-dimensional-optimization-problems.html ├── style.css ├── the-pool-of-tears.html ├── what-is-numerical-optimization-1.html └── what-is-numerical-optimization.html ├── fibonaccisearch.csv ├── img 1.png ├── img 10.png ├── img 11.png ├── img 12.png ├── img 13.png ├── img 14.png ├── img 15.png ├── img 16.png ├── img 17.png ├── img 18.png ├── img 19.png ├── img 2.png ├── img 20.png ├── img 21.png ├── img 22.png ├── img 23.png ├── img 24.png ├── img 25.png ├── img 26.png ├── img 27.png ├── img 3.png ├── img 4.png ├── img 5.png ├── img 6.png ├── img 7.png ├── img 8.png ├── img 9.png ├── index.Rmd └── style.css /.gitattributes: -------------------------------------------------------------------------------- 1 | *.css linguist-detectable=false 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .Rhistory 2 | .RData 3 | .Rproj.user 4 | *.Rproj 5 | -------------------------------------------------------------------------------- /02-Unconstrained_Optimization.Rmd: -------------------------------------------------------------------------------- 1 | # Introduction to Unconstrained Optimization 2 | 3 | This chapter introduces what exactly an unconstrained optimization problem is. A detailed discussion of Taylor's Theorem is provided and has been use to study the first order and second order necessary and sufficient conditions for local minimizer in an unconstrained optimization tasks. Examples have been supplied too in view of understanding the necessary and sufficient conditions better. The Python package `scipy.optimize`, which will form an integral part in solving many optimization problems in the later chapters of this book, is introduced too. The chapter ends with an overview of how an algorithm to solve unconstrained minimization problem works, covering briefly two procedures: **line search descent method** and **trust region method**. 4 | 5 | --- 6 | 7 | ## The Unconstrained Optimization Problem 8 | 9 | As we have discussed in the first chapter, an unconstrained optimization problem deals with finding the local minimizer $\mathbf{x}^*$ of a real valued and smooth objective function $f(\mathbf{x})$ of $n$ variables, given by $f: \mathbb{R}^n \rightarrow \mathbb{R}$, formulated as, 10 | 11 | \begin{equation} 12 | \underset{\mathbf{x} \in \mathbb{R}^n}{\min f(\mathbf{x})} (\#eq:1) 13 | \end{equation} 14 | with no restrictions on the decision variables $\mathbf{x}$. We work towards computing $\mathbf{x}^*$, such that $\forall\ \mathbf{x}$ near $\mathbf{x}^*$, the following inequality is satisfied: 15 | \begin{equation} 16 | f(\mathbf{x}^*) \leq f(\mathbf{x}) (\#eq:2) 17 | \end{equation} 18 | 19 | ## Smooth Functions 20 | 21 | In terms of analysis, the measure of the number of continuous derivative a function has, characterizes the *smoothness* of a function. 22 | 23 | ```{definition} 24 | A function $f$ is *smooth* if it can be differentiated everywhere, i.e, the function has continuous derivatives up to some desired order over particular domain [Weisstein, Eric W. "Smooth Function." https://mathworld.wolfram.com/SmoothFunction.html]. 25 | ``` 26 | 27 | Some examples of smooth functions are , $f(x) = x$, $f(x)=e^x$, $f(x)=\sin(x)$, etc. To study the local minima $\mathbf{x}^*$ of a smooth objective function $f(\mathbf{x})$, we emphasize on *Taylor's theorem for a multivariate function*, thus focusing on the computations of the gradient vector $\nabla f(\mathbf{x})$ and the Hessian matrix $\mathbf{H} f(\mathbf{x})$. 28 | 29 | ## Taylor's Theorem 30 | 31 | ```{theorem} 32 | For a smooth function of a single variable given by $f: \mathbb{R} \rightarrow \mathbb{R}$, $m(\geq 1)$ times differentiable at the point $p \in \mathbb{R}$, there exists a function $j_m: \mathbb{R} \rightarrow \mathbb{R}$, such that the following equations are satisfied: 33 | \begin{align} 34 | f(x) &= f(p) + (x - p)f^{'}(p) + \frac{(x-p)^2}{2!}f^{''}(p) + \ldots \\ &+ \frac{(x-p)^m}{m!}f^m(p) + (x-p)^m j_m(x) (\#eq:3) 35 | \end{align} 36 | and 37 | \begin{equation} 38 | \lim_{x \to p}j_m(x)=0 (\#eq:4) 39 | \end{equation} 40 | ``` 41 | 42 | The $m-$th order Taylor polynomial of the function $f$ around the point $p$ is given by: 43 | \begin{align} 44 | P_m(x)&=f(p) + (x - p)f^{'}(p) + \frac{(x-p)^2}{2!}f^{''}(p) + \ldots \\ &+ \frac{(x-p)^m}{m!}f^m(p) (\#eq:5) 45 | \end{align} 46 | 47 | Now let $f$ be a smooth, continuously differentiable function that takes in multiple variables, i.e, $f: \mathbb{R}^n \rightarrow \mathbb{R}$ and $\mathbf{x}, \mathbf{p}, \mathbf{\delta} \in \mathbb{R}^n$, where $\mathbf{\delta}$ is the direction in which the line $\mathbf{x} = \mathbf{p}+\alpha \mathbf{\delta}$ passes through the point $\mathbf{p}$ [*Snyman, Jan A. Practical mathematical optimization. Springer Science+ Business Media, Incorporated, 2005.*]. Here, $\alpha \in [0,1]$. We have, 48 | \begin{equation} 49 | f(\mathbf{x}) = f(\mathbf{p} + \alpha \mathbf{\delta}) (\#eq:6) 50 | \end{equation} 51 | 52 | From the definition of the *directional derivative*, we get, 53 | \begin{equation} 54 | \frac{df(\mathbf{x})}{d\alpha}|\mathbf{\delta} = \nabla^T f(\mathbf{x})\mathbf{\delta}=\hat{f}(\mathbf{x}) (\#eq:7) 55 | \end{equation} 56 | Again, differentiating $\hat{f}(\mathbf{x})$ with respect to $\alpha$. 57 | 58 | \begin{equation} 59 | \frac{d \hat{f}(\mathbf{x})}{d \alpha}|\mathbf{\delta} = \frac{d^2 f(\mathbf{x})}{d \alpha^2}=\nabla^T\hat{f}(\mathbf{x})\mathbf{\delta}=\mathbf{\delta}^T\mathbf{H}f(\mathbf{x})\mathbf{\delta} (\#eq:8) 60 | \end{equation} 61 | 62 | So, using equations \@ref(eq:5) and \@ref(eq:6) we can generate the Taylor expansion for a multivariable function at a point $\mathbf{p}$. So, around $\alpha = 0$, we get, 63 | \begin{equation} 64 | f(\mathbf{x}) = f(\mathbf{p}+\alpha \mathbf{\delta}) = f(\mathbf{p}) + \nabla^Tf(\mathbf{p})\alpha \mathbf{\delta} + \frac{1}{2}\alpha \mathbf{\delta}^T\mathbf{H} f(\mathbf{p})\alpha \mathbf{\delta} + \ldots (\#eq:9) 65 | \end{equation} 66 | 67 | The truncated Taylor expansion of the multivariable function, where the higher order terms are ignored, can be written as, 68 | \begin{equation} 69 | f(\mathbf{x}) = f(\mathbf{p}+\alpha \mathbf{\delta}) = f(\mathbf{p}) + \nabla^Tf(\mathbf{p})\alpha \mathbf{\delta} + \frac{1}{2}\alpha \mathbf{\delta}^T\mathbf{H} f(\mathbf{p}+\beta\mathbf{\delta})\alpha \mathbf{\delta} (\#eq:10) 70 | \end{equation} 71 | where, $\beta \in [0,1]$. 72 | 73 | ## Necessary and Sufficient Conditions for Local Minimizer in Unconstrained Optimization 74 | 75 | ### First-Order Necessary Condition 76 | 77 | If there exists a local minimizer $\mathbf{x}^*$ for a real-valued smooth function $f(\mathbf{x}): \mathbb{R}^n \rightarrow \mathbb{R}$, in an open neighborhood $\subset \mathbb{R}^n$ of $\mathbf{x}^*$ along the direction $\mathbf{\delta}$, then the *first order necessary condition* for the minimizer is given by: 78 | \begin{equation} 79 | \nabla^Tf(\mathbf{x}^*)\mathbf{\delta}=0\ \forall\ \mathbf{\delta} \neq 0 (\#eq:11) 80 | \end{equation} 81 | i.e, the *directional derivative* is $0$, which ultimately reduces to the equation: 82 | \begin{equation} 83 | \nabla f(\mathbf{x}^*)=0 (\#eq:12) 84 | \end{equation} 85 | 86 | ```{proof} 87 | Let a real-valued smooth function $f(\mathbf{x})$ be differentiable at the point $\mathbf{x}^* \in \mathbb{R}^n$. Using the *Taylor expansion*, we can write: 88 | 89 | \begin{equation} 90 | f(\mathbf{x})=f(\mathbf{x}^*) + \nabla^T f(\mathbf{x}^*) (\mathbf{x} - \mathbf{x}^*)+\sum_{|\gamma|\leq m}\frac{\mathfrak{D}^{\gamma}f(\mathbf{x}^*)}{\gamma!}(\mathbf{x}-\mathbf{x}^*)^{\gamma} + \sum_{|\gamma|=m}j_{\gamma}(\mathbf{x})(\mathbf{x} - \mathbf{x}^*)^{\gamma} (\#eq:13) 91 | \end{equation} 92 | 93 | where $\mathfrak{D}$ represents the differential and $m$ is the smoothness of the objective function $f$. Also $\lim_{\mathbf{x} \to \mathbf{x}^*}j_{\gamma(\mathbf{X})}=0$. Clubbing together the higher order terms, we can write Eq.\@ref(eq:13) as, 94 | \begin{equation} 95 | \label{eq:2.14} 96 | f(\mathbf{x})=f(\mathbf{x}^*) + \nabla^T f(\mathbf{x}^*) (\mathbf{x} - \mathbf{x}^*)+ \mathcal{O}(\|\mathbf{x} - \mathbf{x}^*\|) (\#eq:14) 97 | \end{equation} 98 | 99 | In this case, 100 | \begin{equation} 101 | \lim_{\mathbf{x} \to \mathbf{x}^*}\frac{\mathcal{O}(\|\mathbf{x} - \mathbf{x}^*\|)}{\|\mathbf{x} - \mathbf{x}^*\|}=0 (\#eq:15) 102 | \end{equation} 103 | Let us consider, $\mathbf{x} = \mathbf{x}^*-\beta \nabla f(\mathbf{x}^*)$, where $\beta \in [0,1]$. From Eq.\@ref(eq:14) we can write, 104 | \begin{equation} 105 | f(\mathbf{x}^*-\beta \nabla f(\mathbf{x}^*))=f(\mathbf{x}^*)-\beta\|\nabla f(\mathbf{x}^*)\|^2+\mathcal{O}(\beta\|\nabla f(\mathbf{x}^*)\|) (\#eq:16) 106 | \end{equation} 107 | 108 | Now, dividing Eq.\@ref(eq:16)-$f(\mathbf{x}^*)$ by $\beta$, we get, 109 | 110 | \begin{equation} 111 | \frac{f(\mathbf{x}^*-\beta \nabla f(\mathbf{x}^*))-f(\mathbf{x}^*)}{\beta} = -\|\nabla f(\mathbf{x}^*)\|^2 + \frac{\mathcal{O}(\beta \|\nabla f(\mathbf{x}^*)\|)}{\beta} \geq 0 (\#eq:17) 112 | \end{equation} 113 | 114 | Now, considering the limit $\beta \to 0^{+}$, we get, 115 | \begin{equation} 116 | -\|\nabla f(\mathbf{x}^*)\|^2 \leq 0 (\#eq:18) 117 | \end{equation} 118 | 119 | Combining which along with Eq.\@ref(eq:18), we get, 120 | \begin{equation} 121 | 0 \leq -\|\nabla f(\mathbf{x}^*)\|^2 \leq 0(\#eq:19) 122 | \end{equation} 123 | This ultimately gives $\nabla f(\mathbf{x}^*)=0$, proving the first-order necessary condition. 124 | ``` 125 | 126 | ```{example} 127 | The **Rosenbrock function** of $n$-variables is given by: 128 | \begin{equation} 129 | f(\mathbf{x}) = \sum_{i=1}^{n-1}(100(x_{i+1}-x_i^2)^2 + (1-x_i)^2) (\#eq:20) 130 | \end{equation} 131 | 132 | where, $\mathbf{x} \in \mathbb{R}^n$. For this example let us consider the *Rosenbrock function* for two variables, given by: 133 | \begin{equation} 134 | f(\mathbf{x}) = 100(x_2-x_1^2)^2+(1-x_1)^2 (\#eq:21) 135 | \end{equation} 136 | 137 | We will show that the first order necessary condition is satisfied for the local minimizer $\mathbf{x^*}=\begin{bmatrix} 1 \\ 1 \end{bmatrix}$. We first check whether $\mathbf{x}^*$ is a minimizer or not. Putting $x_1=x_2=1$ in $f(\mathbf{x})$, we get $f(\mathbf{x})=0$. Now, we check whether the $\mathbf{x^*}$ satisfies the first order necessary condition. For that we calculate $\nabla f(\mathbf{x}^*)$. 138 | \begin{equation} 139 | \nabla f(\mathbf{x}^*) = \begin{bmatrix} -400x_1(x_2-x_1)^2-2(1-x_1) \\ 200(x_2-x_1^2)\end{bmatrix}_{\mathbf{x}^*} = \begin{bmatrix} 0 \\ 0 \end{bmatrix} (\#eq:22) 140 | \end{equation} 141 | 142 | So, we see that the first order necessary condition is satisfied. We can do similar analysis using the `scipy.optimize` package in Python. The Scipy official reference states that the `scipy.optimize` package provides the user with many commonly used optimization algorithms and test functions. It packages the following functionalities and aspects: 143 | 144 | * Minimization of multivariate scalar objective functions covering both the unconstrained and constrained domains, using a range of optimization algorithms, 145 | * Algorithms for minimization of scalar univariate functions, 146 | * A variety of brute-force optimization algorithms, also called global optimization algorithms, 147 | * Algorithms like minimization of least-squares and curve-fitting, 148 | * Root finding algorithms, and 149 | * Algorithms for solving multivariate equation systems. 150 | 151 | We will build upon the basic concepts of optimization using this package and cover most of the concepts one by one as we advance in the book. Note that, this is not the only package that we are going to use throughout the book. As we advance, we will be required to look into other Python resources according to our needs. But to keep in mind, `scipy.optimize` is the most important package that we will be using. Now, going back to the example, `scipy.optimize` already provides with the \mathbfit{Rosenbrock} test function, its gradient and its Hessian. We will import them first and check whether the given point $\mathbf{x}^*$ is a minimizer or not: 152 | ``` 153 | 154 | ```{python} 155 | import numpy as np 156 | import scipy 157 | # Import the Rosenbrock function, its gradient and Hessian respectively 158 | from scipy.optimize import rosen, rosen_der, rosen_hess 159 | x_m = np.array([1, 1]) #given local minimizer 160 | rosen(x_m) # check whether x_m is a minimizer 161 | ``` 162 | 163 | the result is $0.0$. So $\mathbf{x}^*$ is a minimizer. We then check for the first order necessary condition, using the gradient: 164 | 165 | ```{python} 166 | rosen_der(x_m) # calculates the gradient at the point x_m 167 | ``` 168 | 169 | This matches with our calculations and also satisfies the first-order necessary condition. 170 | 171 | ### Second-Order Necessary Conditions 172 | 173 | If there exists a local minimizer $\mathbf{x}^*$ for a real-valued smooth function $f(\mathbf{x}): \mathbb{R}^n \rightarrow \mathbb{R}$, in an open neighborhood $\subset \mathbb{R}^n$ of $\mathbf{x}^*$ along the feasible direction $\mathbf{\delta}$, and $\mathbf{H} f(\mathbf{x})$ exists and is continuous in the open neighborhood, then the second order necessary conditions for the minimizer are given by: 174 | \begin{equation} 175 | \nabla^T f(\mathbf{x}^*)\mathbf{\delta} = 0, \forall\ \mathbf{\delta} \neq 0 (\#eq:23) 176 | \end{equation} 177 | and 178 | \begin{equation} 179 | \mathbf{\delta}^T\mathbf{H}f(\mathbf{x}^*)\mathbf{\delta} \geq 0, \forall\ \mathbf{\delta} \neq 0 (\#eq:24) 180 | \end{equation} 181 | which reduces to the following: 182 | \begin{equation} 183 | \nabla f(\mathbf{x}^*) = 0 (\#eq:25) 184 | \end{equation} 185 | and 186 | \begin{equation} 187 | \mathbf{\delta}\mathbf{H}f(\mathbf{x}^*) \geq 0 (\#eq:26) 188 | \end{equation} 189 | where equation Eq.\@ref(eq:26) means that the Hessian matrix should be positive semi-definite. 190 | 191 | ```{proof} 192 | From the proof of first order necessary condition, we know that $\nabla f(\mathbf{x}^*) = 0$, which satisfies equation Eq.\@ref(eq:25). Now for proving equation Eq.\@ref(eq:26), we use the Taylor series expansion again. We have, 193 | \begin{equation} 194 | f(\mathbf{x}) = f(\mathbf{x}^*)+\nabla^T f(\mathbf{x}^*)(\mathbf{x} - \mathbf{x}^*) + \frac{1}{2}\mathbf{H} f(\mathbf{x}^*)(\mathbf{x} - \mathbf{x}^*) + \mathcal{O}(\|\mathbf{x} - \mathbf{x}^*\|^2) (\#eq:27) 195 | \end{equation} 196 | 197 | Given, the feasible direction $\mathbf{\delta}$, we take $\beta \in [0,1]$, such that $\mathbf{x} = \mathbf{x}^* + \beta \mathbf{\delta}$. Putting this in Eq.\@ref(eq:27) and rearranging, we get, 198 | \begin{equation} 199 | f(\mathbf{x}^* + \beta \mathbf{\delta}) - f(\mathbf{x}^*) = \beta \nabla^T f(\mathbf{x}^*)\mathbf{\delta} + \frac{\beta^2}{2}\mathbf{\delta}^T \mathbf{H} f(\mathbf{x}^*)\mathbf{\delta} + \mathcal{O}(\beta^2) (\#eq:28) 200 | \end{equation} 201 | 202 | As, $\nabla f(\mathbf{x}^*)=0$, we have 203 | \begin{equation} 204 | f(\mathbf{x}^* + \beta \mathbf{\delta}) - f(\mathbf{x}^*) = \frac{\beta^2}{2}\mathbf{\delta}^T \mathbf{H} f(\mathbf{x}^*)\mathbf{\delta} + \mathcal{O}(\beta^2) (\#eq:29) 205 | \end{equation} 206 | 207 | Now, dividing Eq.\@ref(eq:29) by $\beta^2$, we have, 208 | \begin{equation} 209 | \frac{f(\mathbf{x}^* + \beta \mathbf{\delta}) - f(\mathbf{x}^*)}{\beta^2} = \frac{1}{2}\mathbf{\delta}^T \mathbf{H} f(\mathbf{x}^*)\mathbf{\delta} + \frac{\mathcal{O}(\beta^2)}{\beta^2} \geq 0 (\#eq:30) 210 | \end{equation} 211 | 212 | Taking the limit $\beta \to 0$, we have, 213 | \begin{equation} 214 | \mathbf{\delta}^T \mathbf{H} f(\mathbf{x}^*) \mathbf{\delta} \geq 0 (\#eq:31) 215 | \end{equation} 216 | Which ultimately reduces to, 217 | \begin{equation} 218 | \mathbf{H} f(\mathbf{x}^*) \geq 0 (\#eq:32) 219 | \end{equation} 220 | We see that the Hessian matrix is positive semi-definite. This completes the proof of the second order necessary conditions. [refer to chapter 1, optimality conditions] 221 | ``` 222 | 223 | ### Second-Order Sufficient Conditions 224 | 225 | For a real-valued smooth objective function $f(\mathbf{x})$, if $\mathbf{x}^*$ is its local minimizer and $\mathbf{H} f(\mathbf{x})$ exists and is continuous in an open neighborhood $\subset \mathbb{R}^n$ of $\mathbf{x}^*$ along the feasible direction $\mathbf{\delta}$, then the conditions: 226 | \begin{equation} 227 | \nabla^T f(\mathbf{x}^*)\delta = 0 (\#eq:33) 228 | \end{equation} 229 | i.e, 230 | \begin{equation} 231 | \nabla f(\mathbf{x}^*) = 0 (\#eq:34) 232 | \end{equation} 233 | and 234 | 235 | \begin{equation} 236 | \mathbf{\delta}^T \mathbf{H} f(\mathbf{x}^*) \mathbf{\delta} > 0 (\#eq:35) 237 | \end{equation} 238 | 239 | i.e, a positive definite Hessian matrix imply that $\mathbf{x}^*$ is a strong local minimizer of $f(\mathbf{x})$. 240 | 241 | ```{proof} 242 | Let $\mathfrak{r} >0$ be a radius such that the Hessian of the objective function, $\mathbf{H} f(\mathbf{x})$ is positive definite $\forall\ \mathbf{x}$ in the open ball defined by $\mathfrak{B} = \{\mathbf{y} \mid \|\mathbf{y} - \mathbf{x}^*\| \leq \mathfrak{r}\}$. This comes from the fact that $\mathbf{H} f(\mathbf{x})$ is positive definite at the local minimizer $\mathbf{x}^*$. Now, considering a nonzero vector $\mathbf{\eta}$, such that $\|\mathbf{\eta}\| < \mathfrak{r}$ and $c \in [0,1]$, we will have, $\mathbf{x}=\mathbf{x}^*+c\mathbf{\eta} \in \mathfrak{B}$. Now, using the Taylor's expansion, i.e, Eq.\@ref(eq:27), we will have, 243 | 244 | \begin{equation} 245 | f(\mathbf{x}^* + \mathbf{\eta}) = f(\mathbf{x}^*) + c\nabla^Tf(\mathbf{x}^*)\mathbf{\eta} + \frac{c^2}{2}\mathbf{\eta}^T\mathbf{H} f(\mathbf{y})\mathbf{\eta} + \mathcal{O}(c^2) (\#eq:36) 246 | \end{equation} 247 | 248 | Since, $\nabla f(\mathbf{x}^*) = 0$, we have, 249 | \begin{equation} 250 | \frac{f(\mathbf{x}^* + \mathbf{\eta}) - f(\mathbf{x}^*)}{c^2} = \frac{1}{2}\mathbf{\eta}^T\mathbf{H}f(\mathbf{y})\mathbf{\eta}+\frac{\mathcal{O}(c^2)}{c^2} (\#eq:37) 251 | \end{equation} 252 | 253 | Here, $\mathbf{y} = \mathbf{x}^* + \beta \mathbf{\eta}$ with $\beta \in [0,1]$. As, $\mathbf{y} \in \mathfrak{B}$, we have, 254 | \begin{equation} 255 | \mathbf{\eta}^T\mathbf{H}f(\mathbf{y})\mathbf{\eta} > 0 (\#eq:38) 256 | \end{equation} 257 | 258 | So, taking the limit, $c \to 0$, we have, 259 | \begin{equation} 260 | f(\mathbf{x}^* + \mathbf{\eta}) - f(\mathbf{x}^*) > 0 (\#eq:39) 261 | \end{equation} 262 | 263 | this proves our claim that, 264 | \begin{equation} 265 | f(\mathbf{x}^* + \mathbf{\eta}) > f(\mathbf{x}^*) (\#eq:40) 266 | \end{equation} 267 | that is, $\mathbf{x}^*$ is a strict local minimizer of the objective function $f(\mathbf{x})$. 268 | ``` 269 | 270 | ```{example} 271 | Let us now work with a new test function called Himmelblau's function, given by, 272 | \begin{equation} 273 | f(\mathbf{x}) = (x_1^2+x_2-11)^2+(x_1+x_2^2-7)^2 (\#eq:41) 274 | \end{equation} 275 | 276 | where, $\mathbf{x} \in \mathbb{R}^2$. We will check whether $\mathbf{x}^*=\begin{bmatrix} 3 \\ 2 \end{bmatrix}$ satisfies the second-order sufficient conditions satisfying the fact that it is a strong local minimizer. We will again use the `autograd` package to do the analyses for this objective function. Let us first define the function and the local minimizer as `x_star` in Python: 277 | ``` 278 | 279 | ```{python} 280 | def Himm(x): 281 | return (x[0]**2 + x[1] - 11)**2 + (x[0] + x[1]**2 - 7)**2 282 | 283 | x_star = np.array([3, 2], dtype='float') #local minimizer 284 | ``` 285 | 286 | We then check whether `x_star` is a minimizer. 287 | 288 | ```{python} 289 | print("function at x_star:", Himm(x_star)) 290 | ``` 291 | 292 | Now, we calculate the gradient vector and the Hessian matrix of the function at `x_star` and look at the results, 293 | 294 | ```{python} 295 | # import the necessary packages 296 | import autograd.numpy as au 297 | from autograd import grad, jacobian 298 | 299 | # gradient vector of the Himmelblau's function 300 | Himm_grad=grad(Himm) 301 | print("gradient vector at x_star:", Himm_grad(x_star)) 302 | 303 | # Hessian matrix of the Himmelblau's function 304 | Himm_hess = jacobian(Himm_grad) 305 | M = Himm_hess(x_star) 306 | eigs = np.linalg.eigvals(M) 307 | print("The eigenvalues of M:", eigs) 308 | 309 | if (np.all(eigs>0)): 310 | print("M is positive definite") 311 | elif (np.all(eigs>=0)): 312 | print("M is positive semi-definite") 313 | else: 314 | print("M is negative definite") 315 | ``` 316 | 317 | We see that `x1` satisfies the second order sufficient conditions and is a strong local minimizer. We wanted to perform the analyses using `autograd` package instead of `scipy.optimize`, because there might be cases when we need to use test functions that are not predefined in `scipy.optimize` package, unlike the `Rosenbrock function`. 318 | 319 | ## Algorithms for Solving Unconstrained Minimization Tasks 320 | 321 | An optimization algorithm for solving an unconstrained minimization problem requires an initial point $\mathbf{x}_0$ to start with. The choice of $\mathbf{x}_0$ depends either on the applicant who has some idea about the data and the task at hand or it can be set by the algorithm in charge. Starting with $\mathbf{x}_0$, the optimization algorithm iterates through a sequence of successive points $\{\mathbf{x}_0, \mathbf{x}_1, \ldots, \mathbf{x}_{\infty}\}$, which stops at the point where all the termination conditions are met for approximating the minimizer $\mathbf{x}^*$. The algorithm generates this sequence taking into consideration the objective function $f(\mathbf{x})$ at a particular point $f(\mathbf{x}_n)$. A new iterate $\mathbf{x}_{n+1}$ is added in the sequence if the condition $f(\mathbf{x}_{n+1}) < f(\mathbf{x}_n)$. Although in many special cases, the algorithm might fail to find a new point in each and every step following the above condition, it must satisfy that after some stipulated number $k$ of steps, the following condition is met: $$f(\mathbf{x}_{n+k}) < f(\mathbf{x}_n)$$. One of the important terminating conditions, for example, is to check whether the first order necessary condition is sufficiently accurate, for a smooth objective function, i.e, $\|\nabla f(\mathbf{x}_{\infty})\| < \epsilon$, where $\epsilon$ is the infinitesimal tolerance value. We will discuss these conditions further in the subsequent chapters. 322 | 323 | Fundamentally, there are two approaches available to generate $f(\mathbf{x}_{n+1})$ from $f(\mathbf{x}_n)$: 324 | 325 | * **Line Search Descent Method**: Using this method, the optimization algorithm first picks a direction $\mathbf{\delta}_n$ for the $n^{th}$ step and performs a search along this direction from the previous generated iterate $\mathbf{x}_{n-1}$ to find a new iterate $\mathbf{x}_n$ such that the condition $f(\mathbf{x}_n) < f(\mathbf{x}_{n-1})$ is satisfied. A direction $\mathbf{\delta}_n$ is selected for the next iterate if the following condition is satisfied: 326 | 327 | \begin{equation} 328 | \nabla^T f(\mathbf{x}_{n-1})\mathbf{\delta}_n < 0 (\#eq:42) 329 | \end{equation} 330 | 331 | i.e, if the directional derivative in the direction $\mathbf{\delta}_n$ is negative. Here $f$ is the objective function. In view of that, the algorithm then needs to ascertain a distance by which it has to move along the direction $\mathbf{\delta}_n$ to figure out $\mathbf{x}_n$. The distance $\beta >0$, which is called the *step length*, can be figured out by solving the one-dimensional minimization problem formulated as: 332 | 333 | \begin{equation} 334 | \underset{\beta > 0}{\min} \tilde{f}(\beta) = \underset{\beta > 0}{\min} f(\mathbf{x}_{n-1} + \beta \mathbf{\delta}_n) (\#eq:43) 335 | 336 | \end{equation} 337 | 338 | ![Line Search Descent Method](img 2.png) 339 | 340 | * **Trust Region Method**: Using this method, the optimization algorithm develops a model function [refer to Nocedal & Wright], $M_n$, such that its behavior inside a boundary set around the current iterate $\mathbf{x}_n$ matches that of the objective function $f(\mathbf{x}_n)$ at that point. The model function is not expected to give a reasonable approximation to the behavior of the objective function at a point $\mathbf{x}_t$ which is far away from $\mathbf{x}_n$, i.e, not lying inside the boundary defined around $\mathbf{x}_n$. As a result, the algorithm obstructs the search for the minimizer of $M_n$ inside the boundary region, which is actually called the *trust region*, denoted by $\mathcal{T}$, before finding the step $\mathbf{\zeta}$, by solving the minimization problem formulated by: 341 | 342 | \begin{equation} 343 | \underset{\mathbf{\zeta}}{\min\ } M_n(\mathbf{x}_n+\mathbf{\zeta}),\text{ where }\mathbf{x}_n+\mathbf{\zeta}\in \mathcal{T} (\#eq:44) 344 | \end{equation} 345 | Using this $\mathbf{\zeta}$, if the decrease in the value of $f(\mathbf{x}_{n+1})$ from $f(\mathbf{x}_n)$ is not sufficient, it can be inferred that the selected trust region is unnecessarily large. The algorithm then reduces the size of $\mathcal{T}$ accordingly and re-solves the problem given by equation Eq.\@ref(eq:44). Most often, the trust region $\mathcal{T}$ is defined by a circle in case of a two dimensional problem or a sphere in case of a three dimensional problem of radius $\mathcal{T_r}>0$, which follows the condition $\|\mathbf{\zeta}\| \leq \mathcal{T_r}$. In special cases, the shape of the trust region might vary. The form of the model function is given by a quadratic function, given by, 346 | \begin{equation} 347 | M_n(\mathbf{x}_n+\mathbf{\zeta}) = f(\mathbf{x}_n) + \mathbf{\zeta}^T\nabla f(\mathbf{x}_n)+\frac{1}{2}\mathbf{\zeta}^T\mathbf{B} f(\mathbf{x}_n)\mathbf{\zeta} (\#eq:45) 348 | \end{equation} 349 | Where, $\mathbf{B}f(\mathbf{x}_n)$ is either the Hessian matrix $\mathbf{H}f(\mathbf{x}_n)$ or an approximation to it. 350 | 351 | Before moving into detailed discussions on line search descent methods and trust region methods in the later chapters, we will first deal with solving equation Eq.\@ref(eq:43) in the immediate next chapter, which is itself an unconstrained one dimensional minimization problem, where we have to solve for $$\underset{\beta>0}{\min\ }\tilde{f}(\beta)$$ and deduce the value of $\beta^*$, which is the minimizer for $\tilde{f}(\beta)$. -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | Email. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is the github repository for the online open source book **Introduction to Mathematical Optimization: with Python**. The link to the book: https://indrag49.github.io/Numerical-Optimization/ 2 | 3 | *This repo was initially generated from a bookdown template available here: https://github.com/jtr13/bookdown-template.* 4 | 5 | # Book Description 6 | 7 | This is an open-source introductory book on numerical/mathematical optimization aimed at audience who want to start with the subject matter with hands on implementation of the methods with *Python*. I plan to make this an open source collaborative project which will grow with time with legitimate contributions from the comnmunity. 8 | 9 | 10 | This book aims to cover the following: 11 | 12 | - Introduction to Numerical Optimization 13 | - Introduction to Unconstrained Optimization 14 | - Solving one dimensional optimization problems 15 | - Line Search Descent Method 16 | - Conjugate Gradient Methods 17 | - Quasi-Newton Methods 18 | 19 | # Licence 20 | 21 | Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /_bookdown.yml: -------------------------------------------------------------------------------- 1 | book_filename: "bookdownproj" 2 | output_dir: docs 3 | delete_merged_file: true 4 | edit: https://github.com/indrag49/Numerical-Optimization/edit/master/%s 5 | view: https://github.com/indrag49/Numerical-Optimization/blob/master/%s 6 | language: 7 | ui: 8 | chapter_name: "Chapter " 9 | -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-1-1.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-1-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-1-3.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-10-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-10-1.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-10-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-10-2.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-10-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-10-3.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-10-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-10-5.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-1.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-11.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-13.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-15.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-17.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-19.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-21.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-23.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-25.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-27.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-29.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-3.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-31.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-33.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-35.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-5.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-7.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-2-9.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-11.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-13.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-15.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-17.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-19.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-21.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-23.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-25.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-27.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-29.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-3.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-31.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-33.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-35.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-37.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-39.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-41.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-43.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-45.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-47.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-48.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-49.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-5.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-51.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-53.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-55.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-57.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-59.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-61.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-63.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-65.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-7.png -------------------------------------------------------------------------------- /_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/_bookdown_files/bookdownproj_files/figure-html/unnamed-chunk-6-9.png -------------------------------------------------------------------------------- /_output.yml: -------------------------------------------------------------------------------- 1 | bookdown::gitbook: 2 | css: style.css 3 | config: 4 | toc: 5 | before: | 6 |
  • Mathematical Optimization
  • 7 | after: | 8 |
  • Published with bookdown
  • 9 | -------------------------------------------------------------------------------- /book-description.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Chapter 1 Book Description | README.utf8 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 |
    66 | 67 |
    68 | 81 |
    82 | 83 |
    84 |
    85 | 90 | 91 |
    92 |
    93 | 94 |
    95 | 96 | 97 |
    98 |

    Chapter 1 Book Description

    99 |

    This is an open-source introductory book on numerical/mathematical optimization aimed at audience who want to start with the subject matter with hands on implementation of the methods with Python. I plan to make this an open source collaborative project which will grow with time with legitimate contributions from the comnmunity.

    100 |

    This book aims to cover the following:

    101 |
      102 |
    • Introduction to Numerical Optimization
    • 103 |
    • Introduction to Unconstrained Optimization
    • 104 |
    • Solving one dimensional optimization problems
    • 105 |
    • Line Search Descent Method
    • 106 |
    • Conjugate Gradient Methods
    • 107 |
    • Quasi-Newton Methods
    • 108 |
    109 |
    110 |
    111 | 112 |
    113 |
    114 |
    115 | 116 | 117 |
    118 |
    119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 167 | 168 | 169 | 170 | 171 | -------------------------------------------------------------------------------- /docs/a-caucus-race-and-a-long-tale.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Chapter 3 A caucus-race and a long tale | Introduction to Mathematical Optimization 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 |
    68 | 69 |
    70 | 84 |
    85 | 86 |
    87 |
    88 | 93 | 94 |
    95 |
    96 | 97 |
    98 |
    99 |

    Chapter 3 A caucus-race and a long tale

    100 | 101 |
    102 |
    103 | 104 |
    105 |
    106 |
    107 | 108 | 109 |
    110 |
    111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 158 | 159 | 160 | 161 | 162 | -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-1-1.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-1-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-1-3.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-10-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-10-1.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-10-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-10-2.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-10-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-10-3.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-10-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-10-5.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-1.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-11.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-13.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-15.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-17.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-19.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-21.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-23.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-25.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-27.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-29.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-3.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-31.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-33.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-35.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-5.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-7.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-2-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-2-9.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-11.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-13.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-15.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-17.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-19.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-21.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-23.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-25.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-27.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-29.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-3.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-31.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-33.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-35.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-37.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-39.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-41.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-43.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-45.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-47.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-49.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-5.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-51.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-53.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-55.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-57.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-59.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-61.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-63.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-65.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-7.png -------------------------------------------------------------------------------- /docs/bookdownproj_files/figure-html/unnamed-chunk-6-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/bookdownproj_files/figure-html/unnamed-chunk-6-9.png -------------------------------------------------------------------------------- /docs/img 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 1.png -------------------------------------------------------------------------------- /docs/img 10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 10.png -------------------------------------------------------------------------------- /docs/img 11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 11.png -------------------------------------------------------------------------------- /docs/img 12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 12.png -------------------------------------------------------------------------------- /docs/img 13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 13.png -------------------------------------------------------------------------------- /docs/img 14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 14.png -------------------------------------------------------------------------------- /docs/img 15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 15.png -------------------------------------------------------------------------------- /docs/img 16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 16.png -------------------------------------------------------------------------------- /docs/img 17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 17.png -------------------------------------------------------------------------------- /docs/img 18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 18.png -------------------------------------------------------------------------------- /docs/img 19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 19.png -------------------------------------------------------------------------------- /docs/img 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 2.png -------------------------------------------------------------------------------- /docs/img 20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 20.png -------------------------------------------------------------------------------- /docs/img 21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 21.png -------------------------------------------------------------------------------- /docs/img 22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 22.png -------------------------------------------------------------------------------- /docs/img 23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 23.png -------------------------------------------------------------------------------- /docs/img 24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 24.png -------------------------------------------------------------------------------- /docs/img 25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 25.png -------------------------------------------------------------------------------- /docs/img 26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 26.png -------------------------------------------------------------------------------- /docs/img 27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 27.png -------------------------------------------------------------------------------- /docs/img 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 3.png -------------------------------------------------------------------------------- /docs/img 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 4.png -------------------------------------------------------------------------------- /docs/img 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 5.png -------------------------------------------------------------------------------- /docs/img 6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 6.png -------------------------------------------------------------------------------- /docs/img 7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 7.png -------------------------------------------------------------------------------- /docs/img 8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 8.png -------------------------------------------------------------------------------- /docs/img 9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/img 9.png -------------------------------------------------------------------------------- /docs/libs/accessible-code-block-0.0.1/empty-anchor.js: -------------------------------------------------------------------------------- 1 | // Hide empty tag within highlighted CodeBlock for screen reader accessibility (see https://github.com/jgm/pandoc/issues/6352#issuecomment-626106786) --> 2 | // v0.0.1 3 | // Written by JooYoung Seo (jooyoung@psu.edu) and Atsushi Yasumoto on June 1st, 2020. 4 | 5 | document.addEventListener('DOMContentLoaded', function() { 6 | const codeList = document.getElementsByClassName("sourceCode"); 7 | for (var i = 0; i < codeList.length; i++) { 8 | var linkList = codeList[i].getElementsByTagName('a'); 9 | for (var j = 0; j < linkList.length; j++) { 10 | if (linkList[j].innerHTML === "") { 11 | linkList[j].setAttribute('aria-hidden', 'true'); 12 | } 13 | } 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /docs/libs/anchor-sections-1.0.1/anchor-sections.css: -------------------------------------------------------------------------------- 1 | /* Styles for section anchors */ 2 | a.anchor-section {margin-left: 10px; visibility: hidden; color: inherit;} 3 | a.anchor-section::before {content: '#';} 4 | .hasAnchor:hover a.anchor-section {visibility: visible;} 5 | ul > li > .anchor-section {display: none;} 6 | -------------------------------------------------------------------------------- /docs/libs/anchor-sections-1.0.1/anchor-sections.js: -------------------------------------------------------------------------------- 1 | // Anchor sections v1.0 written by Atsushi Yasumoto on Oct 3rd, 2020. 2 | document.addEventListener('DOMContentLoaded', function() { 3 | // Do nothing if AnchorJS is used 4 | if (typeof window.anchors === 'object' && anchors.hasOwnProperty('hasAnchorJSLink')) { 5 | return; 6 | } 7 | 8 | const h = document.querySelectorAll('h1, h2, h3, h4, h5, h6'); 9 | 10 | // Do nothing if sections are already anchored 11 | if (Array.from(h).some(x => x.classList.contains('hasAnchor'))) { 12 | return null; 13 | } 14 | 15 | // Use section id when pandoc runs with --section-divs 16 | const section_id = function(x) { 17 | return ((x.classList.contains('section') || (x.tagName === 'SECTION')) 18 | ? x.id : ''); 19 | }; 20 | 21 | // Add anchors 22 | h.forEach(function(x) { 23 | const id = x.id || section_id(x.parentElement); 24 | if (id === '' || x.matches(':empty')) { 25 | return null; 26 | } 27 | let anchor = document.createElement('a'); 28 | anchor.href = '#' + id; 29 | anchor.classList = ['anchor-section']; 30 | x.classList.add('hasAnchor'); 31 | x.appendChild(anchor); 32 | }); 33 | }); 34 | -------------------------------------------------------------------------------- /docs/libs/gitbook-2.6.7/css/fontawesome/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/docs/libs/gitbook-2.6.7/css/fontawesome/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/libs/gitbook-2.6.7/css/plugin-bookdown.css: -------------------------------------------------------------------------------- 1 | .book .book-header h1 { 2 | padding-left: 20px; 3 | padding-right: 20px; 4 | } 5 | .book .book-header.fixed { 6 | position: fixed; 7 | right: 0; 8 | top: 0; 9 | left: 0; 10 | border-bottom: 1px solid rgba(0,0,0,.07); 11 | } 12 | span.search-highlight { 13 | background-color: #ffff88; 14 | } 15 | @media (min-width: 600px) { 16 | .book.with-summary .book-header.fixed { 17 | left: 300px; 18 | } 19 | } 20 | @media (max-width: 1240px) { 21 | .book .book-body.fixed { 22 | top: 50px; 23 | } 24 | .book .book-body.fixed .body-inner { 25 | top: auto; 26 | } 27 | } 28 | @media (max-width: 600px) { 29 | .book.with-summary .book-header.fixed { 30 | left: calc(100% - 60px); 31 | min-width: 300px; 32 | } 33 | .book.with-summary .book-body { 34 | transform: none; 35 | left: calc(100% - 60px); 36 | min-width: 300px; 37 | } 38 | .book .book-body.fixed { 39 | top: 0; 40 | } 41 | } 42 | 43 | .book .book-body.fixed .body-inner { 44 | top: 50px; 45 | } 46 | .book .book-body .page-wrapper .page-inner section.normal sub, .book .book-body .page-wrapper .page-inner section.normal sup { 47 | font-size: 85%; 48 | } 49 | 50 | @media print { 51 | .book .book-summary, .book .book-body .book-header, .fa { 52 | display: none !important; 53 | } 54 | .book .book-body.fixed { 55 | left: 0px; 56 | } 57 | .book .book-body,.book .book-body .body-inner, .book.with-summary { 58 | overflow: visible !important; 59 | } 60 | } 61 | .kable_wrapper { 62 | border-spacing: 20px 0; 63 | border-collapse: separate; 64 | border: none; 65 | margin: auto; 66 | } 67 | .kable_wrapper > tbody > tr > td { 68 | vertical-align: top; 69 | } 70 | .book .book-body .page-wrapper .page-inner section.normal table tr.header { 71 | border-top-width: 2px; 72 | } 73 | .book .book-body .page-wrapper .page-inner section.normal table tr:last-child td { 74 | border-bottom-width: 2px; 75 | } 76 | .book .book-body .page-wrapper .page-inner section.normal table td, .book .book-body .page-wrapper .page-inner section.normal table th { 77 | border-left: none; 78 | border-right: none; 79 | } 80 | .book .book-body .page-wrapper .page-inner section.normal table.kable_wrapper > tbody > tr, .book .book-body .page-wrapper .page-inner section.normal table.kable_wrapper > tbody > tr > td { 81 | border-top: none; 82 | } 83 | .book .book-body .page-wrapper .page-inner section.normal table.kable_wrapper > tbody > tr:last-child > td { 84 | border-bottom: none; 85 | } 86 | 87 | div.theorem, div.lemma, div.corollary, div.proposition, div.conjecture { 88 | font-style: italic; 89 | } 90 | span.theorem, span.lemma, span.corollary, span.proposition, span.conjecture { 91 | font-style: normal; 92 | } 93 | div.proof>*:last-child:after { 94 | content: "\25a2"; 95 | float: right; 96 | } 97 | .header-section-number { 98 | padding-right: .5em; 99 | } 100 | -------------------------------------------------------------------------------- /docs/libs/gitbook-2.6.7/css/plugin-clipboard.css: -------------------------------------------------------------------------------- 1 | div.sourceCode { 2 | position: relative; 3 | } 4 | 5 | .copy-to-clipboard-button { 6 | position: absolute; 7 | right: 0; 8 | top: 0; 9 | visibility: hidden; 10 | } 11 | 12 | .copy-to-clipboard-button:focus { 13 | outline: 0; 14 | } 15 | 16 | div.sourceCode:hover > .copy-to-clipboard-button { 17 | visibility: visible; 18 | } 19 | -------------------------------------------------------------------------------- /docs/libs/gitbook-2.6.7/css/plugin-fontsettings.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Theme 1 3 | */ 4 | .color-theme-1 .dropdown-menu { 5 | background-color: #111111; 6 | border-color: #7e888b; 7 | } 8 | .color-theme-1 .dropdown-menu .dropdown-caret .caret-inner { 9 | border-bottom: 9px solid #111111; 10 | } 11 | .color-theme-1 .dropdown-menu .buttons { 12 | border-color: #7e888b; 13 | } 14 | .color-theme-1 .dropdown-menu .button { 15 | color: #afa790; 16 | } 17 | .color-theme-1 .dropdown-menu .button:hover { 18 | color: #73553c; 19 | } 20 | /* 21 | * Theme 2 22 | */ 23 | .color-theme-2 .dropdown-menu { 24 | background-color: #2d3143; 25 | border-color: #272a3a; 26 | } 27 | .color-theme-2 .dropdown-menu .dropdown-caret .caret-inner { 28 | border-bottom: 9px solid #2d3143; 29 | } 30 | .color-theme-2 .dropdown-menu .buttons { 31 | border-color: #272a3a; 32 | } 33 | .color-theme-2 .dropdown-menu .button { 34 | color: #62677f; 35 | } 36 | .color-theme-2 .dropdown-menu .button:hover { 37 | color: #f4f4f5; 38 | } 39 | .book .book-header .font-settings .font-enlarge { 40 | line-height: 30px; 41 | font-size: 1.4em; 42 | } 43 | .book .book-header .font-settings .font-reduce { 44 | line-height: 30px; 45 | font-size: 1em; 46 | } 47 | 48 | /* sidebar transition background */ 49 | div.book.color-theme-1 { 50 | background: #f3eacb; 51 | } 52 | .book.color-theme-1 .book-body { 53 | color: #704214; 54 | background: #f3eacb; 55 | } 56 | .book.color-theme-1 .book-body .page-wrapper .page-inner section { 57 | background: #f3eacb; 58 | } 59 | 60 | /* sidebar transition background */ 61 | div.book.color-theme-2 { 62 | background: #1c1f2b; 63 | } 64 | 65 | .book.color-theme-2 .book-body { 66 | color: #bdcadb; 67 | background: #1c1f2b; 68 | } 69 | .book.color-theme-2 .book-body .page-wrapper .page-inner section { 70 | background: #1c1f2b; 71 | } 72 | .book.font-size-0 .book-body .page-inner section { 73 | font-size: 1.2rem; 74 | } 75 | .book.font-size-1 .book-body .page-inner section { 76 | font-size: 1.4rem; 77 | } 78 | .book.font-size-2 .book-body .page-inner section { 79 | font-size: 1.6rem; 80 | } 81 | .book.font-size-3 .book-body .page-inner section { 82 | font-size: 2.2rem; 83 | } 84 | .book.font-size-4 .book-body .page-inner section { 85 | font-size: 4rem; 86 | } 87 | .book.font-family-0 { 88 | font-family: Georgia, serif; 89 | } 90 | .book.font-family-1 { 91 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 92 | } 93 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal { 94 | color: #704214; 95 | } 96 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal a { 97 | color: inherit; 98 | } 99 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, 100 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2, 101 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h3, 102 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h4, 103 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h5, 104 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { 105 | color: inherit; 106 | } 107 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, 108 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2 { 109 | border-color: inherit; 110 | } 111 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { 112 | color: inherit; 113 | } 114 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal hr { 115 | background-color: inherit; 116 | } 117 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal blockquote { 118 | border-color: #c4b29f; 119 | opacity: 0.9; 120 | } 121 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre, 122 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code { 123 | background: #fdf6e3; 124 | color: #657b83; 125 | border-color: #f8df9c; 126 | } 127 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal .highlight { 128 | background-color: inherit; 129 | } 130 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table th, 131 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table td { 132 | border-color: #f5d06c; 133 | } 134 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr { 135 | color: inherit; 136 | background-color: #fdf6e3; 137 | border-color: #444444; 138 | } 139 | .book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { 140 | background-color: #fbeecb; 141 | } 142 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal { 143 | color: #bdcadb; 144 | } 145 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal a { 146 | color: #3eb1d0; 147 | } 148 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, 149 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2, 150 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h3, 151 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h4, 152 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h5, 153 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { 154 | color: #fffffa; 155 | } 156 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, 157 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2 { 158 | border-color: #373b4e; 159 | } 160 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { 161 | color: #373b4e; 162 | } 163 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal hr { 164 | background-color: #373b4e; 165 | } 166 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal blockquote { 167 | border-color: #373b4e; 168 | } 169 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre, 170 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code { 171 | color: #9dbed8; 172 | background: #2d3143; 173 | border-color: #2d3143; 174 | } 175 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal .highlight { 176 | background-color: #282a39; 177 | } 178 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table th, 179 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table td { 180 | border-color: #3b3f54; 181 | } 182 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr { 183 | color: #b6c2d2; 184 | background-color: #2d3143; 185 | border-color: #3b3f54; 186 | } 187 | .book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { 188 | background-color: #35394b; 189 | } 190 | .book.color-theme-1 .book-header { 191 | color: #afa790; 192 | background: transparent; 193 | } 194 | .book.color-theme-1 .book-header .btn { 195 | color: #afa790; 196 | } 197 | .book.color-theme-1 .book-header .btn:hover { 198 | color: #73553c; 199 | background: none; 200 | } 201 | .book.color-theme-1 .book-header h1 { 202 | color: #704214; 203 | } 204 | .book.color-theme-2 .book-header { 205 | color: #7e888b; 206 | background: transparent; 207 | } 208 | .book.color-theme-2 .book-header .btn { 209 | color: #3b3f54; 210 | } 211 | .book.color-theme-2 .book-header .btn:hover { 212 | color: #fffff5; 213 | background: none; 214 | } 215 | .book.color-theme-2 .book-header h1 { 216 | color: #bdcadb; 217 | } 218 | .book.color-theme-1 .book-body .navigation { 219 | color: #afa790; 220 | } 221 | .book.color-theme-1 .book-body .navigation:hover { 222 | color: #73553c; 223 | } 224 | .book.color-theme-2 .book-body .navigation { 225 | color: #383f52; 226 | } 227 | .book.color-theme-2 .book-body .navigation:hover { 228 | color: #fffff5; 229 | } 230 | /* 231 | * Theme 1 232 | */ 233 | .book.color-theme-1 .book-summary { 234 | color: #afa790; 235 | background: #111111; 236 | border-right: 1px solid rgba(0, 0, 0, 0.07); 237 | } 238 | .book.color-theme-1 .book-summary .book-search { 239 | background: transparent; 240 | } 241 | .book.color-theme-1 .book-summary .book-search input, 242 | .book.color-theme-1 .book-summary .book-search input:focus { 243 | border: 1px solid transparent; 244 | } 245 | .book.color-theme-1 .book-summary ul.summary li.divider { 246 | background: #7e888b; 247 | box-shadow: none; 248 | } 249 | .book.color-theme-1 .book-summary ul.summary li i.fa-check { 250 | color: #33cc33; 251 | } 252 | .book.color-theme-1 .book-summary ul.summary li.done > a { 253 | color: #877f6a; 254 | } 255 | .book.color-theme-1 .book-summary ul.summary li a, 256 | .book.color-theme-1 .book-summary ul.summary li span { 257 | color: #877f6a; 258 | background: transparent; 259 | font-weight: normal; 260 | } 261 | .book.color-theme-1 .book-summary ul.summary li.active > a, 262 | .book.color-theme-1 .book-summary ul.summary li a:hover { 263 | color: #704214; 264 | background: transparent; 265 | font-weight: normal; 266 | } 267 | /* 268 | * Theme 2 269 | */ 270 | .book.color-theme-2 .book-summary { 271 | color: #bcc1d2; 272 | background: #2d3143; 273 | border-right: none; 274 | } 275 | .book.color-theme-2 .book-summary .book-search { 276 | background: transparent; 277 | } 278 | .book.color-theme-2 .book-summary .book-search input, 279 | .book.color-theme-2 .book-summary .book-search input:focus { 280 | border: 1px solid transparent; 281 | } 282 | .book.color-theme-2 .book-summary ul.summary li.divider { 283 | background: #272a3a; 284 | box-shadow: none; 285 | } 286 | .book.color-theme-2 .book-summary ul.summary li i.fa-check { 287 | color: #33cc33; 288 | } 289 | .book.color-theme-2 .book-summary ul.summary li.done > a { 290 | color: #62687f; 291 | } 292 | .book.color-theme-2 .book-summary ul.summary li a, 293 | .book.color-theme-2 .book-summary ul.summary li span { 294 | color: #c1c6d7; 295 | background: transparent; 296 | font-weight: 600; 297 | } 298 | .book.color-theme-2 .book-summary ul.summary li.active > a, 299 | .book.color-theme-2 .book-summary ul.summary li a:hover { 300 | color: #f4f4f5; 301 | background: #252737; 302 | font-weight: 600; 303 | } 304 | -------------------------------------------------------------------------------- /docs/libs/gitbook-2.6.7/css/plugin-search.css: -------------------------------------------------------------------------------- 1 | .book .book-summary .book-search { 2 | padding: 6px; 3 | background: transparent; 4 | position: absolute; 5 | top: -50px; 6 | left: 0px; 7 | right: 0px; 8 | transition: top 0.5s ease; 9 | } 10 | .book .book-summary .book-search input, 11 | .book .book-summary .book-search input:focus, 12 | .book .book-summary .book-search input:hover { 13 | width: 100%; 14 | background: transparent; 15 | border: 1px solid #ccc; 16 | box-shadow: none; 17 | outline: none; 18 | line-height: 22px; 19 | padding: 7px 4px; 20 | color: inherit; 21 | box-sizing: border-box; 22 | } 23 | .book.with-search .book-summary .book-search { 24 | top: 0px; 25 | } 26 | .book.with-search .book-summary ul.summary { 27 | top: 50px; 28 | } 29 | .with-search .summary li[data-level] a[href*=".html#"] { 30 | display: none; 31 | } 32 | -------------------------------------------------------------------------------- /docs/libs/gitbook-2.6.7/css/plugin-table.css: -------------------------------------------------------------------------------- 1 | .book .book-body .page-wrapper .page-inner section.normal table{display:table;width:100%;border-collapse:collapse;border-spacing:0;overflow:auto}.book .book-body .page-wrapper .page-inner section.normal table td,.book .book-body .page-wrapper .page-inner section.normal table th{padding:6px 13px;border:1px solid #ddd}.book .book-body .page-wrapper .page-inner section.normal table tr{background-color:#fff;border-top:1px solid #ccc}.book .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n){background-color:#f8f8f8}.book .book-body .page-wrapper .page-inner section.normal table th{font-weight:700} 2 | -------------------------------------------------------------------------------- /docs/libs/gitbook-2.6.7/js/clipboard.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * clipboard.js v2.0.4 3 | * https://zenorocha.github.io/clipboard.js 4 | * 5 | * Licensed MIT © Zeno Rocha 6 | */ 7 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;no;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(r===t)return o;t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o]}return r===t?o:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];i>1;)t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return r>t?o:t>r?o+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,l=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),l=1,u=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);l=1/Math.log(c)}return r>-1&&i.insert(r,a*s*l),Object.keys(h.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new t.SortedSet);o.push(l)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,u=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,y=/^(.+?)(ed|ing)$/,g=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,N=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,r,s,a,h,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=y,s.test(n)){var T=s.exec(n);s=u,s.test(T[1])&&(s=g,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,l=x,a.test(n)?n+="e":h.test(n)?(s=g,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=k,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+e[o])}if(s=_,a=F,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=O,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=N,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=g,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==e?e:void 0},t.stopWordFilter.stopWords={a:"a",able:"able",about:"about",across:"across",after:"after",all:"all",almost:"almost",also:"also",am:"am",among:"among",an:"an",and:"and",any:"any",are:"are",as:"as",at:"at",be:"be",because:"because",been:"been",but:"but",by:"by",can:"can",cannot:"cannot",could:"could",dear:"dear",did:"did","do":"do",does:"does",either:"either","else":"else",ever:"ever",every:"every","for":"for",from:"from",get:"get",got:"got",had:"had",has:"has",have:"have",he:"he",her:"her",hers:"hers",him:"him",his:"his",how:"how",however:"however",i:"i","if":"if","in":"in",into:"into",is:"is",it:"it",its:"its",just:"just",least:"least",let:"let",like:"like",likely:"likely",may:"may",me:"me",might:"might",most:"most",must:"must",my:"my",neither:"neither",no:"no",nor:"nor",not:"not",of:"of",off:"off",often:"often",on:"on",only:"only",or:"or",other:"other",our:"our",own:"own",rather:"rather",said:"said",say:"say",says:"says",she:"she",should:"should",since:"since",so:"so",some:"some",than:"than",that:"that",the:"the",their:"their",them:"them",then:"then",there:"there",these:"these",they:"they","this":"this",tis:"tis",to:"to",too:"too",twas:"twas",us:"us",wants:"wants",was:"was",we:"we",were:"were",what:"what",when:"when",where:"where",which:"which","while":"while",who:"who",whom:"whom",why:"why",will:"will","with":"with",would:"would",yet:"yet",you:"you",your:"your"},t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){var e=t.replace(/^\W+/,"").replace(/\W+$/,"");return""===e?void 0:e},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n indicates arrow keys):', 82 | '/: navigate to previous/next page', 83 | 's: Toggle sidebar']; 84 | if (config.search !== false) info.push('f: Toggle search input ' + 85 | '(use //Enter in the search input to navigate through search matches; ' + 86 | 'press Esc to cancel search)'); 87 | if (config.info !== false) gitbook.toolbar.createButton({ 88 | icon: 'fa fa-info', 89 | label: 'Information about the toolbar', 90 | position: 'left', 91 | onClick: function(e) { 92 | e.preventDefault(); 93 | window.alert(info.join('\n\n')); 94 | } 95 | }); 96 | 97 | // highlight the current section in TOC 98 | var href = window.location.pathname; 99 | href = href.substr(href.lastIndexOf('/') + 1); 100 | // accentuated characters need to be decoded (#819) 101 | href = decodeURIComponent(href); 102 | if (href === '') href = 'index.html'; 103 | var li = $('a[href^="' + href + location.hash + '"]').parent('li.chapter').first(); 104 | var summary = $('ul.summary'), chaps = summary.find('li.chapter'); 105 | if (li.length === 0) li = chaps.first(); 106 | li.addClass('active'); 107 | chaps.on('click', function(e) { 108 | chaps.removeClass('active'); 109 | $(this).addClass('active'); 110 | gs.set('tocScrollTop', summary.scrollTop()); 111 | }); 112 | 113 | var toc = config.toc; 114 | // collapse TOC items that are not for the current chapter 115 | if (toc && toc.collapse) (function() { 116 | var type = toc.collapse; 117 | if (type === 'none') return; 118 | if (type !== 'section' && type !== 'subsection') return; 119 | // sections under chapters 120 | var toc_sub = summary.children('li[data-level]').children('ul'); 121 | if (type === 'section') { 122 | toc_sub.hide() 123 | .parent().has(li).children('ul').show(); 124 | } else { 125 | toc_sub.children('li').children('ul').hide() 126 | .parent().has(li).children('ul').show(); 127 | } 128 | li.children('ul').show(); 129 | var toc_sub2 = toc_sub.children('li'); 130 | if (type === 'section') toc_sub2.children('ul').hide(); 131 | summary.children('li[data-level]').find('a') 132 | .on('click.bookdown', function(e) { 133 | if (href === $(this).attr('href').replace(/#.*/, '')) 134 | $(this).parent('li').children('ul').toggle(); 135 | }); 136 | })(); 137 | 138 | // add tooltips to the 's that are truncated 139 | $('a').each(function(i, el) { 140 | if (el.offsetWidth >= el.scrollWidth) return; 141 | if (typeof el.title === 'undefined') return; 142 | el.title = el.text; 143 | }); 144 | 145 | // restore TOC scroll position 146 | var pos = gs.get('tocScrollTop'); 147 | if (typeof pos !== 'undefined') summary.scrollTop(pos); 148 | 149 | // highlight the TOC item that has same text as the heading in view as scrolling 150 | if (toc && toc.scroll_highlight !== false && li.length > 0) (function() { 151 | // scroll the current TOC item into viewport 152 | var ht = $(window).height(), rect = li[0].getBoundingClientRect(); 153 | if (rect.top >= ht || rect.top <= 0 || rect.bottom <= 0) { 154 | summary.scrollTop(li[0].offsetTop); 155 | } 156 | // current chapter TOC items 157 | var items = $('a[href^="' + href + '"]').parent('li.chapter'), 158 | m = items.length; 159 | if (m === 0) { 160 | items = summary.find('li.chapter'); 161 | m = items.length; 162 | } 163 | if (m === 0) return; 164 | // all section titles on current page 165 | var hs = bookInner.find('.page-inner').find('h1,h2,h3'), n = hs.length, 166 | ts = hs.map(function(i, el) { return $(el).text(); }); 167 | if (n === 0) return; 168 | var scrollHandler = function(e) { 169 | var ht = $(window).height(); 170 | clearTimeout($.data(this, 'scrollTimer')); 171 | $.data(this, 'scrollTimer', setTimeout(function() { 172 | // find the first visible title in the viewport 173 | for (var i = 0; i < n; i++) { 174 | var rect = hs[i].getBoundingClientRect(); 175 | if (rect.top >= 0 && rect.bottom <= ht) break; 176 | } 177 | if (i === n) return; 178 | items.removeClass('active'); 179 | for (var j = 0; j < m; j++) { 180 | if (items.eq(j).children('a').first().text() === ts[i]) break; 181 | } 182 | if (j === m) j = 0; // highlight the chapter title 183 | // search bottom-up for a visible TOC item to highlight; if an item is 184 | // hidden, we check if its parent is visible, and so on 185 | while (j > 0 && items.eq(j).is(':hidden')) j--; 186 | items.eq(j).addClass('active'); 187 | }, 250)); 188 | }; 189 | bookInner.on('scroll.bookdown', scrollHandler); 190 | bookBody.on('scroll.bookdown', scrollHandler); 191 | })(); 192 | 193 | // do not refresh the page if the TOC item points to the current page 194 | $('a[href="' + href + '"]').parent('li.chapter').children('a') 195 | .on('click', function(e) { 196 | bookInner.scrollTop(0); 197 | bookBody.scrollTop(0); 198 | return false; 199 | }); 200 | 201 | var toolbar = config.toolbar; 202 | if (!toolbar || toolbar.position !== 'static') { 203 | var bookHeader = $('.book-header'); 204 | bookBody.addClass('fixed'); 205 | bookHeader.addClass('fixed') 206 | .css('background-color', bookBody.css('background-color')) 207 | .on('click.bookdown', function(e) { 208 | // the theme may have changed after user clicks the theme button 209 | bookHeader.css('background-color', bookBody.css('background-color')); 210 | }); 211 | } 212 | 213 | }); 214 | 215 | gitbook.events.bind("page.change", function(e) { 216 | // store TOC scroll position 217 | var summary = $('ul.summary'); 218 | gs.set('tocScrollTop', summary.scrollTop()); 219 | }); 220 | 221 | var bookBody = $('.book-body'), bookInner = bookBody.find('.body-inner'); 222 | var chapterTitle = function() { 223 | return bookInner.find('.page-inner').find('h1,h2').first().text(); 224 | }; 225 | var saveScrollPos = function(e) { 226 | // save scroll position before page is reloaded 227 | gs.set('bodyScrollTop', { 228 | body: bookBody.scrollTop(), 229 | inner: bookInner.scrollTop(), 230 | focused: document.hasFocus(), 231 | title: chapterTitle() 232 | }); 233 | }; 234 | $(document).on('servr:reload', saveScrollPos); 235 | 236 | // check if the page is loaded in an iframe (e.g. the RStudio preview window) 237 | var inIFrame = function() { 238 | var inIframe = true; 239 | try { inIframe = window.self !== window.top; } catch (e) {} 240 | return inIframe; 241 | }; 242 | if (inIFrame()) { 243 | $(window).on('blur unload', saveScrollPos); 244 | } 245 | 246 | $(function(e) { 247 | var pos = gs.get('bodyScrollTop'); 248 | if (pos) { 249 | if (pos.title === chapterTitle()) { 250 | if (pos.body !== 0) bookBody.scrollTop(pos.body); 251 | if (pos.inner !== 0) bookInner.scrollTop(pos.inner); 252 | } 253 | } 254 | if ((pos && pos.focused) || !inIFrame()) bookInner.find('.page-wrapper').focus(); 255 | // clear book body scroll position 256 | gs.remove('bodyScrollTop'); 257 | }); 258 | 259 | }); 260 | -------------------------------------------------------------------------------- /docs/libs/gitbook-2.6.7/js/plugin-clipboard.js: -------------------------------------------------------------------------------- 1 | gitbook.require(["gitbook", "jQuery"], function(gitbook, $) { 2 | 3 | var copyButton = ''; 4 | var clipboard; 5 | 6 | gitbook.events.bind("page.change", function() { 7 | 8 | if (!ClipboardJS.isSupported()) return; 9 | 10 | // the page.change event is thrown twice: before and after the page changes 11 | if (clipboard) { 12 | // clipboard is already defined 13 | // we can deduct that we are before page changes 14 | clipboard.destroy(); // destroy the previous events listeners 15 | clipboard = undefined; // reset the clipboard object 16 | return; 17 | } 18 | 19 | $(copyButton).prependTo("div.sourceCode"); 20 | 21 | clipboard = new ClipboardJS(".copy-to-clipboard-button", { 22 | text: function(trigger) { 23 | return trigger.parentNode.textContent; 24 | } 25 | }); 26 | 27 | }); 28 | 29 | }); 30 | -------------------------------------------------------------------------------- /docs/libs/gitbook-2.6.7/js/plugin-fontsettings.js: -------------------------------------------------------------------------------- 1 | gitbook.require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) { 2 | var fontState; 3 | 4 | var THEMES = { 5 | "white": 0, 6 | "sepia": 1, 7 | "night": 2 8 | }; 9 | 10 | var FAMILY = { 11 | "serif": 0, 12 | "sans": 1 13 | }; 14 | 15 | // Save current font settings 16 | function saveFontSettings() { 17 | gitbook.storage.set("fontState", fontState); 18 | update(); 19 | } 20 | 21 | // Increase font size 22 | function enlargeFontSize(e) { 23 | e.preventDefault(); 24 | if (fontState.size >= 4) return; 25 | 26 | fontState.size++; 27 | saveFontSettings(); 28 | }; 29 | 30 | // Decrease font size 31 | function reduceFontSize(e) { 32 | e.preventDefault(); 33 | if (fontState.size <= 0) return; 34 | 35 | fontState.size--; 36 | saveFontSettings(); 37 | }; 38 | 39 | // Change font family 40 | function changeFontFamily(index, e) { 41 | e.preventDefault(); 42 | 43 | fontState.family = index; 44 | saveFontSettings(); 45 | }; 46 | 47 | // Change type of color 48 | function changeColorTheme(index, e) { 49 | e.preventDefault(); 50 | 51 | var $book = $(".book"); 52 | 53 | if (fontState.theme !== 0) 54 | $book.removeClass("color-theme-"+fontState.theme); 55 | 56 | fontState.theme = index; 57 | if (fontState.theme !== 0) 58 | $book.addClass("color-theme-"+fontState.theme); 59 | 60 | saveFontSettings(); 61 | }; 62 | 63 | function update() { 64 | var $book = gitbook.state.$book; 65 | 66 | $(".font-settings .font-family-list li").removeClass("active"); 67 | $(".font-settings .font-family-list li:nth-child("+(fontState.family+1)+")").addClass("active"); 68 | 69 | $book[0].className = $book[0].className.replace(/\bfont-\S+/g, ''); 70 | $book.addClass("font-size-"+fontState.size); 71 | $book.addClass("font-family-"+fontState.family); 72 | 73 | if(fontState.theme !== 0) { 74 | $book[0].className = $book[0].className.replace(/\bcolor-theme-\S+/g, ''); 75 | $book.addClass("color-theme-"+fontState.theme); 76 | } 77 | }; 78 | 79 | function init(config) { 80 | var $bookBody, $book; 81 | 82 | //Find DOM elements. 83 | $book = gitbook.state.$book; 84 | $bookBody = $book.find(".book-body"); 85 | 86 | // Instantiate font state object 87 | fontState = gitbook.storage.get("fontState", { 88 | size: config.size || 2, 89 | family: FAMILY[config.family || "sans"], 90 | theme: THEMES[config.theme || "white"] 91 | }); 92 | 93 | update(); 94 | }; 95 | 96 | 97 | gitbook.events.bind("start", function(e, config) { 98 | var opts = config.fontsettings; 99 | if (!opts) return; 100 | 101 | // Create buttons in toolbar 102 | gitbook.toolbar.createButton({ 103 | icon: 'fa fa-font', 104 | label: 'Font Settings', 105 | className: 'font-settings', 106 | dropdown: [ 107 | [ 108 | { 109 | text: 'A', 110 | className: 'font-reduce', 111 | onClick: reduceFontSize 112 | }, 113 | { 114 | text: 'A', 115 | className: 'font-enlarge', 116 | onClick: enlargeFontSize 117 | } 118 | ], 119 | [ 120 | { 121 | text: 'Serif', 122 | onClick: _.partial(changeFontFamily, 0) 123 | }, 124 | { 125 | text: 'Sans', 126 | onClick: _.partial(changeFontFamily, 1) 127 | } 128 | ], 129 | [ 130 | { 131 | text: 'White', 132 | onClick: _.partial(changeColorTheme, 0) 133 | }, 134 | { 135 | text: 'Sepia', 136 | onClick: _.partial(changeColorTheme, 1) 137 | }, 138 | { 139 | text: 'Night', 140 | onClick: _.partial(changeColorTheme, 2) 141 | } 142 | ] 143 | ] 144 | }); 145 | 146 | 147 | // Init current settings 148 | init(opts); 149 | }); 150 | }); 151 | 152 | 153 | -------------------------------------------------------------------------------- /docs/libs/gitbook-2.6.7/js/plugin-search.js: -------------------------------------------------------------------------------- 1 | gitbook.require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) { 2 | var index = null; 3 | var $searchInput, $searchLabel, $searchForm; 4 | var $highlighted = [], hi, hiOpts = { className: 'search-highlight' }; 5 | var collapse = false, toc_visible = []; 6 | 7 | // Use a specific index 8 | function loadIndex(data) { 9 | // [Yihui] In bookdown, I use a character matrix to store the chapter 10 | // content, and the index is dynamically built on the client side. 11 | // Gitbook prebuilds the index data instead: https://github.com/GitbookIO/plugin-search 12 | // We can certainly do that via R packages V8 and jsonlite, but let's 13 | // see how slow it really is before improving it. On the other hand, 14 | // lunr cannot handle non-English text very well, e.g. the default 15 | // tokenizer cannot deal with Chinese text, so we may want to replace 16 | // lunr with a dumb simple text matching approach. 17 | index = lunr(function () { 18 | this.ref('url'); 19 | this.field('title', { boost: 10 }); 20 | this.field('body'); 21 | }); 22 | data.map(function(item) { 23 | index.add({ 24 | url: item[0], 25 | title: item[1], 26 | body: item[2] 27 | }); 28 | }); 29 | } 30 | 31 | // Fetch the search index 32 | function fetchIndex() { 33 | return $.getJSON(gitbook.state.basePath+"/search_index.json") 34 | .then(loadIndex); // [Yihui] we need to use this object later 35 | } 36 | 37 | // Search for a term and return results 38 | function search(q) { 39 | if (!index) return; 40 | 41 | var results = _.chain(index.search(q)) 42 | .map(function(result) { 43 | var parts = result.ref.split("#"); 44 | return { 45 | path: parts[0], 46 | hash: parts[1] 47 | }; 48 | }) 49 | .value(); 50 | 51 | // [Yihui] Highlight the search keyword on current page 52 | $highlighted = results.length === 0 ? [] : $('.page-inner') 53 | .unhighlight(hiOpts).highlight(q, hiOpts).find('span.search-highlight'); 54 | scrollToHighlighted(0); 55 | 56 | return results; 57 | } 58 | 59 | // [Yihui] Scroll the chapter body to the i-th highlighted string 60 | function scrollToHighlighted(d) { 61 | var n = $highlighted.length; 62 | hi = hi === undefined ? 0 : hi + d; 63 | // navignate to the previous/next page in the search results if reached the top/bottom 64 | var b = hi < 0; 65 | if (d !== 0 && (b || hi >= n)) { 66 | var path = currentPath(), n2 = toc_visible.length; 67 | if (n2 === 0) return; 68 | for (var i = b ? 0 : n2; (b && i < n2) || (!b && i >= 0); i += b ? 1 : -1) { 69 | if (toc_visible.eq(i).data('path') === path) break; 70 | } 71 | i += b ? -1 : 1; 72 | if (i < 0) i = n2 - 1; 73 | if (i >= n2) i = 0; 74 | var lnk = toc_visible.eq(i).find('a[href$=".html"]'); 75 | if (lnk.length) lnk[0].click(); 76 | return; 77 | } 78 | if (n === 0) return; 79 | var $p = $highlighted.eq(hi); 80 | $p[0].scrollIntoView(); 81 | $highlighted.css('background-color', ''); 82 | // an orange background color on the current item and removed later 83 | $p.css('background-color', 'orange'); 84 | setTimeout(function() { 85 | $p.css('background-color', ''); 86 | }, 2000); 87 | } 88 | 89 | function currentPath() { 90 | var href = window.location.pathname; 91 | href = href.substr(href.lastIndexOf('/') + 1); 92 | return href === '' ? 'index.html' : href; 93 | } 94 | 95 | // Create search form 96 | function createForm(value) { 97 | if ($searchForm) $searchForm.remove(); 98 | if ($searchLabel) $searchLabel.remove(); 99 | if ($searchInput) $searchInput.remove(); 100 | 101 | $searchForm = $('
    ', { 102 | 'class': 'book-search', 103 | 'role': 'search' 104 | }); 105 | 106 | $searchLabel = $('
    132 | 133 |
    134 | 196 |
    197 | 198 |
    199 |
    200 | 205 | 206 |
    207 |
    208 | 209 |
    210 |
    211 |

    Licence

    212 |

    Creative Commons License
    This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

    213 |
    214 |
    215 | 216 |
    217 |
    218 |
    219 | 220 | 221 |
    222 |
    223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 270 | 271 | 272 | 285 | 286 | 287 | 288 | -------------------------------------------------------------------------------- /docs/reference-keys.txt: -------------------------------------------------------------------------------- 1 | eq:1 2 | def:unnamed-chunk-1 3 | def:unnamed-chunk-2 4 | def:unnamed-chunk-3 5 | def:unnamed-chunk-4 6 | def:unnamed-chunk-5 7 | eq:2 8 | eq:3 9 | eq:4 10 | def:unnamed-chunk-7 11 | def:unnamed-chunk-8 12 | eq:5 13 | def:unnamed-chunk-9 14 | def:unnamed-chunk-10 15 | eq:6 16 | def:unnamed-chunk-12 17 | eq:7 18 | eq:8 19 | exm:unnamed-chunk-13 20 | def:unnamed-chunk-16 21 | eq:9 22 | eq:10 23 | eq:11 24 | exm:unnamed-chunk-17 25 | def:unnamed-chunk-19 26 | eq:12 27 | def:unnamed-chunk-20 28 | eq:13 29 | thm:unnamed-chunk-21 30 | eq:14 31 | eq:15 32 | exm:unnamed-chunk-23 33 | def:unnamed-chunk-25 34 | eq:16 35 | def:unnamed-chunk-26 36 | eq:17 37 | def:unnamed-chunk-27 38 | def:unnamed-chunk-28 39 | thm:unnamed-chunk-29 40 | eq:18 41 | eq:19 42 | eq:20 43 | eq:21 44 | eq:22 45 | eq:23 46 | eq:24 47 | eq:25 48 | thm:unnamed-chunk-31 49 | eq:26 50 | def:unnamed-chunk-33 51 | thm:unnamed-chunk-34 52 | exm:unnamed-chunk-36 53 | eq:27 54 | eq:28 55 | eq:29 56 | eq:30 57 | eq:31 58 | eq:32 59 | eq:33 60 | eq:34 61 | eq:35 62 | eq:36 63 | eq:37 64 | eq:38 65 | eq:39 66 | eq:40 67 | exm:unnamed-chunk-41 68 | eq:41 69 | eq:42 70 | eq:43 71 | eq:44 72 | eq:45 73 | def:unnamed-chunk-45 74 | exm:unnamed-chunk-50 75 | exm:unnamed-chunk-57 76 | exm:unnamed-chunk-63 77 | def:unnamed-chunk-79 78 | eq:46 79 | eq:47 80 | eq:48 81 | eq:49 82 | eq:50 83 | eq:51 84 | exm:unnamed-chunk-81 85 | eq:52 86 | eq:53 87 | eq:54 88 | eq:55 89 | eq:56 90 | eq:57 91 | def:unnamed-chunk-89 92 | eq:58 93 | eq:59 94 | eq:60 95 | eq:61 96 | eq:62 97 | eq:63 98 | eq:64 99 | eq:65 100 | exm:unnamed-chunk-91 101 | eq:66 102 | eq:67 103 | eq:68 104 | eq:69 105 | eq:70 106 | eq:71 107 | exm:unnamed-chunk-96 108 | eq:72 109 | eq:73 110 | eq:74 111 | exm:unnamed-chunk-105 112 | eq:75 113 | eq:76 114 | eq:77 115 | eq:78 116 | eq:79 117 | eq:80 118 | eq:81 119 | eq:82 120 | exm:unnamed-chunk-110 121 | eq:83 122 | exm:unnamed-chunk-114 123 | exm:unnamed-chunk-118 124 | thm:unnamed-chunk-125 125 | thm:unnamed-chunk-127 126 | exm:unnamed-chunk-129 127 | exm:unnamed-chunk-134 128 | thm:unnamed-chunk-138 129 | thm:unnamed-chunk-140 130 | thm:unnamed-chunk-142 131 | thm:unnamed-chunk-144 132 | exm:unnamed-chunk-146 133 | exm:unnamed-chunk-155 134 | exm:unnamed-chunk-161 135 | exm:unnamed-chunk-169 136 | exm:unnamed-chunk-173 137 | thm:unnamed-chunk-180 138 | exm:unnamed-chunk-182 139 | thm:unnamed-chunk-188 140 | exm:unnamed-chunk-190 141 | what-is-numerical-optimization 142 | introduction-to-optimization 143 | a-solution 144 | maximization 145 | feasible-region 146 | discrete-optimization-problems 147 | linear-programming-problems 148 | stochastic-optimization-problems 149 | scaling-of-decision-variables 150 | gradient-vector-and-hessian-matrix-of-the-objective-function 151 | directional-derivative-of-the-objective-function 152 | positive-definite-and-positive-semi-definite-matrices 153 | what-is-convexity 154 | numerical-optimization-algorithms 155 | introduction-to-unconstrained-optimization 156 | the-unconstrained-optimization-problem 157 | smooth-functions 158 | taylors-theorem 159 | necessary-and-sufficient-conditions-for-local-minimizer-in-unconstrained-optimization 160 | first-order-necessary-condition 161 | second-order-necessary-conditions 162 | second-order-sufficient-conditions 163 | algorithms-for-solving-unconstrained-minimization-tasks 164 | solving-one-dimensional-optimization-problems 165 | one-dimensional-optimization-problems 166 | what-is-a-unimodal-function 167 | fibonacci-search-method 168 | golden-section-search-method 169 | powells-quadratic-interpolation-method 170 | inverse-quadratic-interpolation-method 171 | newtons-method 172 | halleys-method 173 | secant-method 174 | bisection-method 175 | brents-method 176 | line-search-descent-methods 177 | introduction-to-line-search-descent-methods-for-unconstrained-minimization 178 | selection-of-step-length 179 | the-wolfe-conditions 180 | an-algorithm-for-the-strong-wolfe-conditions 181 | first-order-line-search-gradient-descent-method-the-steepest-descent-algorithm 182 | conjugate-gradient-methods 183 | second-order-line-search-gradient-descent-method 184 | marquardt-method 185 | conjugate-gradient-methods-1 186 | introduction-to-conjugate-gradient-methods 187 | linear-conjugate-gradient-algorithm 188 | mutual-conjugacy 189 | conjugate-direction-algorithm 190 | preliminary-algorithm 191 | nonlinear-conjugate-gradient-algorithm 192 | feltcher-reeves-algorithm 193 | polak-ribiere-algorithm 194 | hestenes-stiefel-algorithm 195 | dai-yuan-algorithm 196 | hager-zhang-algorithm 197 | the-scipy.optimize.minimize-function 198 | quasi-newton-methods 199 | introduction-to-quasi-newton-methods 200 | the-approximate-inverse-matrix 201 | rank-1-update-algorithm 202 | rank-2-update-algorithms 203 | davidon-fletcher-powell-algorithm 204 | broyden-fletcher-goldfarb-shanno-bfgs-algorithm 205 | huangs-family-of-rank-2-update-formulae 206 | eq:a 207 | thm:unnamed-chunk-2 208 | exm:unnamed-chunk-4 209 | exm:unnamed-chunk-9 210 | eq:b 211 | exm:unnamed-chunk-6 212 | exm:unnamed-chunk-19 213 | def:unnamed-chunk-35 214 | exm:unnamed-chunk-37 215 | exm:unnamed-chunk-47 216 | exm:unnamed-chunk-52 217 | exm:unnamed-chunk-61 218 | exm:unnamed-chunk-66 219 | eq:c 220 | exm:unnamed-chunk-1 221 | exm:unnamed-chunk-5 222 | thm:unnamed-chunk-12 223 | thm:unnamed-chunk-14 224 | exm:unnamed-chunk-16 225 | exm:unnamed-chunk-21 226 | eq:d 227 | thm:unnamed-chunk-1 228 | thm:unnamed-chunk-3 229 | thm:unnamed-chunk-5 230 | thm:unnamed-chunk-7 231 | exm:unnamed-chunk-18 232 | exm:unnamed-chunk-24 233 | exm:unnamed-chunk-32 234 | eq:e 235 | thm:unnamed-chunk-8 236 | exm:unnamed-chunk-10 237 | thm:unnamed-chunk-16 238 | -------------------------------------------------------------------------------- /docs/style.css: -------------------------------------------------------------------------------- 1 | p.caption { 2 | color: #777; 3 | margin-top: 10px; 4 | } 5 | p code { 6 | white-space: inherit; 7 | } 8 | pre { 9 | word-break: normal; 10 | word-wrap: normal; 11 | } 12 | pre code { 13 | white-space: inherit; 14 | } 15 | -------------------------------------------------------------------------------- /docs/the-pool-of-tears.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Chapter 2 The pool of tears | Introduction to Mathematical Optimization 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 |
    68 | 69 | 88 | 89 |
    90 |
    91 | 96 | 97 |
    98 |
    99 | 100 |
    101 |
    102 |

    Chapter 2 The pool of tears

    103 | 104 |
    105 |
    106 | 107 |
    108 |
    109 |
    110 | 111 | 112 |
    113 |
    114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 161 | 162 | 163 | 164 | 165 | -------------------------------------------------------------------------------- /fibonaccisearch.csv: -------------------------------------------------------------------------------- 1 | n,xl,xr,f(x1),f(x2),Reduction Ratio 2 | 0,-2.5,2.5,35.46875,-25.46875,0.38197 3 | 1,-0.59017,2.5,17.75958602939754,-7.759586029397541,0.38197 4 | 2,0.59017,2.5,-7.759586029397541,-28.881853783044733,0.23607 5 | 3,1.31966,2.5,-28.881853783044733,-40.76263224910102,0.1459 6 | 4,1.77051,2.5,-40.76263224910102,-42.874998119071016,0.09017 7 | 5,1.77051,2.22136,-42.874998119071016,-40.145824016139265,0.05573 8 | 6,1.94272,2.22136,-42.842415906493486,-42.874998119071016,0.03444 9 | 7,1.94272,2.11493,-42.874998119071016,-42.28467773047028,0.02129 10 | 8,1.94272,2.04915,-42.99636838205938,-42.87499811907103,0.01316 11 | 9,1.98337,2.04915,-42.98633597140005,-42.99636838205938,0.00813 12 | 10,1.98337,2.02403,-42.99636838205938,-42.97065047513563,0.00502 13 | 11,1.98337,2.0085,-42.999939586837,-42.99636838205938,0.00311 14 | 12,1.99297,2.0085,-42.997540399940874,-42.999939586837,0.00192 15 | 13,1.99297,2.00257,-42.999939586837,-42.999670238949804,0.00119 16 | 14,1.99663,2.00257,-42.9994349883619,-42.999939586837,0.00073 17 | 15,1.9989,2.00257,-42.999939586837,-42.99999550205437,0.00045 18 | 16,1.9989,2.00117,-42.99999550205437,-42.999931934250476,0.00028 19 | 17,1.9989,2.0003,-42.99999728003584,-42.99999550205437,0.00017 20 | 18,1.99943,2.0003,-42.9999839615041,-42.99999728003584,0.00011 21 | 19,1.99977,2.0003,-42.99999728003584,-42.99999994448275,7e-05 22 | 20,1.99977,2.0001,-42.99999994448276,-42.9999995002982,4e-05 23 | 21,1.9999,2.0001,-42.99999950036813,-42.99999994448276,3e-05 24 | 22,1.9999,2.00003,-42.99999994448276,-42.99999994448017,1e-05 25 | 23,1.99997,1.99997,-42.99999994448275,-42.99999994448275,0.0 26 | 24,1.99997,1.99997,-42.99999994448275,-42.99999994448275,0.0 27 | n,xl,xr,f(x1),f(x2),Reduction Ratio 28 | 0,-2.5,2.5,35.46875,-25.46875,0.38197 29 | 1,-0.59017,2.5,17.75958602939754,-7.759586029397541,0.38197 30 | 2,0.59017,2.5,-7.759586029397541,-28.881853783044733,0.23607 31 | 3,1.31966,2.5,-28.881853783044733,-40.76263224910102,0.1459 32 | 4,1.77051,2.5,-40.76263224910102,-42.874998119071016,0.09017 33 | 5,1.77051,2.22136,-42.874998119071016,-40.145824016139265,0.05573 34 | 6,1.94272,2.22136,-42.842415906493486,-42.874998119071016,0.03444 35 | 7,1.94272,2.11493,-42.874998119071016,-42.28467773047028,0.02129 36 | 8,1.94272,2.04915,-42.99636838205938,-42.87499811907103,0.01316 37 | 9,1.98337,2.04915,-42.98633597140005,-42.99636838205938,0.00813 38 | 10,1.98337,2.02403,-42.99636838205938,-42.97065047513563,0.00502 39 | 11,1.98337,2.0085,-42.999939586837,-42.99636838205938,0.00311 40 | 12,1.99297,2.0085,-42.997540399940874,-42.999939586837,0.00192 41 | 13,1.99297,2.00257,-42.999939586837,-42.999670238949804,0.00119 42 | 14,1.99663,2.00257,-42.9994349883619,-42.999939586837,0.00073 43 | 15,1.9989,2.00257,-42.999939586837,-42.99999550205437,0.00045 44 | 16,1.9989,2.00117,-42.99999550205437,-42.999931934250476,0.00028 45 | 17,1.9989,2.0003,-42.99999728003584,-42.99999550205437,0.00017 46 | 18,1.99943,2.0003,-42.9999839615041,-42.99999728003584,0.00011 47 | 19,1.99977,2.0003,-42.99999728003584,-42.99999994448275,7e-05 48 | 20,1.99977,2.0001,-42.99999994448276,-42.9999995002982,4e-05 49 | 21,1.9999,2.0001,-42.99999950036813,-42.99999994448276,3e-05 50 | 22,1.9999,2.00003,-42.99999994448276,-42.99999994448017,1e-05 51 | 23,1.99997,1.99997,-42.99999994448275,-42.99999994448275,0.0 52 | 24,1.99997,1.99997,-42.99999994448275,-42.99999994448275,0.0 53 | n,xl,xr,f(x1),f(x2),Reduction Ratio 54 | 0,-2.5,2.5,35.46875,-25.46875,0.38197 55 | 1,-0.59017,2.5,17.75958602939754,-7.759586029397541,0.38197 56 | 2,0.59017,2.5,-7.759586029397541,-28.881853783044733,0.23607 57 | 3,1.31966,2.5,-28.881853783044733,-40.76263224910102,0.1459 58 | 4,1.77051,2.5,-40.76263224910102,-42.874998119071016,0.09017 59 | 5,1.77051,2.22136,-42.874998119071016,-40.145824016139265,0.05573 60 | 6,1.94272,2.22136,-42.842415906493486,-42.874998119071016,0.03444 61 | 7,1.94272,2.11493,-42.874998119071016,-42.28467773047028,0.02129 62 | 8,1.94272,2.04915,-42.99636838205938,-42.87499811907103,0.01316 63 | 9,1.98337,2.04915,-42.98633597140005,-42.99636838205938,0.00813 64 | 10,1.98337,2.02403,-42.99636838205938,-42.97065047513563,0.00502 65 | 11,1.98337,2.0085,-42.999939586837,-42.99636838205938,0.00311 66 | 12,1.99297,2.0085,-42.997540399940874,-42.999939586837,0.00192 67 | 13,1.99297,2.00257,-42.999939586837,-42.999670238949804,0.00119 68 | 14,1.99663,2.00257,-42.9994349883619,-42.999939586837,0.00073 69 | 15,1.9989,2.00257,-42.999939586837,-42.99999550205437,0.00045 70 | 16,1.9989,2.00117,-42.99999550205437,-42.999931934250476,0.00028 71 | 17,1.9989,2.0003,-42.99999728003584,-42.99999550205437,0.00017 72 | 18,1.99943,2.0003,-42.9999839615041,-42.99999728003584,0.00011 73 | 19,1.99977,2.0003,-42.99999728003584,-42.99999994448275,7e-05 74 | 20,1.99977,2.0001,-42.99999994448276,-42.9999995002982,4e-05 75 | 21,1.9999,2.0001,-42.99999950036813,-42.99999994448276,3e-05 76 | 22,1.9999,2.00003,-42.99999994448276,-42.99999994448017,1e-05 77 | 23,1.99997,1.99997,-42.99999994448275,-42.99999994448275,0.0 78 | 24,1.99997,1.99997,-42.99999994448275,-42.99999994448275,0.0 79 | n,xl,xr,f(x1),f(x2),Reduction Ratio 80 | 0,-2.5,2.5,35.46875,-25.46875,0.38197 81 | 1,-0.59017,2.5,17.75958602939754,-7.759586029397541,0.38197 82 | 2,0.59017,2.5,-7.759586029397541,-28.881853783044733,0.23607 83 | 3,1.31966,2.5,-28.881853783044733,-40.76263224910102,0.1459 84 | 4,1.77051,2.5,-40.76263224910102,-42.874998119071016,0.09017 85 | 5,1.77051,2.22136,-42.874998119071016,-40.145824016139265,0.05573 86 | 6,1.94272,2.22136,-42.842415906493486,-42.874998119071016,0.03444 87 | 7,1.94272,2.11493,-42.874998119071016,-42.28467773047028,0.02129 88 | 8,1.94272,2.04915,-42.99636838205938,-42.87499811907103,0.01316 89 | 9,1.98337,2.04915,-42.98633597140005,-42.99636838205938,0.00813 90 | 10,1.98337,2.02403,-42.99636838205938,-42.97065047513563,0.00502 91 | 11,1.98337,2.0085,-42.999939586837,-42.99636838205938,0.00311 92 | 12,1.99297,2.0085,-42.997540399940874,-42.999939586837,0.00192 93 | 13,1.99297,2.00257,-42.999939586837,-42.999670238949804,0.00119 94 | 14,1.99663,2.00257,-42.9994349883619,-42.999939586837,0.00073 95 | 15,1.9989,2.00257,-42.999939586837,-42.99999550205437,0.00045 96 | 16,1.9989,2.00117,-42.99999550205437,-42.999931934250476,0.00028 97 | 17,1.9989,2.0003,-42.99999728003584,-42.99999550205437,0.00017 98 | 18,1.99943,2.0003,-42.9999839615041,-42.99999728003584,0.00011 99 | 19,1.99977,2.0003,-42.99999728003584,-42.99999994448275,7e-05 100 | 20,1.99977,2.0001,-42.99999994448276,-42.9999995002982,4e-05 101 | 21,1.9999,2.0001,-42.99999950036813,-42.99999994448276,3e-05 102 | 22,1.9999,2.00003,-42.99999994448276,-42.99999994448017,1e-05 103 | 23,1.99997,1.99997,-42.99999994448275,-42.99999994448275,0.0 104 | 24,1.99997,1.99997,-42.99999994448275,-42.99999994448275,0.0 105 | -------------------------------------------------------------------------------- /img 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 1.png -------------------------------------------------------------------------------- /img 10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 10.png -------------------------------------------------------------------------------- /img 11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 11.png -------------------------------------------------------------------------------- /img 12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 12.png -------------------------------------------------------------------------------- /img 13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 13.png -------------------------------------------------------------------------------- /img 14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 14.png -------------------------------------------------------------------------------- /img 15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 15.png -------------------------------------------------------------------------------- /img 16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 16.png -------------------------------------------------------------------------------- /img 17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 17.png -------------------------------------------------------------------------------- /img 18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 18.png -------------------------------------------------------------------------------- /img 19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 19.png -------------------------------------------------------------------------------- /img 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 2.png -------------------------------------------------------------------------------- /img 20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 20.png -------------------------------------------------------------------------------- /img 21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 21.png -------------------------------------------------------------------------------- /img 22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 22.png -------------------------------------------------------------------------------- /img 23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 23.png -------------------------------------------------------------------------------- /img 24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 24.png -------------------------------------------------------------------------------- /img 25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 25.png -------------------------------------------------------------------------------- /img 26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 26.png -------------------------------------------------------------------------------- /img 27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 27.png -------------------------------------------------------------------------------- /img 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 3.png -------------------------------------------------------------------------------- /img 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 4.png -------------------------------------------------------------------------------- /img 5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 5.png -------------------------------------------------------------------------------- /img 6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 6.png -------------------------------------------------------------------------------- /img 7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 7.png -------------------------------------------------------------------------------- /img 8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 8.png -------------------------------------------------------------------------------- /img 9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/indrag49/Numerical-Optimization/b051f28ee339382201a42f289c5dcc295510747f/img 9.png -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | p.caption { 2 | color: #777; 3 | margin-top: 10px; 4 | } 5 | p code { 6 | white-space: inherit; 7 | } 8 | pre { 9 | word-break: normal; 10 | word-wrap: normal; 11 | } 12 | pre code { 13 | white-space: inherit; 14 | } 15 | --------------------------------------------------------------------------------