{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "data": { "text/plain": [ "R version 4.2.2 (2022-10-31)\n", "Platform: x86_64-apple-darwin17.0 (64-bit)\n", "Running under: macOS Catalina 10.15.7\n", "\n", "Matrix products: default\n", "BLAS: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRblas.0.dylib\n", "LAPACK: /Library/Frameworks/R.framework/Versions/4.2/Resources/lib/libRlapack.dylib\n", "\n", "locale:\n", "[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8\n", "\n", "attached base packages:\n", "[1] stats graphics grDevices utils datasets methods base \n", "\n", "loaded via a namespace (and not attached):\n", " [1] fansi_1.0.4 crayon_1.5.2 digest_0.6.31 utf8_1.2.2 \n", " [5] IRdisplay_1.1 repr_1.1.5 lifecycle_1.0.3 jsonlite_1.8.4 \n", " [9] evaluate_0.20 pillar_1.8.1 rlang_1.0.6 cli_3.6.0 \n", "[13] uuid_1.1-0 vctrs_0.5.2 IRkernel_1.3.2 tools_4.2.2 \n", "[17] glue_1.6.2 fastmap_1.1.0 compiler_4.2.2 base64enc_0.1-3\n", "[21] pbdZMQ_0.3-9 htmltools_0.5.4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sessionInfo()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Required R packages" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "** ------------------------------------------------------- **\n", "\n", "** Rlinsolve\n", "\n", "** - Solving (Sparse) System of Linear Equations\n", "\n", "**\n", "\n", "** Version : 0.3.2 (2023)\n", "\n", "** Maintainer : Kisung You (kisungyou@outlook.com)\n", "\n", "**\n", "\n", "** Please share any bugs or suggestions to the maintainer.\n", "\n", "** ------------------------------------------------------- **\n", "\n", "\n", "Attaching package: ‘SparseM’\n", "\n", "\n", "The following object is masked from ‘package:base’:\n", "\n", " backsolve\n", "\n", "\n" ] } ], "source": [ "library(Matrix)\n", "library(Rlinsolve) # iterative linear solvers\n", "library(SparseM) # for visualization\n", "library(lobstr)\n", "library(microbenchmark)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Iterative Methods for Solving Linear Equations\n", "\n", "## Introduction\n", "\n", "So far we have considered direct methods for solving linear equations. \n", "\n", "* **Direct methods** (flops fixed _a priori_) vs **iterative methods**:\n", " - Direct method (GE/LU, Cholesky, QR, SVD): accurate. good for dense, small to moderate sized $\\mathbf{A}$ \n", " - Iterative methods (Jacobi, Gauss-Seidal, SOR, conjugate-gradient, GMRES): accuracy depends on number of iterations. good for large, sparse, structured linear system, parallel computing, warm start (reasonable accuracy after, say, 100 iterations)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Motivation: PageRank \n", "\n", "\n", "\n", "Source: [Wikepedia](https://en.wikipedia.org/wiki/PageRank)\n", "\n", "* $\\mathbf{A} \\in \\{0,1\\}^{n \\times n}$ the connectivity matrix of webpages with entries\n", "$$\n", "\\begin{eqnarray*}\n", "\ta_{ij} = \\begin{cases}\n", "\t1 & \\text{if page $i$ links to page $j$} \\\\\n", "\t0 & \\text{otherwise}\n", "\t\\end{cases}. \n", "\\end{eqnarray*}\n", "$$\n", "$n \\approx 10^9$ in May 2017.\n", "\n", "* $r_i = \\sum_j a_{ij}$ is the *out-degree* of page $i$. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Larry Page](https://en.wikipedia.org/wiki/PageRank) imagined a random surfer wandering on internet according to following rules:\n", " - From a page $i$ with $r_i>0$\n", " * with probability $p$, (s)he randomly chooses a link $j$ from page $i$ (uniformly) and follows that link to the next page \n", " * with probability $1-p$, (s)he randomly chooses one page from the set of all $n$ pages (uniformly) and proceeds to that page \n", " - From a page $i$ with $r_i=0$ (a dangling page), (s)he randomly chooses one page from the set of all $n$ pages (uniformly) and proceeds to that page\n", " \n", "* The process defines an $n$-state Markov chain, where each state corresponds to each page. \n", "$$\n", " p_{ij} = (1-p)\\frac{1}{n} + p\\frac{a_{ij}}{r_i}\n", "$$\n", "with interpretation $a_{ij}/r_i = 1/n$ if $r_i = 0$.\n", "\n", "* Stationary distribution of this Markov chain gives the score (long term probability of visit) of each page.\n", "\n", "* Stationary distribution can be obtained as the top *left* eigenvector of the transition matrix $\\mathbf{P}=(p_{ij})$ corresponding to eigenvalue 1. \n", "$$\n", " \\mathbf{x}^T\\mathbf{P} = \\mathbf{x}^T.\n", "$$\n", "Equivalently it can be cast as a linear equation.\n", "$$\n", " (\\mathbf{I} - \\mathbf{P}^T) \\mathbf{x} = \\mathbf{0}.\n", "$$\n", "\n", "* You've got to solve a linear equation with $10^9$ variables!\n", "\n", "* GE/LU will take $2 \\times (10^9)^3/3/10^{12} \\approx 6.66 \\times 10^{14}$ seconds $\\approx 20$ million years on a tera-flop supercomputer!\n", "\n", "* Iterative methods come to the rescue." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Splitting and fixed point iteration\n", "\n", "* The key idea of iterative method for solving $\\mathbf{A}\\mathbf{x}=\\mathbf{b}$ is to **split** the matrix $\\mathbf{A}$ so that\n", "$$\n", " \\mathbf{A} = \\mathbf{M} - \\mathbf{K}\n", "$$\n", "where $\\mathbf{M}$ is invertible and easy to invert.\n", "\n", "* Then $\\mathbf{A}\\mathbf{x} = \\mathbf{M}\\mathbf{x} - \\mathbf{K}\\mathbf{x} = \\mathbf{b}$ or\n", "$$\n", " \\mathbf{x} = \\mathbf{M}^{-1}\\mathbf{K}\\mathbf{x} + \\mathbf{M}^{-1}\\mathbf{b}\n", " .\n", "$$\n", "Thus a solution to $\\mathbf{A}\\mathbf{x}=\\mathbf{b}$ is a fixed point of iteration\n", "$$\n", " \\mathbf{x}^{(t+1)} = \\mathbf{M}^{-1}\\mathbf{K}\\mathbf{x}^{(t)} + \\mathbf{M}^{-1}\\mathbf{b}\n", " = \\mathbf{R}\\mathbf{x}^{(t)} + \\mathbf{c}\n", " .\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Under a suitable choice of $\\mathbf{R}$, i.e., splitting of $\\mathbf{A}$, the sequence $\\mathbf{x}^{(k)}$ generated by the above iteration converges to a solution $\\mathbf{A}\\mathbf{x}=\\mathbf{b}$:\n", "\n", "\n", "> Let $\\rho(\\mathbf{R})=\\max_{i=1,\\dotsc,n}|\\lambda_i(\\mathbf{R})|$, where $\\lambda_i(\\mathbf{R})$ is the $i$th (complex) eigenvalue of $\\mathbf{R}$. When $\\mathbf{A}$ is invertible, the iteration $\\mathbf{x}^{(t+1)}=\\mathbf{R}\\mathbf{x}^{(t)} + \\mathbf{c}$ converges to $\\mathbf{A}^{-1}\\mathbf{b}$ for any $\\mathbf{x}^{(0)}$ if and only if $\\rho(\\mathbf{R}) < 1$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Review of vector norms\n", "\n", "A norm $\\|\\cdot\\|: \\mathbb{R}^n \\to \\mathbb{R}$ is defined by the following properties:\n", "\n", "1. $\\|\\mathbf{x}\\| \\ge 0$,\n", "2. $\\|\\mathbf{x}\\| = 0 \\iff \\mathbf{x} = \\mathbf{0}$,\n", "3. $\\|c\\mathbf{x}\\| = |c|\\|\\mathbf{x}\\|$ for all $c \\in \\mathbb{R}$,\n", "4. $\\|\\mathbf{x} + \\mathbf{y}\\| \\le \\|\\mathbf{x}\\| + \\|\\mathbf{y}\\|$.\n", "\n", "Typicall norms are\n", "* $\\ell_2$ (Euclidean) norm: $\\|\\mathbf{x}\\| = \\sqrt{\\sum_{i=1}^nx_i^2}$;\n", "* $\\ell_1$ norm: $\\|\\mathbf{x}\\| = \\sum_{i=1}^n|x_i|$;\n", "* $\\ell_{\\infty}$ (Manhatan) norm: $\\|\\mathbf{x}\\| = \\max_{i=1,\\dots,n}|x_i|$;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Matrix norms\n", "\n", "* Matrix $\\mathbf{A} \\in \\mathbb{R}^{n\\times n}$ can be considered as a vector in $\\mathbb{R}^{n^2}$. \n", "* However, it is convinient if a matrix norm is compatible with matrix multiplication.\n", "* In addition to the defining properties of a norm above, we require\n", "\n", "5. $\\|\\mathbf{A}\\mathbf{B}\\| \\le \\|\\mathbf{A}\\|\\|\\mathbf{B}\\|$.\n", "\n", "Typical matrix norms are\n", "* Frobenius norm: $\\|\\mathbf{A}\\|_F = \\sqrt{\\sum_{i,j=1}^n a_{ij}^2} = \\sqrt{\\text{trace}(\\mathbf{A}\\mathbf{A}^T)}$;\n", "* Operator norm (induced by a vector norm $\\|\\cdot\\|$): $\\|\\mathbf{A}\\| = \\sup_{\\mathbf{y}\\neq\\mathbf{0}}\\frac{\\|\\mathbf{A}\\mathbf{y}\\|}{\\|\\mathbf{y}\\|}$.\n", "\n", "It can be shown that\n", "* $\\|\\mathbf{A}\\|_1 = \\max_{j=1,\\dotsc,n}\\sum_{i=1}^n|a_{ij}|$;\n", "* $\\|\\mathbf{A}\\|_{\\infty} = \\max_{i=1,\\dotsc,n}\\sum_{j=1}^n|a_{ij}|$;\n", "* $\\|\\mathbf{A}\\|_2 = \\sqrt{\\rho(\\mathbf{A}^T\\mathbf{A})}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Convergence of iterative methods\n", "\n", "- Let $\\mathbf{x}^{\\star}$ be a solution of $\\mathbf{A}\\mathbf{x} = \\mathbf{b}$.\n", "- Equivalently, $\\mathbf{x}^{\\star}$ satisfies $\\mathbf{x}^{\\star} = \\mathbf{R}\\mathbf{x}^{\\star} + \\mathbf{c}$.\n", "- Subtracting this from $\\mathbf{x}^{(t+1)} = \\mathbf{R}\\mathbf{x}^{(t)} + \\mathbf{c}$, we have\n", "$$\n", " \\mathbf{x}^{(t+1)} - \\mathbf{x}^{\\star} = \\mathbf{R}(\\mathbf{x}^{(t)} - \\mathbf{x}^{\\star}).\n", "$$\n", "- Take a vector norm on both sides:\n", "$$\n", " \\|\\mathbf{x}^{(t+1)} - \\mathbf{x}^{\\star}\\| = \\|\\mathbf{R}(\\mathbf{x}^{(t)} - \\mathbf{x}^{\\star})\\| \n", " \\le \\|\\mathbf{R}\\|\\|\\mathbf{x}^{(t)} - \\mathbf{x}^{\\star}\\|\n", "$$\n", "where $\\|\\mathbf{R}\\|$ is the induced operator norm.\n", "- Thus if $\\|\\mathbf{R}\\| < 1$ for a certain (induced) norm, then $\\mathbf{x}^{(t)} \\to \\mathbf{x}^{\\star}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Theorem\n", "\n", "> The spectral radius $\\rho(\\mathbf{A})$ of a matrix $\\mathbf{A}\\in\\mathbb{R}^{n\\times n}$ satisfies\n", "$$\n", " \\rho(\\mathbf{A}) \\le \\|\\mathbf{A}\\|\n", "$$\n", "for any operator norm. Furthermore, for any $\\mathbf{A}\\in\\mathbb{R}^{n\\times n}$ and $\\epsilon > 0$, there is an operator norm $\\|\\cdot\\|$ such that $\\|\\mathbf{A}\\| \\le \\rho(\\mathbf{A}) + \\epsilon$.\n", "\\\n", "In other words,\n", "$$\n", " \\rho(\\mathbf{A}) = \\inf_{\\|\\cdot\\|: \\text{operator norm}} \\|\\mathbf{A}\\|.\n", "$$\n", "\n", "> Thus it is immediate to see\n", "$$\n", " \\rho(\\mathbf{A}) < 1 \\iff \\|\\mathbf{A}\\| < 1\n", "$$\n", "for some operator norm.\n", "\n", "#### Proof\n", "If $\\lambda$ is an eigenvalue of $\\mathbf{A}$ with nonzero eigenvector $\\mathbf{v}$, then\n", "$$\n", " \\|\\mathbf{A}\\mathbf{v}\\| = |\\lambda|\\|\\mathbf{v}\\|\n", "$$\n", "(for a vector norm). So \n", "$$\n", " |\\lambda| = \\frac{\\|\\mathbf{A}\\mathbf{v}\\|}{\\|\\mathbf{v}\\|} \\le \\|\\mathbf{A}\\|,\n", "$$\n", "implying the first inequality." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the second part, suppose $\\mathbf{A}\\in\\mathbb{R}^{n\\times n}$ and $\\epsilon > 0$ are given. Then there exists an (complex) upper triangular matrix $\\mathbf{T}$ and an invertible matrix $\\mathbf{S}$ such that\n", "$$\n", " \\mathbf{A} = \\mathbf{S}\\mathbf{T}\\mathbf{S}^{-1}\n", "$$\n", "and the eigenvalues of $\\mathbf{A}$ coincides with the diagonal entries of $\\mathbf{T}$.\n", "(Schur decomposition).\n", "\n", "For $\\delta > 0$ consider a diagonal matrix $\\mathbf{D}(\\delta)=\\text{diag}(1, \\delta, \\delta^2, \\dotsc, \\delta^{n-1})$, which is invertible. Then \n", "\n", "$$\n", "\\mathbf{T}(\\delta) \n", "\\triangleq \\mathbf{D}(\\delta)^{-1}\\mathbf{T}\\mathbf{D}(\\delta)\n", "=\\mathbf{D}(\\delta)^{-1}\\mathbf{S}^{-1}\\mathbf{A}\\mathbf{S}\\mathbf{D}(\\delta) \n", "= (\\mathbf{S}\\mathbf{D}(\\delta))^{-1}\\mathbf{A}(\\mathbf{S}\\mathbf{D}(\\delta))\n", "$$\n", "\n", "is an upper triangular matrix with entries $(\\delta^{j-i}t_{ij})$ for $j \\ge i$. So the off-diagonal entries tends to 0 as $\\delta \\to 0$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check\n", "$$\n", "\\|\\mathbf{x}\\|_{\\delta} := \\|(\\mathbf{S}\\mathbf{D}(\\delta))^{-1}\\mathbf{x}\\|_{\\infty}\n", "$$\n", "defines a vector norm, which induces\n", "\n", "$$\n", "\\begin{split}\n", "\\|\\mathbf{A}\\|_{\\delta} \n", "&\\triangleq \\sup_{\\mathbf{x}\\neq\\mathbf{0}}\\frac{\\|\\mathbf{A}\\mathbf{x}\\|_{\\delta}}{\\|\\mathbf{x}\\|_{\\delta}}\n", "= \\sup_{\\mathbf{x}\\neq\\mathbf{0}}\\frac{\\|[\\mathbf{S}\\mathbf{D}(\\delta)]^{-1}\\mathbf{A}\\mathbf{x}\\|_{\\infty}}{\\|[\\mathbf{S}\\mathbf{D}(\\delta)]^{-1}\\mathbf{x}\\|_{\\infty}}\n", "\\\\\n", "&= \\|(\\mathbf{S}\\mathbf{D}(\\delta))^{-1}\\mathbf{A}(\\mathbf{S}\\mathbf{D}(\\delta))\\|_{\\infty} = \\|\\mathbf{T}(\\delta)\\|_{\\infty}\n", "= \\max_{i=1,\\dotsc,n}\\sum_{j=i}^n |t_{ij}|\\delta^{j-i}.\n", "\\end{split}\n", "$$\n", "\n", "Since for\n", "$\\mathbf{y} = [\\mathbf{S}\\mathbf{D}(\\delta)]^{-1}\\mathbf{x}$, there holds $\\mathbf{x} = [\\mathbf{S}\\mathbf{D}(\\delta)]\\mathbf{y}$ and\n", "\\\n", "$$\n", "\\sup_{\\mathbf{x}\\neq\\mathbf{0}}\\frac{\\|[\\mathbf{S}\\mathbf{D}(\\delta)]^{-1}\\mathbf{A}\\mathbf{x}\\|_{\\infty}}{\\|[\\mathbf{S}\\mathbf{D}(\\delta)]^{-1}\\mathbf{x}\\|_{\\infty}}\n", "= \n", "\\sup_{\\mathbf{y}\\neq\\mathbf{0}}\\frac{\\|[\\mathbf{S}\\mathbf{D}(\\delta)]^{-1}\\mathbf{A}[\\mathbf{S}\\mathbf{D}(\\delta)]\\mathbf{y}\\|_{\\infty}}{\\|[\\mathbf{S}\\mathbf{D}(\\delta)]^{-1}[\\mathbf{S}\\mathbf{D}(\\delta)]\\mathbf{y}\\|_{\\infty}}\n", "=\n", "\\sup_{\\mathbf{y}\\neq\\mathbf{0}}\\frac{\\|[\\mathbf{S}\\mathbf{D}(\\delta)]^{-1}\\mathbf{A}[\\mathbf{S}\\mathbf{D}(\\delta)]\\mathbf{y}\\|_{\\infty}}{\\|\\mathbf{y}\\|_{\\infty}}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now since the eigenvalues of $\\mathbf{A}$ coincides with $t_{ii}$, for each $\\epsilon>0$ we can take a sufficiently small $\\delta > 0$ so that\n", "$$\n", " \\max_{i=1,\\dotsc,n}\\sum_{j=i}^n |t_{ij}|\\delta^{j-i} \\le \\rho(\\mathbf{A}) + \\epsilon.\n", "$$\n", "This implies $\\|\\mathbf{A}\\|_{\\delta} \\le \\rho(\\mathbf{A}) + \\epsilon$. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Implications\n", "\n", "* Recall\n", "> Let $\\rho(\\mathbf{R})=\\max_{i=1,\\dotsc,n}|\\lambda_i(\\mathbf{R})|$, where $\\lambda_i(\\mathbf{R})$ is the $i$th (complex) eigenvalue of $\\mathbf{R}$. When $\\mathbf{A}$ is invertible, the iteration $\\mathbf{x}^{(t+1)}=\\mathbf{R}\\mathbf{x}^{(t)} + \\mathbf{c}$ converges to $\\mathbf{A}^{-1}\\mathbf{b}$ for any $\\mathbf{x}^{(0)}$ if and only if $\\rho(\\mathbf{R}) < 1$.\n", "\n", "* The *if* part is proved using the above Theorem. This part holds even if $\\mathbf{A}$ is singular; the limit may depend on $\\mathbf{x}^{(0)}$, but it is always a solution to $\\mathbf{A}\\mathbf{x} = \\mathbf{b}$.\n", "\n", "* The *only if* part when $\\mathbf{A}$ is inverible (hence $\\mathbf{x}^{\\star}$ is unique):\n", "\\\n", "$$\n", " \\mathbf{x}^{(t)} - \\mathbf{x}^{\\star} = \\mathbf{R}^t(\\mathbf{x}^{(0)} - \\mathbf{x}^{\\star}).\n", "$$\n", "\\\n", "If LHS converges to zero for any $\\mathbf{x}^{(0)}$, then $\\mathbf{R}^t \\to \\mathbf{0}$ as $t \\to \\infty$. This cannot occur if $|\\lambda_i(\\mathbf{R})| \\ge 1$ for some $i$: if $\\mathbf{x}^{(0)} = \\mathbf{v}_i + \\mathbf{x}^{\\star}$ for an eigenvector $\\mathbf{v}_i \\neq \\mathbf{0}$ such that $\\mathbf{R}\\mathbf{v}_i = \\lambda_i\\mathbf{v}_i$, then $\\| R^t(\\mathbf{x}^{(0)} - \\mathbf{x}^{\\star}) \\| = |\\lambda_i|^t\\|\\mathbf{v}_i\\| \\geq \\|\\mathbf{v}_i\\| \\neq 0$.\n", " + Invertibility is necessary since otherwise we do not know if $\\mathbf{x}^{(t)}$ converges to a unique point." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Jacobi's method\n", "\n", "$$\n", "x_i^{(t+1)} = \\frac{b_i - \\sum_{j=1}^{i-1} a_{ij} x_j^{(t)} - \\sum_{j=i+1}^n a_{ij} x_j^{(t)}}{a_{ii}}.\n", "$$\n", "\n", "\n", "* Split $\\mathbf{A} = \\mathbf{L} + \\mathbf{D} + \\mathbf{U}$ = (strictly lower triangular) + (diagonal) + (strictly upper triangular).\n", "\n", "\n", "* Take $\\mathbf{M}=\\mathbf{D}$ (easy to invert!) and $\\mathbf{K}=-(\\mathbf{L} + \\mathbf{U})$:\n", "$$\n", " \\mathbf{D} \\mathbf{x}^{(t+1)} = - (\\mathbf{L} + \\mathbf{U}) \\mathbf{x}^{(t)} + \\mathbf{b},\n", "$$\n", "i.e., \n", "$$\n", "\t\\mathbf{x}^{(t+1)} = - \\mathbf{D}^{-1} (\\mathbf{L} + \\mathbf{U}) \\mathbf{x}^{(t)} + \\mathbf{D}^{-1} \\mathbf{b} = - \\mathbf{D}^{-1} \\mathbf{A} \\mathbf{x}^{(t)} + \\mathbf{x}^{(t)} + \\mathbf{D}^{-1} \\mathbf{b}.\n", "$$\n", "\n", "* Convergence is guaranteed if $\\mathbf{A}$ is striclty row diagonally dominant: $|a_{ii}| > \\sum_{j\\neq i}|a_{ij}|$.\n", "\n", "* One round costs $2n^2$ flops with an **unstructured** $\\mathbf{A}$. Gain over GE/LU if converges in $o(n)$ iterations. \n", "\n", "* Saving is huge for **sparse** or **structured** $\\mathbf{A}$. By structured, we mean the matrix-vector multiplication $\\mathbf{A} \\mathbf{v}$ is fast ($O(n)$ or $O(n \\log n)$).\n", " - Often the multiplication is implicit and $\\mathbf{A}$ is not even stored, e.g., finite difference: $(\\mathbf{A}\\mathbf{v})_i = v_i - v_{i+1}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Gauss-Seidel method\n", "\n", "$$\n", "x_i^{(t+1)} = \\frac{b_i - \\sum_{j=1}^{i-1} a_{ij} x_j^{(t+1)} - \\sum_{j=i+1}^n a_{ij} x_j^{(t)}}{a_{ii}}.\n", "$$\n", "\n", "* Split $\\mathbf{A} = \\mathbf{L} + \\mathbf{D} + \\mathbf{U}$ = (strictly lower triangular) + (diagonal) + (strictly upper triangular) as Jacobi.\n", "\n", "* Take $\\mathbf{M}=\\mathbf{D}+\\mathbf{L}$ (easy to invert, why?) and $\\mathbf{K}=-\\mathbf{U}$:\n", "$$\n", "(\\mathbf{D} + \\mathbf{L}) \\mathbf{x}^{(t+1)} = - \\mathbf{U} \\mathbf{x}^{(t)} + \\mathbf{b}\n", "$$\n", "i.e., \n", "$$\n", "\\mathbf{x}^{(t+1)} = - (\\mathbf{D} + \\mathbf{L})^{-1} \\mathbf{U} \\mathbf{x}^{(t)} + (\\mathbf{D} + \\mathbf{L})^{-1} \\mathbf{b}.\n", "$$\n", "\n", "* Equivalent to\n", "$$\n", "\\mathbf{D}\\mathbf{x}^{(t+1)} = - \\mathbf{L} \\mathbf{x}^{(t+1)} - \\mathbf{U} \\mathbf{x}^{(t)} + \\mathbf{b}\n", "$$\n", "or\n", "$$\n", "\\mathbf{x}^{(t+1)} = \\mathbf{D}^{-1}(- \\mathbf{L} \\mathbf{x}^{(t+1)} - \\mathbf{U} \\mathbf{x}^{(t)} + \\mathbf{b})\n", "$$\n", "leading to the iteration.\n", "\n", "* \"Coordinate descent\" version of Jacobi.\n", "\n", "* Convergence is guaranteed if $\\mathbf{A}$ is striclty row diagonally dominant." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Successive over-relaxation (SOR)\n", "\n", "$$\n", "x_i^{(t+1)} = \\frac{\\omega}{a_{ii}} \\left( b_i - \\sum_{j=1}^{i-1} a_{ij} x_j^{(t+1)} - \\sum_{j=i+1}^n a_{ij} x_j^{(t)} \\right)+ (1-\\omega) x_i^{(t)},\n", "$$\n", "\n", "* $\\omega=1$: Gauss-Seidel; $\\omega \\in (0, 1)$: underrelaxation; $\\omega > 1$: overrelaxation\n", " - Relaxation in hope of faster convergence\n", " \n", "* Split $\\mathbf{A} = \\mathbf{L} + \\mathbf{D} + \\mathbf{U}$ = (strictly lower triangular) + (diagonal) + (strictly upper triangular) as before.\n", "\n", "* Take $\\mathbf{M}=\\frac{1}{\\omega}\\mathbf{D}+\\mathbf{L}$ (easy to invert, why?) and $\\mathbf{K}=\\frac{1-\\omega}{\\omega}\\mathbf{D}-\\mathbf{U}$:\n", "$$\n", "\\begin{split}\n", "(\\mathbf{D} + \\omega \\mathbf{L})\\mathbf{x}^{(t+1)} &= [(1-\\omega) \\mathbf{D} - \\omega \\mathbf{U}] \\mathbf{x}^{(t)} + \\omega \\mathbf{b} \n", "\\\\\n", "\\mathbf{D}\\mathbf{x}^{(t+1)} &= (1-\\omega) \\mathbf{D}\\mathbf{x}^{(t)} + \\omega ( -\\mathbf{U}\\mathbf{x}^{(t)} - \\mathbf{L}\\mathbf{x}^{(t+1)} + \\mathbf{b} )\n", "\\\\\n", "\\mathbf{x}^{(t+1)} &= (1-\\omega)\\mathbf{x}^{(t)} + \\omega \\mathbf{D}^{-1} ( -\\mathbf{U}\\mathbf{x}^{(t)} - \\mathbf{L}\\mathbf{x}^{(t+1)} + \\mathbf{b} )\n", "\\end{split}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conjugate gradient method\n", "\n", "* **Conjugate gradient and its variants are the top-notch iterative methods for solving huge, structured linear systems.**\n", "\n", "* Key idea: solving $\\mathbf{A} \\mathbf{x} = \\mathbf{b}$ is equivalent to minimizing the quadratic function $\\frac{1}{2} \\mathbf{x}^T \\mathbf{A} \\mathbf{x} - \\mathbf{b}^T \\mathbf{x}$ if $\\mathbf{A}$ *is positive definite*.\n", "\n", " [Application to a fusion problem in physics](http://www.sciencedirect.com/science/article/pii/0021999178900980?via%3Dihub):\n", "\n", "| Method | Number of Iterations |\n", "|----------------------------------------|----------------------|\n", "| Gauss-Seidel | 208,000 |\n", "| Block SOR methods | 765 |\n", "| Incomplete Cholesky conjugate gradient | 25 |\n", "\n", "\n", "* We defer the details of CG to the graduate-level Advanced Statistical Computing course." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Numerical examples\n", "\n", "The [`Rlinsolve`](https://cran.r-project.org/web/packages/Rlinsolve/index.html) package implements most commonly used iterative solvers." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Generate test matrix" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Poisson matrix is a block tridiagonal matrix from (discretized) Poisson's equation $\\nabla^2\\psi = f$ in on the plane (with a certain boundary condition). This matrix is sparse, symmetric positive definite and has known eigenvalues.\n", "\n", "Reference:\n", "G. H. Golub and C. F. Van Loan, Matrix Computations, second edition, Johns Hopkins University Press, Baltimore, Maryland, 1989 (Section 4.5.4)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "plot without title" ] }, "metadata": { "image/png": { "height": 420, "width": 420 } }, "output_type": "display_data" } ], "source": [ "get1DPoissonMatrix <- function(n) {\n", " Matrix::bandSparse(n, n, #dimensions\n", " (-1):1, #band, diagonal is number 0\n", " list(rep(-1, n-1), \n", " rep(4, n), \n", " rep(-1, n-1)))\n", "}\n", "get2DPoissonMatrix <- function(n) { # n^n by n^n\n", " T <- get1DPoissonMatrix(n)\n", " eye <- Matrix::Diagonal(n)\n", " N <- n * n ## dimension of the final square matrix\n", " ## construct two block diagonal matrices\n", " D <- bdiag(rep.int(list(T), n))\n", " O <- bdiag(rep.int(list(-eye), n - 1))\n", "\n", " ## augment O and add them together with D\n", " D +\n", " rbind(cbind(Matrix(0, nrow(O), n), O), Matrix(0, n, N)) + \n", " cbind(rbind(Matrix(0, n, ncol(O)), O), Matrix(0, N, n))\n", "}\n", "M <- get2DPoissonMatrix(10)\n", "SparseM::image(M)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "data": { "text/html": [ "0.001968" ], "text/latex": [ "0.001968" ], "text/markdown": [ "0.001968" ], "text/plain": [ "[1] 0.001968" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n <- 50\n", "# Poisson matrix of dimension n^2=2500 by n^2, pd and sparse\n", "A <- get2DPoissonMatrix(n) # sparse\n", "# dense matrix representation of A\n", "Afull <- as.matrix(A)\n", "# sparsity level\n", "nnzero(A) / length(A)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "data": { "image/png": "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\nMNccxRXXSRLcUn/SC12fizq64zf1qOFIJyZw4UgDkDldL24zDY7/+Z//aYOTC496U2AzcuOX\nq6urs5Nb6Kx4uuikFLGLzoKoi34O3AQSOnOdW2LLu7L6nt68tqlFZ73TGe9ilzvvvDNQ0HXb\naDgyp2XGhSOdICJ2wg4tmw0LPUYYN1dnHhFAAIFiEGAEqRh6iToigEBoATc7mm4YJiCZU7US\nHkt/uW5sid1Op5X+yle+krC4C1axb7pf4N26RCNerVq1srOU6RTPjz76qH3uRqw0KJhTB22I\n0xntEi36i73WUe/pkyikxQZKnQWu/pKLOtY/ZqLXOvOdhiOdmU0Xnc3t+uuvT1Q04boePXr4\n63UfaqJhRUfqdEQwdjGn/dmXaufCgI4kuiW2vCur79UfIXTlYx815OooUuyio2DatkT9H1tO\nn+v25tQ5f6RRRwF1FjwdNQu6pGMR1i1onSiHAAIIFIIAI0iF0AvUAQEEMirw0Ucf+VMu6y+2\n5pqejO4/0c5if9nU+xCZC/H9L7330o9//GO5//777ZTa9bd3v3zXXx/7Wk/l0xEPDSo6Pbie\nqqejSDqy5Bb9BTnZogFLg5suGh7NhA1xRZ999ln/daLppXNRR78CSZ5oIDn77LP9cKSjZonC\nkYZAPUXQXNtjTw10o3y621ij6upqeyQtp4ueJqnThOuij2vM/Y10cac36nNXVp/rSJZb5s+f\n757GlfdX1ntyzz33+HVx4VOnbw96ip1OKf7www/bvWo4MtfHJQxHubAI4lav+bxEAAEEClqA\ngFTQ3UPlEECgKQH9Rfa3v/2t/dKbgeovzL169bI3y9RtzUX1YmZra2o3ab+vvzjrvWt00V90\nzYx19ga15mJ20fsZ6bUhGlD0vjqpLHrvH92/nlKn1wppYNEgo6/dUv80QLfePeq9jtxyxRVX\n2Bvr6siHjlzo9VG66D2FXDtc2aCPYeuogVHrpF/uOpzGjmVm7fNHv/SUN7XVdbFfer8kN1K2\nYsUKMRNByK233moDjwYKM+mFPYSeBufszAQYdp32jd4gVm86rJ8jPYVNl8svv9w+6j96fZm7\nNu13v/udmMk17E15NRDronZ6DVlji96H69/+7d9sET1VTe9t5U551Hsr6ShZY8vbb78tN998\ns19EP+86khbrYKa5t+9n0yKMm19ZniCAAALFIGD+ssaCAAIIFJVA7Cx25uesP3tX/ec6hbIZ\ndYhrW1Oz2E2cODGuvNtn7FThWkCnhNb3dFY5t/ztb3+LmzLbXH/k3xNJy5lJAVzRuCm0x44d\n66/XJzqrmzuuufjevqez2Zlfdv31eu+f2Cm7dQa99evX27LmlDu/3MiRI+06/UenZj733HP9\n99wx3KNOTa73SXJL7Cx2ma6jHiPMNN9mVDBuFjpX5/qPOruaLjrNuxk189tqAqX/3Jzm6On9\nkNxiJtPwTOjx34/dp06frrPExS6xU67HltXnsVO5x27jnutsh/q5dNuZ69XsW7H3V9Ipv82I\nodukwaMJfP72bj/1H3W2PbdkyyKsm6sPjwgggEChCzCCZP5XYUEAgWgI6F/LTXCwkxBMmjTJ\n/iU+dtKFbLdSZ4LT0QCdmc0EItHRGb3AX68r0euGhgwZknIVzLTUdvTDjU7opAsmENn9nXba\naWLCWcJTrGIPqD56ep6OXuhpWW7RU7z02iWdnEFHI1JdMlHHZMfWa6/M1OnJ3m6wXkdyXnnl\nFf9aMPOfsR11M4FHdCIDna3QLdp+c6NWUUc365qO0Gl7zPTd/vVHrrzOAKizDMZ+tvS6LV03\nZswYVyzho4781NbW2ve0rAmw9vn3vvc9fxIOnWUv0amDboc6OhlmyZZFWLcwdaYsAgggkE+B\nMk1w+awAx0YAAQSiKKBTfOvMdho49PqfTC56WqGGIw08eupe7Kx3YY6jAU4netBrcTTQZXLJ\nVB0zUSdtp56Op33hpnBPtl+91ktPzdOyei1ZU4tef6P/jeppd0Gu02pqf9l+P1sWYd2y3U72\njwACCKQjQEBKR49tEUAAAQQQQAABBBBAIFICnGIXqe6kMQgggAACCCCAAAIIIJCOAAEpHT22\nRQABBBBAAAEEEEAAgUgJEJAi1Z00BgEEEEAAAQQQQAABBNIRICClo8e2CCCAAAIIIIAAAggg\nECkBAlKkupPGIIAAAggggAACCCCAQDoCBKR09NgWAQQQQAABBBBAAAEEIiVAQIpUd9IYBBBA\nAAEEEEAAAQQQSEeAgJSOHtsigAACCCCAAAIIIIBApAQISJHqThqDAAIIIIAAAggggAAC6QgQ\nkNLRY1sEEEAAAQQQQAABBBCIlAABKVLdSWMQQAABBBBAAAEEEEAgHQECUjp6bIsAAggggAAC\nCCCAAAKREiAgRao7aQwCCCCAAAIIIIAAAgikI0BASkePbRFAAAEEEEAAAQQQQCBSAgSkSHUn\njUEAAQQQQAABBBBAAIF0BAhI6eixLQIIIIAAAggggAACCERKgIAUqe6kMQgggAACCCCAAAII\nIJCOAAEpHT22RQABBBBAAAEEEEAAgUgJEJAi1Z00BgEEEEAAAQQQQAABBNIRICClo8e2CCCA\nAAIIIIAAAgggECkBAlKkupPGIIAAAggggAACCCCAQDoCBKR09NgWAQQQQAABBBBAAAEEIiVA\nQIpUd9IYBBBAAAEEEEAAAQQQSEeAgJSOHtsigAACCCCAAAIIIIBApAQISJHqThqDAAIIIIAA\nAggggAAC6QgQkNLRY1sEEEAAAQQQQAABBBCIlAABKVLdSWMQQAABBBBAAAEEEEAgHQECUjp6\nbIsAAggggAACCCCAAAKREiAgRao7aQwCCCCAAAIIIIAAAgikI0BASkePbRFAAAEEEEAAAQQQ\nQCBSAgSkSHUnjUEAAQQQQAABBBBAAIF0BP4fCsa5wB9xJ7oAAAAASUVORK5CYII=", "text/plain": [ "plot without title" ] }, "metadata": { "image/png": { "height": 420, "width": 420 } }, "output_type": "display_data" } ], "source": [ "SparseM::image(A)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "data": { "text/plain": [ "159.10 kB" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "50.00 MB" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# storage difference\n", "lobstr::obj_size(A) \n", "lobstr::obj_size(Afull)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Matrix-vector muliplication" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Unit: microseconds\n", " expr min lq mean median uq max neval\n", " Afull %*% b 7090.305 7221.748 7606.84783 7395.649 7503.4010 29630.831 100\n", " A %*% b 45.807 62.904 97.95374 87.342 111.3875 799.715 100\n", " cld\n", " b\n", " a \n" ] } ], "source": [ "# randomly generated vector of length n^2\n", "set.seed(456) # seed\n", "b <- rnorm(n^2)\n", "# dense matrix-vector multiplication\n", "res <- microbenchmark::microbenchmark(Afull %*% b, A %*% b)\n", "print(res)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dense solve via Cholesky" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [], "source": [ "# record the Cholesky solution\n", "#Achol <- base::chol(Afull) # awfully slow\n", "Achol <- Matrix::Cholesky(A) # sparse Cholesky" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [], "source": [ "# two triangular solves; 2n^2 flops\n", "#y <- solve(t(Achol), b) \n", "#xchol <- solve(Achol, y)\n", "xchol <- solve(Achol, b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Jacobi solver\n", "\n", "It seems that Jacobi solver doesn't give the correct answer." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "* lsolve.jacobi : Initialiszed.\n", "\n", "* lsolve.jacobi : computations finished.\n", "\n" ] }, { "data": { "text/html": [ "0.191240073970287" ], "text/latex": [ "0.191240073970287" ], "text/markdown": [ "0.191240073970287" ], "text/plain": [ "[1] 0.1912401" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xjacobi <- Rlinsolve::lsolve.jacobi(A, b)\n", "Matrix::norm(xjacobi$x - xchol, 'F') / Matrix::norm(xchol, 'F')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Documentation](https://cran.r-project.org/web/packages/Rlinsolve/Rlinsolve.pdf) reveals that the default value of `maxiter` is 1000. A couple trial runs shows that 5000 Jacobi iterations are required to get an \"accurate enough\" solution." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "* lsolve.jacobi : Initialiszed.\n", "\n", "* lsolve.jacobi : computations finished.\n", "\n" ] }, { "data": { "text/html": [ "0.00180909266618322" ], "text/latex": [ "0.00180909266618322" ], "text/markdown": [ "0.00180909266618322" ], "text/plain": [ "[1] 0.001809093" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xjacobi <- Rlinsolve::lsolve.jacobi(A, b, maxiter=5000)\n", "Matrix::norm(xjacobi$x - xchol, 'F') / Matrix::norm(xchol, 'F')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "data": { "text/html": [ "4690" ], "text/latex": [ "4690" ], "text/markdown": [ "4690" ], "text/plain": [ "[1] 4690" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xjacobi$iter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Gauss-Seidel" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "* lsolve.gs : Initialiszed.\n", "\n", "* lsolve.gs : computations finished.\n", "\n" ] }, { "data": { "text/html": [ "0.00181178404518907" ], "text/latex": [ "0.00181178404518907" ], "text/markdown": [ "0.00181178404518907" ], "text/plain": [ "[1] 0.001811784" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Gauss-Seidel solution is fairly close to Cholesky solution after 5000 iters\n", "xgs <- Rlinsolve::lsolve.gs(A, b, maxiter=5000)\n", "Matrix::norm(xgs$x - xchol, 'F') / Matrix::norm(xchol, 'F')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "data": { "text/html": [ "1548" ], "text/latex": [ "1548" ], "text/markdown": [ "1548" ], "text/plain": [ "[1] 1548" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xgs$iter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SOR" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "* lsolve.ssor : Initialiszed.\n", "\n", "* lsolve.ssor : computations finished.\n", "\n" ] }, { "data": { "text/html": [ "0.00178862224036" ], "text/latex": [ "0.00178862224036" ], "text/markdown": [ "0.00178862224036" ], "text/plain": [ "[1] 0.001788622" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# symmetric SOR with ω=0.75\n", "xsor <- Rlinsolve::lsolve.ssor(A, b, w=0.75, maxiter=5000)\n", "Matrix::norm(xsor$x - xchol, 'F') / Matrix::norm(xchol, 'F')" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "data": { "text/html": [ "1303" ], "text/latex": [ "1303" ], "text/markdown": [ "1303" ], "text/plain": [ "[1] 1303" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xsor$iter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Conjugate Gradient" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "* lsolve.cg : Initialiszed.\n", "\n", "* lsolve.cg : preprocessing finished ...\n", "\n", "* lsolve.cg : convergence was well achieved.\n", "\n", "* lsolve.cg : computations finished.\n", "\n" ] }, { "data": { "text/html": [ "9.38725576904002e-06" ], "text/latex": [ "9.38725576904002e-06" ], "text/markdown": [ "9.38725576904002e-06" ], "text/plain": [ "[1] 9.387256e-06" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# conjugate gradient\n", "xcg <- Rlinsolve::lsolve.cg(A, b)\n", "Matrix::norm(xcg$x - xchol, 'F') / Matrix::norm(xchol, 'F')" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [ { "data": { "text/html": [ "119" ], "text/latex": [ "119" ], "text/markdown": [ "119" ], "text/plain": [ "[1] 119" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xcg$iter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* A basic tenet in numerical analysis: \n", "\n", "> **The structure should be exploited whenever possible in solving a problem.** " ] } ], "metadata": { "@webio": { "lastCommId": null, "lastKernelId": null }, "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "4.2.2" }, "toc": { "colors": { "hover_highlight": "#DAA520", "running_highlight": "#FF0000", "selected_highlight": "#FFD700" }, "moveMenuLeft": true, "nav_menu": { "height": "143px", "width": "252px" }, "navigate_menu": true, "number_sections": false, "sideBar": true, "skip_h1_title": true, "threshold": 4, "toc_cell": true, "toc_position": { "height": "443.5px", "left": "0px", "right": "796px", "top": "67px", "width": "164px" }, "toc_section_display": "block", "toc_window_display": true, "widenNotebook": false } }, "nbformat": 4, "nbformat_minor": 4 }