{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n" ], "text/plain": [ "HTML{String}(\" \\n\")" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "HTML{String}(\"\")" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "HTML{String}(\"\")" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ " \n" ], "text/plain": [ "HTML{String}(\" \\n\")" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "using Polynomials, PyPlot, Interact\n", "# force IJulia to display as LaTeX rather than HTML\n", "Base.mimewritable(::MIME\"text/html\", ::Poly) = false" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Eigenvalues: The Key Idea\n", "\n", "If we can find a solution $x \\ne 0$ to\n", "\n", "$$\n", "Ax = \\lambda x\n", "$$\n", "\n", "then, for this vector, the matrix $A$ **acts like a scalar**. $x$ is called an **eigenvector** of $A$, and $\\lambda$ is called an **eigenvalue**.\n", "\n", "In fact, for an $m \\times m$ matrix $A$, we typically find $m$ linearly independendent eigenvectors $x_1,x_2,\\ldots,x_m$ and $m$ corresponding eigenvalues $\\lambda_1, \\lambda_2, \\ldots, \\lambda_m$. Such a matrix is called **diagonalizable**. Most matrices are diagonalizable; we will deal with the rare \"defective\" (non-diagonalizable) case later.\n", "\n", "Given such a **basis of eigenvectors**, the key idea for using them is:\n", "\n", "1. Take any vector $x$ and expand it in this basis: $x = c_1 x_1 + \\cdots c_m x_n$, or $x = Xc$ or $c = X^{-1}x$ where $X$ is the matrix whose *columns are the eigenvectors*.\n", "\n", "2. For each eigenvector $x_k$, the matrix $A$ acts like a scalar $\\lambda_k$. Multiplication or division corresponds to multiplying/dividing $x_k$ by $\\lambda_k$. **Solve your problem for each eigenvector by treating A as the scalar λ**.\n", "\n", "3. Add up the solution to your problem (sum the basis of the eigenvectors). That is, multiply the new coefficients by $X$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The characteristic polynomial\n", "\n", "To *find* the eigenvalues, one approach is to realize that $Ax = \\lambda x$ means:\n", "\n", "$$\n", "(A - \\lambda I) x = 0 \\, ,\n", "$$\n", "\n", "so the matrix $A - \\lambda I$ is **singular for any eigenvalue λ**. This corresponds to the determinant being zero:\n", "\n", "$$\n", "p(\\lambda) = \\det(A - \\lambda I) = 0\n", "$$\n", "\n", "where $p(\\lambda)$ is the **characteristic polynomial of A: a polynomial of degree m** if $A$ is $m \\times m$. The **roots of this polynomial are the eigenvalues λ**.\n", "\n", "A polynomial of degree $m$ has at most $m$ roots (possibly complex), and typically has $m$ distinct roots. **This is why most matrices have $m$ distinct eigenvalues/eigenvectors**, and are therefore **diagonalizable**.\n", "\n", "For example, let's plot the $\\det(A - \\lambda I)$ for a 4×4 matrix $A$. The result is a *quartic* curve whose roots are the four eigenvalues (computed by the built-in `eigvals` function):" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4-element Array{Float64,1}:\n", " 0.1\n", " 0.2\n", " 0.4\n", " 0.5" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# some \"random\" matrix:\n", "A = [ 0.325 -0.075 0.075 -0.075\n", " 0.025 0.225 -0.025 -0.275\n", " 0.15 -0.05 0.25 -0.05 \n", " -0.1 -0.1 0.1 0.4 ]\n", "\n", "λ = eigvals(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(I admit it: $A$ was not chosen at random to have such special eigenvalues.)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAHGCAYAAACCUgTdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3XlcVPX+P/DXsA37JgriiogJWpqiBLmgJuJS2iZmopV6NfVe+Xq9pplLVpCWVldTq2vWLVNL7Go39YK5pIK4Ia65oqiICyLgAgic3x+f3xmcWGRghnNmeD0fj3mc4+HM4T04cF7z+XzO52gkSZJARERERI9kpXQBREREROaCwYmIiIiomhiciIiIiKqJwYmIiIiomhiciIiIiKqJwYmIiIiomhiciIiIiKqJwYmIiIiomhiciIiIiKqJwYlI5b755htoNBocOHBA6VIMduLECcydOxcXLlwwyfHnzp0LjUZj0HPu3buHuXPnYseOHeW+Jv+sTVVvbdXk9aqZRqPB3Llz6/y5RLXB4EREJnPixAm8++67JgsiY8aMQXJyskHPuXfvHt59990Kg9PAgQORnJyMxo0bG6lCqkpycjLGjBmjdBlEBrFRugAiUod79+7B0dFR6TKqRa61adOmaNq0qdGO27BhQzRs2NBox6OqPfXUU0qXQGQwtjgRKeyPP/7AK6+8Am9vb2i1WjRv3hwjR45EYWGh3n75+fl488034eXlhQYNGuCFF15AZmam3j5r165FREQEGjduDAcHBwQGBmL69Om4e/eu3n6vvfYanJ2dcfToUURERMDFxQV9+vQBACQmJmLw4MFo2rQp7O3t0bp1a4wbNw43b940qPZvvvkGL7/8MgCgV69e0Gg00Gg0+Oabb3TP37p1K/r06QNXV1c4Ojri6aefxm+//ab3PeTuqUOHDuGll16Ch4cH/P399b72sG3btiE8PBwNGjSAg4MDmjdvjhdffBH37t3DhQsXdMHo3Xff1dX02muvAai8q27Lli3o06cP3Nzc4OjoiMDAQMTFxVX2X6p3rMTERLz++uvw9PSEk5MTnn32WZw/f77c/l9//TU6dOgAe3t7eHp64vnnn8fJkyer/B6jR4+Gp6cn7t27V+5rvXv3Rrt27XT/1mg0mDRpEr777jsEBgbC0dERHTp0wH//+99yz929ezf69OkDFxcXODo6IiwsDL/++muFr2/btm0YO3YsGjRoAFdXV4wcORJ3795FVlYWhg4dCnd3dzRu3BhTp07FgwcP9I7x5+62GzduYMKECQgKCoKzszMaNWqE3r17Y9euXVX+HIjqEoMTkYLS0tLQpUsX7N27F/PmzcPmzZsRFxeHwsJCFBUV6e07ZswY2Nra4ocffsCCBQuwY8cOjBgxQm+fM2fOYMCAAVixYgW2bNmCmJgY/Pjjj3j22WfLfe+ioiI899xz6N27NzZs2IB3330XAHDu3DmEhoZi2bJlSEhIwOzZs5GSkoJu3brpnfgeVfvAgQMRGxsLAPj888+RnJyM5ORkDBw4EADw/fffIyIiAq6urvj222/x448/wtPTE/369SsXngDghRdeQOvWrfHTTz9h+fLlFf48L1y4gIEDB8LOzg5ff/01tmzZgg8//BBOTk4oKipC48aNsWXLFgAidMg1zZo1q9L/oxUrVmDAgAEoLS3F8uXL8csvv+Bvf/sbLl++XOlzHjZ69GhYWVnhhx9+wKeffop9+/YhPDwct2/f1u0TFxeH0aNHo127dli/fj0+++wzHDlyBKGhoThz5kylx548eTJycnLwww8/6G0/ceIEtm/fjokTJ+pt//XXX7FkyRLMmzcP8fHxuoD2cJDbuXMnevfujdzcXKxYsQKrV6+Gi4sLnn32Waxdu7ZcDWPGjIGbmxvWrFmDd955Bz/88APGjh2LgQMHokOHDli3bh1GjRqFhQsXYvHixVX+rG7dugUAmDNnDn799VesXLkSrVq1Qnh4eIVdq0SKkIhIMb1795bc3d2l69evV7rPypUrJQDShAkT9LYvWLBAAiBdvXq1wueVlpZKDx48kHbu3CkBkNLS0nRfGzVqlARA+vrrr6usTz7GxYsXJQDShg0bDKr9p59+kgBI27dv19t+9+5dydPTU3r22Wf1tpeUlEgdOnSQunbtqts2Z84cCYA0e/bscseXvyZbt26dBEA6fPhwpTXduHFDAiDNmTOn3Nfkn3V6erokSZKUn58vubq6St26dZNKS0srPWZF5GM9//zzetv37NkjAZDef/99SZIkKScnR3JwcJAGDBigt19GRoak1Wql4cOHV/p6JUmSevbsKXXs2FFv25tvvim5urpK+fn5um0AJG9vbykvL0+3LSsrS7KyspLi4uJ0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OD7e6EyISAuTSd0Db+BAozMhP8RxRyIiIiKN2DgRERERacTGiYiIiEgjNk5EREREGrFxIiIiItKIjRMRERGRRmyciIiIiDRi40RERESkERsnIiIiIo3YOBERERFpxMaJiIiISCM2TkREREQasXEiIiIi0oiNExEREZFGVqMT6OpEBABQWVlpcCZERESkVfPf7ea/41qxceqgqqoqAEBsbKzBmRAREZFeVVVVCA0N1RxvEr2tFjlpampCWVkZQkJCYDKZOu37VlZWIjY2FqdOnULPnj077fv6I9ZKH9ZLO9ZKO9ZKO9ZKO0/WSkRQVVWFPn36wGzWPnOJI04dZDabERMT47Hv37NnT+5YGrFW+rBe2rFW2rFW2rFW2nmqVnpGmppxcjgRERGRRmyciIiIiDSyPPHEE08YnQS5ZrFYMH78eFitPKN6JayVPqyXdqyVdqyVdqyVdr5WK04OJyIiItKIp+qIiIiINGLjRERERKQRGyciIiIijdg4EREREWnExslAa9asQb9+/RAYGIiRI0fi4MGDbuO3bduGhIQE2O12JCQkYMeOHV7K1Hh6anX8+HH87Gc/Q9++fWEymbBy5UovZuob9NRr7dq1GDduHHr16oVevXph4sSJyMnJ8WK2xtJTq+3btyMxMRFXX301goODMXz4cGzcuNGL2RpL7zGr2aZNm2AymXDnnXd6OEPfoadWb7zxBkwmU6vHxYsXvZixcfRuV+fOncPcuXMRFRWFwMBADBkyBLt27fJStgCEDLFp0yYJCAiQtWvXyokTJ+Shhx6S4OBg+fLLL13GZ2dni8VikczMTCkoKJDMzEyxWq3y73//28uZe5/eWuXk5MjChQvlnXfekcjISHnxxRe9nLGx9NbrnnvukVdeeUVyc3OloKBA7rvvPgkNDZXTp097OXPv01urffv2yfbt2+XEiRNy8uRJWblypVgsFsnKyvJy5t6nt1bNSktLJTo6WsaNGyd33HGHl7I1lt5arV+/Xnr27Clff/2106M70Fur2tpaSUxMlClTpsjHH38spaWlcvDgQcnLy/NazmycDDJq1Ch54IEHnJ6Lj4+XjIwMl/F333233HrrrU7PTZ48WX75y196LEdfobdWLcXFxXW7xqkj9RIRaWhokJCQENmwYYMn0vMpHa2ViMiNN94oixYt6uzUfE57atXQ0CDJycny+uuv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", "text/plain": [ "PyPlot.Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "PyObject Text(0.5,1,'characteristic polynomial')" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ξ = linspace(0,0.6,100)\n", "plot(ξ, [det(A - λ*I) for λ in ξ], \"r-\")\n", "plot(ξ, zeros(ξ), \"k--\")\n", "plot(λ, zeros(λ), \"bo\")\n", "xlabel(L\"\\lambda\")\n", "ylabel(L\"\\det(A - \\lambda I)\")\n", "title(\"characteristic polynomial\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Eigenvalue example:\n", "\n", "For example, consider the matrix\n", "\n", "$$\n", "A = \\begin{pmatrix} 1 & 1 \\\\ -2 & 4 \\end{pmatrix}\n", "$$\n", "\n", "whose eigenvalues are $\\lambda = \\{2,3\\}$:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2×2 Array{Int64,2}:\n", " 1 1\n", " -2 4" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = [ 1 1\n", " -2 4 ]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Float64,1}:\n", " 2.0\n", " 3.0" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eigvals(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The characteristic polynomial is\n", "\n", "$$\n", "\\det(A - \\lambda I) = \\det \\begin{pmatrix} 1 - \\lambda & 1 \\\\ -2 & 4 - \\lambda \\end{pmatrix} = (1 - \\lambda)(4 - \\lambda) - (1)(-2) = \\lambda^2 - 5\\lambda + 6 = (\\lambda - 2) (\\lambda - 3)\n", "$$\n", "\n", "where we have used high-school algebra to factor the polynomial. Hence its roots are $\\lambda = \\{2, 3\\}$, as computed above." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Eigenvectors\n", "\n", "Once we have the eigenvalues, finding the eigenvectors is (in principle) easy: **the eigenvectors are just (a basis for) the nullspace**\n", "\n", "$$\n", "N(A - \\lambda I)\n", "$$\n", "\n", "when $\\lambda$ is an eigenvalue.\n", "\n", "For example, with the matrix above, let's take the eigenvalue $\\lambda_1 = 2$:\n", "\n", "$$\n", "A - 2I = \\begin{pmatrix} -1 & 1 \\\\ -2 & 2 \\end{pmatrix}\n", "$$\n", "\n", "We could go through Gaussian elimination to find the nullspace, but we can see by inspection that the second column is minus the first, hence $x_1 = (1, 1)$ is a basis for the nullspace:\n", "\n", "$$\n", "(A - 2I) x_1 = \\begin{pmatrix} -1 & 1 \\\\ -2 & 2 \\end{pmatrix} \\begin{pmatrix} 1 \\\\ 1 \\end{pmatrix} = \\begin{pmatrix} 0 \\\\ 0 \\end{pmatrix}\n", "$$\n", "\n", "or\n", "\n", "$$\n", "A x_1 = 2 x_1\n", "$$\n", "\n", "as desired. $x_1 = (1, 1)$ is an eigenvector! Let's check:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Int64,1}:\n", " 2\n", " 2" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A * [1, 1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the other eigenvalue, $\\lambda = 3$, we get:\n", "\n", "$$\n", "A - 3I = \\begin{pmatrix} -2 & 1 \\\\ -2 & 1 \\end{pmatrix}\n", "$$\n", "\n", "from which it is obvious that a basis for the nullspace is $x_2 = (1, 2)$. Let's check:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Int64,1}:\n", " 3\n", " 6" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A * [1, 2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yup, $A x_2 = 3 x_2$!\n", "\n", "For more complicated cases, of course, we might have to go through elimination to find the nullspace. In practice, though, we alway just let the computer do it. The `eig` function in Julia will return the eigenvalues and eigenvectors:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "([2.0, 3.0], [-0.707107 -0.447214; -0.707107 -0.894427])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "λ, X = eig(A)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Float64,1}:\n", " 2.0\n", " 3.0" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "λ" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2×2 Array{Float64,2}:\n", " -0.707107 -0.447214\n", " -0.707107 -0.894427" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The columns of `X` are indeed the eigenvectors from above, but they are scaled differently (they are normalized to unit length). If we divide each one by its first element, though, we should recover our scaling from above:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Float64,1}:\n", " 1.0\n", " 1.0" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X[:,1] / X[1,1] # first column, with first entry scaled to 1" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Float64,1}:\n", " 1.0\n", " 2.0" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X[:,2] / X[1,2] # second column, with second entry scaled to 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In practice, computing eigenvalues by hand, especially by this method, is even more pointless than doing Gaussian elimination by hand, for reasons explained below, so I will **focus more on the properties of eigenvalues and how to use them than how to compute them.** The computer will give us their values." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "0.4472135954999579" ], "text/plain": [ "0.4472135954999579" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1/sqrt(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Matrix powers: A first look\n", "\n", "If you multiply an eigenvector by $A^n$, it just multiplies the vector by $\\lambda^n$. We will explore this more later, but for now let's try a couple of quick examples:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Int64,1}:\n", " 32\n", " 32" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A^5 * [1,1] # gives 2⁵ * [1,1] = [32, 32]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What if we multiply some *other* vector $y$ by $A^n$? To understand what happens, we **expand *y* in the basis of eigenvectors**. A simple example is:\n", "$$\n", "A^n \\begin{pmatrix} 2 \\\\ 3 \\end{pmatrix} = A^n \\left[ \\begin{pmatrix} 1 \\\\ 1 \\end{pmatrix} + \\begin{pmatrix} 1 \\\\ 2 \\end{pmatrix} \\right]\n", "= 2^n \\begin{pmatrix} 1 \\\\ 1 \\end{pmatrix} + 3^n \\begin{pmatrix} 1 \\\\ 2 \\end{pmatrix} \\approx 3^n \\begin{pmatrix} 1 \\\\ 2 \\end{pmatrix} \\mbox{ for } n \\gg 1.\n", "$$\n", "In this basis **each eigenvector is multiplied by λⁿ**. Furthermore the **term with the biggest |λ| grows fastest** so for large *n* the result is approximately in the corresponding eigenvector direction." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Float64,1}:\n", " 5.15378e47\n", " 1.03076e48" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y = A^100.0 * [2,3]" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Float64,1}:\n", " 5.15378e47\n", " 1.03076e48" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2^100.0 * [1,1] + 3^100.0 * [1,2] # same, but computed with eigenvectors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is approximately a multiple of $(1,2)$, so the second component should be nearly double the first component:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "1.9999999999999993" ], "text/plain": [ "1.9999999999999993" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y[2] / y[1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The same reasoning shows that for *any* vector $z$ that is not a multiple of $(1,1)$, $A^{100}z$ will blow up proportional to $3^{100}$ and will be approximately parallel to $(1,2)$:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Float64,1}:\n", " -1.13383e49\n", " -2.26766e49" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z = A^100.0 * [17,-5]" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "2.0000000000000013" ], "text/plain": [ "2.0000000000000013" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z[2]/z[1] # approximately 2 since z is nearly parallel to (1,2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Transpose: Same eigenvalues!\n", "\n", "One of the properties of determinant is that $\\det A^T = \\det A$. It follows that\n", "$$\\det(A-\\lambda I) = \\det\\left[ (A -\\lambda I)^T \\right] = \\det (A^T - \\lambda I)$$\n", "and therefore $A$ and $A^T$ have the **same eigenvalues!** (They have the **same characteristic polynomial**.)\n", "\n", "Let's check:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Float64,1}:\n", " 2.0\n", " 3.0" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eigvals(A')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yup, same eigenvalues (2 and 3) as for $A$.\n", "\n", "However, $A$ and $A^T$ in general have **different eigenvectors**, because the **left and right nullspaces are not usually the same**. $N(A - \\lambda I) \\ne N(A^T - \\lambda I)$ in general. Here, the eigenvectors are:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2×2 Array{Float64,2}:\n", " 1.0 1.0\n", " -0.5 -1.0" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Y = eigvecs(A')\n", "Y ./ Y[1,:]' # normalize so that the first components are 1, for easier comparison" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that these are different from the (1,1) and (1,2) that we got above.\n", "\n", "As you might guess, the eigenvectors of $A^T$ are sometimes called its **left eigenvectors**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Complex eigenvalues\n", "\n", "If we change the matrix to:\n", "$$\n", "\\begin{pmatrix} 1 & 3 \\\\ -2 & 4 \\end{pmatrix}\n", "$$\n", "we get a characteristic polynomial:\n", "$$\n", "\\det \\begin{pmatrix} 1 - \\lambda & 3 \\\\ -2 & 4 - \\lambda \\end{pmatrix} = (1 - \\lambda)(4 - \\lambda) - (3)(-2) = \\lambda^2 - 5\\lambda + 10\n", "$$\n", "whose roots, from the quadratic formula, are:\n", "$$\n", "\\lambda = \\frac{5 \\pm \\sqrt{5^2 - 40}}{2} = \\frac{5 \\pm \\sqrt{-15}}{2}\n", "$$\n", "which are complex! Let's check:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Complex{Float64},1}:\n", " 2.5+1.93649im\n", " 2.5-1.93649im" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eigvals([1 3\n", " -2 4])" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "2.5 + 1.9364916731037085im" ], "text/plain": [ "2.5 + 1.9364916731037085im" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(5 + sqrt(15)*im) / 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yup, it matches our formula.\n", "\n", "**Eigenvalues may be complex numbers, even for real matrices**. We can't avoid complex numbers for any longer in 18.06!\n", "\n", "(But, for real matrices, they are the [roots of a real polynomial](https://en.wikipedia.org/wiki/Complex_conjugate_root_theorem) and hence come in [complex conjugate pairs](https://en.wikipedia.org/wiki/Complex_conjugate).)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The perils of polynomial roots\n", "\n", "You might think that finding roots of polynomials is we must inevitably find eigenvalues. In fact, although we use the characteristic polynomial to *think* about eigenvalues, in practice they are not used to *compute* them except for tiny matrices.\n", "\n", "In fact, working with the characteristic polynomial is a computational disaster in general, because **roots of polynomials are exponentially sensitive to their coefficients**. Any tiny roundoff error leads to disaster.\n", "\n", "For example, consider the polynomial\n", "\n", "$$\n", "w(x) = (x - 1) (x - 2) (x - 3) \\cdots (x - 10)\n", "$$\n", "whose roots are, obviously, ${1,2,\\ldots,10}$. What happens if we actually multiply this polynomial together and compute the roots from the coefficients?" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$3.6288e6 - 1.062864e7\\cdot x + 1.2753576e7\\cdot x^{2} - 8.4095e6\\cdot x^{3} + 3.41693e6\\cdot x^{4} - 902055.0\\cdot x^{5} + 157773.0\\cdot x^{6} - 18150.0\\cdot x^{7} + 1320.0\\cdot x^{8} - 55.0\\cdot x^{9} + 1.0\\cdot x^{10}$" ], "text/plain": [ "Poly(3.6288e6 - 1.062864e7*x + 1.2753576e7*x^2 - 8.4095e6*x^3 + 3.41693e6*x^4 - 902055.0*x^5 + 157773.0*x^6 - 18150.0*x^7 + 1320.0*x^8 - 55.0*x^9 + 1.0*x^10)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w = prod([Poly([-n, 1.0]) for n = 1:10])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Already, this seems hard: how do we find roots of a high-degree polynomial? More on this below.\n", "\n", "For the moment, we will just use a \"black box\" function `roots` provided by the Polynomials package to \"magically\" get the roots of $w$ from its coefficients:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10-element Array{Float64,1}:\n", " 10.0\n", " 9.0\n", " 8.0\n", " 7.0\n", " 6.0\n", " 5.0\n", " 4.0\n", " 3.0\n", " 2.0\n", " 1.0" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "roots(w)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks good! The roots are what they should be.\n", "\n", "Howevever, suppose we make a *tiny error* in computing the coefficients. Let's multiply each coefficient by $1 + \\epsilon$, where $\\epsilon$ is a *random small number* of root-mean-square value $R$.\n", "\n", "The following code plots the roots in the [complex plane](https://en.wikipedia.org/wiki/Complex_plane) for 100 random perturbations, and lets us vary the magnitude $R$ of the pertubation:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "
\n", "WebIO.mount(this.previousSibling,{"props":{},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"div"},"children":[{"props":{"className":"field"},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"div"},"children":[{"props":{},"nodeType":"Scope","type":"node","instanceArgs":{"imports":{"data":[{"name":"knockout","type":"js","url":"/assetserver/d6df0bcbf61025c952fa7d6260c0502952fc6253-knockout.js"},{"name":"knockout_punches","type":"js","url":"/assetserver/76b9e9b6191c21207f614aefd21121e841930334-knockout_punches.js"},{"name":null,"type":"js","url":"/assetserver/aee18abf5b39fa7dbdb49e13ea37aa8617a93fca-all.js"},{"name":null,"type":"css","url":"/assetserver/b8ef71fc8f8c937f705d60a54c85dd170cf7e73f-style.css"},{"name":null,"type":"css","url":"/assetserver/342c1e68f950ec6d9432ff00342c66dae6d08a65-main.css"}],"type":"async_block"},"id":"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2","handlers":{"_promises":{"importsLoaded":[function (ko, koPunches) {\n", " ko.punches.enableAll();\n", " ko.bindingHandlers.numericValue = {\n", " init : function(element, valueAccessor, allBindings, data, context) {\n", " var stringified = ko.observable(ko.unwrap(valueAccessor()));\n", " stringified.subscribe(function(value) {\n", " var val = parseFloat(value);\n", " if (!isNaN(val)) {\n", " valueAccessor()(val);\n", " }\n", " })\n", " valueAccessor().subscribe(function(value) {\n", " var str = JSON.stringify(value);\n", " if ((str == "0") && (["-0", "-0."].indexOf(stringified()) >= 0))\n", " return;\n", " if (["null", ""].indexOf(str) >= 0)\n", " return;\n", " stringified(str);\n", " })\n", " ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\n", " }\n", " };\n", " var json_data = JSON.parse("{\\"changes\\":0,\\"value\\":-6.5}");\n", " var self = this;\n", " function AppViewModel() {\n", " for (var key in json_data) {\n", " var el = json_data[key];\n", " this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\n", " }\n", " \n", " [this["displayedvalue"]=ko.computed(function () {return this.value().toPrecision(6);},this)]\n", " [this["changes"].subscribe((function (val){!(this.valueFromJulia["changes"]) ? (WebIO.setval({"name":"changes","scope":"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2","id":"ob_02","type":"observable"},val)) : undefined; return this.valueFromJulia["changes"]=false}),self),this["value"].subscribe((function (val){!(this.valueFromJulia["value"]) ? (WebIO.setval({"name":"value","scope":"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2","id":"ob_01","type":"observable"},val)) : undefined; return this.valueFromJulia["value"]=false}),self)]\n", " \n", " }\n", " self.model = new AppViewModel();\n", " self.valueFromJulia = {};\n", " for (var key in json_data) {\n", " self.valueFromJulia[key] = false;\n", " }\n", " ko.applyBindings(self.model, self.dom);\n", "}\n", "]},"changes":[(function (val){return (val!=this.model["changes"]()) ? (this.valueFromJulia["changes"]=true, this.model["changes"](val)) : undefined})],"value":[(function (val){return (val!=this.model["value"]()) ? (this.valueFromJulia["value"]=true, this.model["value"](val)) : undefined})]},"systemjs_options":null,"observables":{"changes":{"sync":false,"id":"ob_02","value":0},"value":{"sync":true,"id":"ob_01","value":-6.5}}},"children":[{"props":{"attributes":{"style":"display:flex; justify-content:center; align-items:center;"}},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"div"},"children":[{"props":{"attributes":{"style":"text-align:right;width:18%"}},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"div"},"children":[{"props":{"className":"interact ","style":{"padding":"5px 10px 0px 10px"}},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"label"},"children":["logR"]}]},{"props":{"attributes":{"style":"flex-grow:1; margin: 0 2%"}},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"div"},"children":[{"props":{"max":-1.0,"min":-12.0,"attributes":{"type":"range","data-bind":"numericValue: value, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}"},"step":0.1,"className":"slider slider is-fullwidth","style":{}},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"input"},"children":[]}]},{"props":{"attributes":{"style":"width:18%"}},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"div"},"children":[{"props":{"attributes":{"data-bind":"text: displayedvalue"}},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"p"},"children":[]}]}]}]}]},{"props":{},"nodeType":"Scope","type":"node","instanceArgs":{"imports":{"data":[],"type":"async_block"},"id":"scope-22e84a9d-460c-48b5-9440-7011ba7ef010","handlers":{"obs-output":[function (updated_htmlstr) {\n", " var el = this.dom.querySelector("#out");\n", " WebIO.propUtils.setInnerHtml(el, updated_htmlstr);\n", "}]},"systemjs_options":null,"observables":{"obs-output":{"sync":false,"id":"ob_06","value":"<div class='display:none'></div><unsafe-script style='display:none'>\\nWebIO.mount(this.previousSibling,{&quot;props&quot;:{&quot;attributes&quot;:{&quot;style&quot;:&quot;display:flex; justify-content:center; align-items:center;&quot;}},&quot;nodeType&quot;:&quot;DOM&quot;,&quot;type&quot;:&quot;node&quot;,&quot;instanceArgs&quot;:{&quot;namespace&quot;:&quot;html&quot;,&quot;tag&quot;:&quot;div&quot;},&quot;children&quot;:[{&quot;props&quot;:{&quot;setInnerHtml&quot;:&quot;&lt;img src=&#39;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApsAAAHHCAYAAADwNpN1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xd8FGX+B/DPboAkJhBaqBt6UFCaEKRIkRbxRLAgckiRSNFTmiKg3gk2qpyeiAoEEP2JNAsIJ1ICigQNYDwLeCAtqyCokABSs8/vj7lZtszszobMJM/k83699gV5dnbmeabsfPeZpziEEAJERERERCZwFnUGiIiIiMi+GGwSERERkWkYbBIRERGRaRhsEhEREZFpGGwSERERkWkYbBIRERGRaRhsEhEREZFpGGwSERERkWkYbBIRERGRaRhsEhEREZFpGGwSERERkWmKdbC5fft2TJ48GadOnbJ828uWLcP111+P2NhYOBwOZGdnh/3Ms88+i8aNG8Pj8ViQQ32nT5/GE088gR49eiAxMREOhwOTJ0/WXDY9PR01a9bE2bNnTctPcdkvQGT7BgDOnDmDMWPGoEaNGoiJiUHz5s3x3nvv+S1jxT4EgMWLF8PhcODQoUMAQl8fkydPhsPhwG+//WZqngqb3nVXkOuxuDD7e8yqY61up7jkR70e1FepUqVQvXp13Hfffdi3b1+hbSc7Oxt/+ctfUKtWLcTGxqJixYpo27Yt3nnnHUOfj/Q7Z9u2bbjttttQoUIFxMbGIjk5Gc8995zfMps3b8bQoUNx3XXXIS4uDjVr1kTv3r2xa9euAi0HAEOGDPHbn4GvHTt2FGhZo2WKZFkj38sF2fdGt//111+jT58+qFGjBq655hpcd911ePbZZ/Hnn3/6LWf03Il0f3711VdITU1F2bJlER8fj1tuuQVffPFFyHIVRKT5CqXYB5tTpkyxPNg8ceIEBg4ciPr16+OTTz5BZmYmGjZsGPIzv/zyC2bMmIFnn30WTmfR7tbff/8d8+bNw4ULF9CnT5+Qyw4ePBhxcXGYMWOGKXkpTvsFiGzfAMBdd92Ft956C8888wz+/e9/IyUlBf3798e7777rXcbsfaj6y1/+gszMTFSvXh1A0V0fZtG77gpyPRYndjtOxc2iRYuQmZmJjRs34pFHHsHq1atx88034+TJk4Wy/lOnTiEpKQkvvvgi1q1bhyVLlqBOnToYOHAgnn/++bCfj+Q7591330WnTp2QkJCAJUuWYN26dZgwYQKEEH7Lvf766zh06BBGjx6NdevW4ZVXXsHx48fRpk0bbN68OeLlAODvf/87MjMzg16VK1dGzZo1kZKSUqBljZYpkmWNfC9Huu+Nbv+HH35Au3btcOjQIbz88sv4+OOPcd999+HZZ59F//79/dZn9NyJZH9mZWWhY8eOOHfuHN5++228/fbbOH/+PLp27YrMzMywZYxEJPkKSxSCs2fPFsZqgsycOVMAEAcPHjRl/Xq2bdsmAIhly5YZ/swTTzwhatasKfLz803MmTEej0d4PB4hhBAnTpwQAMQzzzyju/ysWbNEQkKCKcexOO0XISLbN2vXrhUAxLvvvuuX3r17d1GjRg1x+fJlb5qZ+1BPqOvjmWeeEQDEiRMnLMvP1dK77gpyPRYH6rlg1veYun6rjrW6HaPLmZ2fRYsWCQAiKyvLL33KlCkCgFi4cKGp27/ppptEUlJS2OWMfue43W4RFxcnHnroobDr/PXXX4PSTp8+LapWrSq6du0a8XJ6tmzZIgCIp59+ukDLRlImo8tG8r0cyfe90e0/9dRTAoDYv3+/X/rw4cMFAPHHH3+E/LwQxs4dvX2fmpoqqlat6nevycvLE5UrVxbt2rULu+2rFck54Sviqib1Ecnu3btxzz33oEKFCqhfvz4Apfq5a9euKFu2LK655hq0a9cOa9eu1VxPuGUnT56M8ePHAwDq1q3rrbbdsmULTpw4geHDhyMpKQnR0dFITExE+/btsXHjxrD5D7fdIUOG4OabbwYA9OvXDw6HA507dw65zosXLyI9PR1//etf/Wrvjh49ivj4eNx3331+y3/88ccoXbo0nnrqqbD5LQh1Xxk1YMAA5OXlaT6GuBp6+wWQY9988MEHiI+PR9++ff3SH3jgAfzyyy/48ssvvWlG9+H3338Ph8OBFStWeNN27doFh8OB66+/3m/ZO+64Ay1btvT+7fsYPdT14evXX39F//79kZCQgKpVq2Lo0KHIzc01VP69e/eif//+qFq1KqKjo1GrVi0MGjQIFy5c8C5j9Jrft28f/vrXv6JKlSqIjo5Go0aN8Nprr3nf17vuQl2PBf0eUL/Dvv76a9x1110oV64cEhIScP/99+PEiRMR5913nYHfi6GO05AhQ1CnTh3d/BlZv6+cnJyw5TFSFgBYu3YtmjdvjujoaNStWxezZs0KuU+1hMvP559/DofDgaVLlwZ9dsmSJXA4HMjKyop4u61atQKgnPtmqly5MkqVKhV2OaPfOQsWLMDZs2cxYcKEsMtWqVIlKC0+Ph6NGzdGTk5OxMvpSU9Ph8PhwNChQwu0bCRlMrpsJN/LkXzfG91+6dKlAQAJCQl+6eXLl4fT6USZMmXCbsvIuaO377/44gt07twZ11xzjTetbNmy6NixI7Zv346jR4/6LW/0mjcqknPCT6RRrfqrtXbt2mLChAliw4YN4sMPPxRbtmwRpUuXFi1bthTLli0TH374oejRo4dwOBzivffeC4qMwy2bk5MjHn30UQFAvP/++yIzM1NkZmaK3NxckZqaKhITE8W8efPEli1bxIcffij+8Y9/BG0nkJHt7t+/X7z22msCgHjxxRdFZmam+P7770Ou97PPPhMAxLp164LemzJlinA4HGLnzp1CCCEyMjJETEyMePTRRw3v86thpGZTCCEaNWok7rrrrkLddqj9IkTx3zdt2rQRKSkpQenfffedACDefPNNv3Sj+7B69epi+PDh3r+nTZsmYmNjBQDx888/CyGEuHTpkihXrpx44oknvMupNTkHDx4MeX0IceU6vfbaa8U//vEPsWHDBjF79mwRHR0tHnjggbB5zM7OFvHx8aJOnTrijTfeEJs2bRLvvPOOuPfee0VeXp4Qwtj1JIQQ33//vUhISBBNmjQRS5YsEZ9++ql47LHHhNPpFJMnTxZC6F93oa7Hgn4P+H6HjR8/Xqxfv17Mnj1bxMXFiRYtWoiLFy9GlPfAdfp+L4Y6ToMHDxa1a9fWzZ9enn3XH0l5jJZl48aNIioqStx8883i/fffFytWrBApKSmiVq1aEdVsGtm/LVq0EO3btw9aR0pKiua150uvZnPOnDkCgFi1apVfusfjEZcuXTL00pKfny8uXbokjh8/Ll577TVRqlQp8cYbb4TdH75Cfed06dJFVKxYUXzyySeiWbNmIioqSiQmJooRI0Z4r+tQTp06JRISEsSdd95ZaMvFxsaKbt26Gdq21rKRlMnospF+L6vCfd8b3f7BgwdF+fLlxT333CN++uknkZeXJ9asWSMSEhJ0712Rnjuh9n2ZMmXEoEGDgtL79+8vAIj169d704xe80ZFck4EKnCw+Y9//MMvvU2bNqJKlSri9OnT3rTLly+LG264QbhcLm9VdiTL6j1+io+PF2PGjIk064a3m5GRIQCIFStWGFrv9OnTBQBx7NixoPfOnj0ratSoIbp27Sq++uorUbZsWfHAAw/47Q8zGQ02BwwYIKpWreqX5vF4xMmTJ4MeDZ87d06cPHnS73GFEELk5uZ6AxEhQu8XIYr/vklOThapqalB6b/88os3+PGltQ+13H///aJevXrev7t16yaGDRsmKlSoIN566y0hhBBffPGFACA+/fRT73K+waYQxh6jz5gxwy/94YcfFjExMWH3cZcuXUT58uXF8ePHdZcxej2lpqYKl8sVdHN55JFHRExMjPexk951p5de0O8Bdd+MHTvWL/3//u//BADxzjvveNOM5l3ve1EI/eNUkGBTa/1Gy2O0LDfddJOoUaOGOHfunHeZvLw8UbFixYiCTSP7Vz2nv/76a2/aV199JQB4rwU96md37NghLl26JE6fPi0++eQTUa1aNdGxY8egoFE9j4y8tK6pESNGeN8vU6aMmDt3bth9ESjUd861114rYmJiRNmyZcWLL74oMjIyxIwZM0RsbKxo37592Gt2wIABolSpUt4f71e73Ouvvy4AiKVLl4Ytl96ykZTJ6LKRfi+rwn3fR5LXPXv2iOuuu87vnBk1apTuMYr03Am175s3by4aNmzo1zTt0qVLol69ekHNC4xe80ZFck4EKnCw+c0333jTzpw5IxwOh3j44YeDllcDjj179kS8rN6XtHojfO6550RmZqbfL2U9kWw30mBz9OjRwuFwBAVfqoULFwoAIi4uTtx77726y/lu28jL9wtaj9Fgc+zYscLhcPh9QR89elQAEIMHD/ZbVj0HMjMz/dKrVq0qmjVr5v073H4Ronjvm+TkZHHrrbcGpatfalOnTvVL19qHWtSb5IEDB8S5c+dETEyMWLVqlbjrrrvE/fffL4RQan2jo6PFn3/+GfS5SILNvXv3+qW/8cYbIX8ACKH8CIiKivKrfQ1k9Ho6d+6cKFWqlHj00UeDao/WrVvnV/MdabBZkO8BIa7sm8Cb7aVLl0SpUqVEWlqaEEJElHet70VVYQabWus3Uh6jZTlz5oxwOp3ikUceCdrO4MGDIwo2w+1fIYQ4f/68qFKlinjwwQe9aQMHDhSJ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OHdO7PMjMfD+rQ9Td6MTEZmN1sx0kRMxx9AALXa7ePVDiegmU3ejExGZkfvMdJETTaD6Ekii1Q+tDZtNOf82bcS/jkRa2LJJRCQgx+pCZkhQPK0XLknit9xqycpShkT066f8mZVldERE+mCySUREhqpuvXAzMltVASJP/OifNhER+SrHeuHuZFlJysyWhHmqKkBkNkw2iYjIJ7iUQK7EjBOEtNa7N+vYVPJvTDaJiMgnaI3dtFjMl4SZsaoAkRbORiciIp+wbZvSbe5KkoAFC8yZhJmtqgCRFiabRERkOMeEGfdkU5aVtdEbN1aSM7NxrHdPZGbsRiciIsN5qrXJmdpEYmOySUREhvNUaxPgTG0ikTHZJCIiw7lPmHHHmdpE4uKYTSIiMpRjycakJCA/X2nBzMkB5sxRWjQ5U5tIbEw2iYjIMFlZN1fSsViU1s2UFGUpztGjOVObyAwkWXaf+0e3q6SkBOHh4SguLkZYWJjR4RAR+SSbTVkT3HViUECA0rrJ5JKMwPu3Pjhmk4iIDMElG4n8A5NNIiIyBJdsJPIPTDaJiMgQXLKRyD9wghARERnGdcnG4GCgtFQZy8mEk8g82LJJRESGslqB06eBXr2Afv2USUNZWUZHRUR1hckmEREZyrEuumOyEJenJDIXJptERGQozkonMjcmm0REZCjOSicyNyabRERkKM5KJzI3zkYnIiLDuc5K5/KURObCZJOIiHyC1cokk8iM2I1ORERERLphsklEREREumGySURERES6YbJJRERERLphsklEREREumGySURERES6YbJJRERERLphsklEREREumGySURERES6YbJJRERERLphsklERD7FZgOys5U/iUh8TDaJiMhnZGUBsbFAv37Kn1lZRkdERLeLySYREfkEmw14/nnAblee2+3AhAls4SQSHZNNIiLyCXl5NxNNh4oK4IcfjImHiOoGk00iIvIJbdoAFre7UkAA0Lq1MfEQUd1gsklERD7BagVWr1YSTED5c9UqZTsRiaue0QEQERE5pKQASUlK13nr1kw0icyAySYREfkUq5VJJpGZsBudiIiIiHTDZJOIiIiIdMNkk4iIiIh0w2STiIiIiHTDZJOIiIiIdMNkk4iIiIh0Y+pkc968eUhISEBQUBAaNWpUo/eMHz8ekiRVevTq1UvnSImIiIjMydTJ5vXr1zFi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tGlTrF69Gj/88AN27tyJtLS0Gn1uy5YtUVpaih07duCnn37CtWvXVPebMWMG1q5di7/85S/Iy8vDkiVLsHnzZs0JRbXRpk0bDBkyBKmpqdizZw+OHDmCp59+GnfeeSeGDBkCAJg+fTp27NiB3//+9zh16hTWrVuHFStWVDp+y5YtsXv3bly4cAE//fQTAGDq1KnYtm0bzp49i8OHD2Pnzp11kiATEQFMNolIZ5IkYevWrejbty+ee+45tG3bFqNGjUJ+fj4iIyMBKIXOGzdujISEBCQnJyMpKQndu3ev9bH69++PNm3aoG/fvhg5ciSSk5OdZYosFgs2btyIQ4cOIT4+HtOmTcOiRYtq9LkJCQl44YUX8OSTT+JXv/oVFi5cqLrf0KFDsXz5cixatAidOnXCqlWrsGbNGiQmJtb6XNSsWbMG99xzDwYPHozevXtDlmVs3boV9evXB6C0Im/atAkbN25EfHw8Xn/9dcydO7dSiaW5c+ciPz8fd911F371q18BACoqKjBx4kR06NABjzzyCNq1a4d33nmnTmImIpLkmgzoISLycePHj8eVK1fw8ccfGx0KERG5YMsmEREREemGySYRERER6Ybd6ERERESkG7ZsEhEREZFumGwSERERkW6YbBIRERGRbphsEhEREZFumGwSERERkW6YbBIRERGRbphsEhEREZFumGwSERERkW6YbBIRERGRbv4/h6s0oETLAWgAAAAASUVORK5CYII=&#39;&gt;&lt;/img&gt;&quot;},&quot;nodeType&quot;:&quot;DOM&quot;,&quot;type&quot;:&quot;node&quot;,&quot;instanceArgs&quot;:{&quot;namespace&quot;:&quot;html&quot;,&quot;tag&quot;:&quot;div&quot;},&quot;children&quot;:[]}]})</unsafe-script>"}}},"children":[{"props":{"id":"out","setInnerHtml":"<div class='display:none'></div><unsafe-script style='display:none'>\\nWebIO.mount(this.previousSibling,{&quot;props&quot;:{&quot;attributes&quot;:{&quot;style&quot;:&quot;display:flex; justify-content:center; align-items:center;&quot;}},&quot;nodeType&quot;:&quot;DOM&quot;,&quot;type&quot;:&quot;node&quot;,&quot;instanceArgs&quot;:{&quot;namespace&quot;:&quot;html&quot;,&quot;tag&quot;:&quot;div&quot;},&quot;children&quot;:[{&quot;props&quot;:{&quot;setInnerHtml&quot;:&quot;&lt;img src=&#39;data:image/png;base64,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AIj169d704xe80ZFck4EKnCw+Y9//MMvvU2bNqJKlSri9OnT3rTLly+LG264QbhcLm9VdiTL6j1+io+PF2PGjIk064a3m5GRIQCIFStWGFrv9OnTBQBx7NixoPfOnj0ratSoIbp27Sq++uorUbZsWfHAAw/47Q8zGQ02BwwYIKpWreqX5vF4xMmTJ4MeDZ87d06cPHnS73GFEELk5uZ6AxEhQu8XIYr/vklOThapqalB6b/88os3+PGltQ+13H///aJevXrev7t16yaGDRsmKlSoIN566y0hhBBffPGFACA+/fRT73K+waYQxh6jz5gxwy/94YcfFjExMWH3cZcuXUT58uXF8ePHdZcxej2lpqYKl8sVdHN55JFHRExMjPexk951p5de0O8Bdd+MHTvWL/3//u//BADxzjvveNOM5l3ve1EI/eNUkGBTa/1Gy2O0LDfddJOoUaOGOHfunHeZvLw8UbFixYiCTSP7Vz2nv/76a2/aV199JQB4rwU96md37NghLl26JE6fPi0++eQTUa1aNdGxY8egoFE9j4y8tK6pESNGeN8vU6aMmDt3bth9ESjUd861114rYmJiRNmyZcWLL74oMjIyxIwZM0RsbKxo37592Gt2wIABolSpUt4f71e73Ouvvy4AiKVLl4Ytl96ykZTJ6LKRfi+rwn3fR5LXPXv2iOuuu87vnBk1apTuMYr03Am175s3by4aNmzo1zTt0qVLol69ekHNC4xe80ZFck4EKnCw+c0333jTzpw5IxwOh3j44YeDllcDjj179kS8rN6XtHojfO6550RmZqbfL2U9kWw30mBz9OjRwuFwBAVfqoULFwoAIi4uTtx77726y/lu28jL9wtaj9Fgc+zYscLhcPh9QR89elQAEIMHD/ZbVj0HMjMz/dKrVq0qmjVr5v073H4Ronjvm+TkZHHrrbcGpatfalOnTvVL19qHWtSb5IEDB8S5c+dETEyMWLVqlbjrrrvE/fffL4RQan2jo6PFn3/+GfS5SILNvXv3+qW/8cYbIX8ACKH8CIiKivKrfQ1k9Ho6d+6cKFWqlHj00UeDao/WrVvnV/MdabBZkO8BIa7sm8Cb7aVLl0SpUqVEWlqaEEJElHet70VVYQabWus3Uh6jZTlz5oxwOp3ikUceCdrO4MGDIwo2w+1fIYQ4f/68qFKlinjwwQe9aQMHDhSJ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OHdO7PMjMfD+rQ9Td6MTEZmN1sx0kRMxx9AALXa7ePVDiegmU3ejExGZkfvMdJETTaD6Ekii1Q+tDZtNOf82bcS/jkRa2LJJRCQgx+pCZkhQPK0XLknit9xqycpShkT066f8mZVldERE+mCySUREhqpuvXAzMltVASJP/OifNhER+SrHeuHuZFlJysyWhHmqKkBkNkw2iYjIJ7iUQK7EjBOEtNa7N+vYVPJvTDaJiMgnaI3dtFjMl4SZsaoAkRbORiciIp+wbZvSbe5KkoAFC8yZhJmtqgCRFiabRERkOMeEGfdkU5aVtdEbN1aSM7NxrHdPZGbsRiciIsN5qrXJmdpEYmOySUREhvNUaxPgTG0ikTHZJCIiw7lPmHHHmdpE4uKYTSIiMpRjycakJCA/X2nBzMkB5sxRWjQ5U5tIbEw2iYjIMFlZN1fSsViU1s2UFGUpztGjOVObyAwkWXaf+0e3q6SkBOHh4SguLkZYWJjR4RAR+SSbTVkT3HViUECA0rrJ5JKMwPu3Pjhmk4iIDMElG4n8A5NNIiIyBJdsJPIPTDaJiMgQXLKRyD9wghARERnGdcnG4GCgtFQZy8mEk8g82LJJRESGslqB06eBXr2Afv2USUNZWUZHRUR1hckmEREZyrEuumOyEJenJDIXJptERGQozkonMjcmm0REZCjOSicyNyabRERkKM5KJzI3zkYnIiLDuc5K5/KURObCZJOIiHyC1cokk8iM2I1ORERERLphsklEREREumGySURERES6YbJJRERERLphsklEREREumGySURERES6YbJJRERERLphsklEREREumGySURERES6YbJJRERERLphsklERD7FZgOys5U/iUh8TDaJiMhnZGUBsbFAv37Kn1lZRkdERLeLySYREfkEmw14/nnAblee2+3AhAls4SQSHZNNIiLyCXl5NxNNh4oK4IcfjImHiOoGk00iIvIJbdoAFre7UkAA0Lq1MfEQUd1gsklERD7BagVWr1YSTED5c9UqZTsRiaue0QEQERE5pKQASUlK13nr1kw0icyAySYREfkUq5VJJpGZsBudiIiIiHTDZJOIiIiIdMNkk4iIiIh0w2STiIiIiHTDZJOIiIiIdMNkk4iIiIh0Y+pkc968eUhISEBQUBAaNWpUo/eMHz8ekiRVevTq1UvnSImIiIjMydTJ5vXr1zFi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tGlTrF69Gj/88AN27tyJtLS0Gn1uy5YtUVpaih07duCnn37CtWvXVPebMWMG1q5di7/85S/Iy8vDkiVLsHnzZs0JRbXRpk0bDBkyBKmpqdizZw+OHDmCp59+GnfeeSeGDBkCAJg+fTp27NiB3//+9zh16hTWrVuHFStWVDp+y5YtsXv3bly4cAE//fQTAGDq1KnYtm0bzp49i8OHD2Pnzp11kiATEQFMNolIZ5IkYevWrejbty+ee+45tG3bFqNGjUJ+fj4iIyMBKIXOGzdujISEBCQnJyMpKQndu3ev9bH69++PNm3aoG/fvhg5ciSSk5OdZYosFgs2btyIQ4cOIT4+HtOmTcOiRYtq9LkJCQl44YUX8OSTT+JXv/oVFi5cqLrf0KFDsXz5cixatAidOnXCqlWrsGbNGiQmJtb6XNSsWbMG99xzDwYPHozevXtDlmVs3boV9evXB6C0Im/atAkbN25EfHw8Xn/9dcydO7dSiaW5c+ciPz8fd911F371q18BACoqKjBx4kR06NABjzzyCNq1a4d33nmnTmImIpLkmgzoISLycePHj8eVK1fw8ccfGx0KERG5YMsmEREREemGySYRERER6Ybd6ERERESkG7ZsEhEREZFumGwSERERkW6YbBIRERGRbphsEhEREZFumGwSERERkW6YbBIRERGRbphsEhEREZFumGwSERERkW6YbBIRERGRbv4/h6s0oETLAWgAAAAASUVORK5CYII=&#39;&gt;&lt;/img&gt;&quot;},&quot;nodeType&quot;:&quot;DOM&quot;,&quot;type&quot;:&quot;node&quot;,&quot;instanceArgs&quot;:{&quot;namespace&quot;:&quot;html&quot;,&quot;tag&quot;:&quot;div&quot;},&quot;children&quot;:[]}]})</unsafe-script>"},"nodeType":"DOM","type":"node","instanceArgs":{"namespace":"html","tag":"div"},"children":[]}]}]})\n", "
" ], "text/plain": [ "(div\n", " Widgets.Widget{:slider}(DataStructures.OrderedDict{Symbol,Any}(:changes=>Observables.Observable{Int64}(\"ob_02\", 0, Any[WebIO.SyncCallback(WebIO.Scope(\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\", WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"logR\"], Dict{Symbol,Any}(Pair{Symbol,Any}(:className, \"interact \"),Pair{Symbol,Any}(:style, Dict{Any,Any}(Pair{Any,Any}(:padding, \"5px 10px 0px 10px\")))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"text-align:right;width:18%\"))), 2), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:max, -1.0),Pair{Symbol,Any}(:min, -12.0),Pair{Symbol,Any}(:attributes, Dict{Any,Any}(Pair{Any,Any}(:type, \"range\"),Pair{Any,Any}(Symbol(\"data-bind\"), \"numericValue: value, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}\"))),Pair{Symbol,Any}(:step, 0.1),Pair{Symbol,Any}(:className, \"slider slider is-fullwidth\"),Pair{Symbol,Any}(:style, Dict{Any,Any}())), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"flex-grow:1; margin: 0 2%\"))), 1), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"data-bind\"=>\"text: displayedvalue\"))), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"width:18%\"))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"display:flex; justify-content:center; align-items:center;\"))), 7), Dict{String,Tuple{Observables.Observable,Union{Bool, Void}}}(Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"changes\", (Observables.Observable{Int64}(#= circular reference @-7 =#), nothing)),Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"value\", (Observables.Observable{Float64}(\"ob_01\", -6.5, Any[WebIO.SyncCallback(WebIO.Scope(#= circular reference @-7 =#), WebIO.SyncCallback(WebIO.Scope(#= circular reference @-8 =#), WebIO.#37)), Observables.g]), nothing))), Set{String}(), nothing, Any[\"knockout\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout.js\", \"knockout_punches\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout_punches.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/all.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/style.css\", \"/Users/stevenj/.julia/v0.6/InteractBulma/src/../assets/main.css\"], Dict{Any,Any}(Pair{Any,Any}(\"_promises\", Dict{Any,Any}(Pair{Any,Any}(\"importsLoaded\", Any[WebIO.JSString(\"function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init : function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n })\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n })\\n ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\\n }\\n };\\n var json_data = JSON.parse(\\\"{\\\\\\\"changes\\\\\\\":0,\\\\\\\"value\\\\\\\":-6.5}\\\");\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"displayedvalue\\\"]=ko.computed(function () {return this.value().toPrecision(6);},this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_01\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"value\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n\")]))),Pair{Any,Any}(\"changes\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")]),Pair{Any,Any}(\"value\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"value\\\"]()) ? (this.valueFromJulia[\\\"value\\\"]=true, this.model[\\\"value\\\"](val)) : undefined})\")])), WebIO.ConnectionPool(Channel{Any}(sz_max:9223372036854775807,sz_curr:3), Set{WebIO.AbstractConnection}(), Channel{WebIO.AbstractConnection}(sz_max:32,sz_curr:0))), WebIO.SyncCallback(WebIO.Scope(\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\", WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"logR\"], Dict{Symbol,Any}(Pair{Symbol,Any}(:className, \"interact \"),Pair{Symbol,Any}(:style, Dict{Any,Any}(Pair{Any,Any}(:padding, \"5px 10px 0px 10px\")))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"text-align:right;width:18%\"))), 2), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:max, -1.0),Pair{Symbol,Any}(:min, -12.0),Pair{Symbol,Any}(:attributes, Dict{Any,Any}(Pair{Any,Any}(:type, \"range\"),Pair{Any,Any}(Symbol(\"data-bind\"), \"numericValue: value, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}\"))),Pair{Symbol,Any}(:step, 0.1),Pair{Symbol,Any}(:className, \"slider slider is-fullwidth\"),Pair{Symbol,Any}(:style, Dict{Any,Any}())), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"flex-grow:1; margin: 0 2%\"))), 1), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"data-bind\"=>\"text: displayedvalue\"))), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"width:18%\"))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"display:flex; justify-content:center; align-items:center;\"))), 7), Dict{String,Tuple{Observables.Observable,Union{Bool, Void}}}(Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"changes\", (Observables.Observable{Int64}(#= circular reference @-8 =#), nothing)),Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"value\", (Observables.Observable{Float64}(\"ob_01\", -6.5, Any[WebIO.SyncCallback(WebIO.Scope(#= circular reference @-7 =#), WebIO.SyncCallback(WebIO.Scope(#= circular reference @-8 =#), WebIO.#37)), Observables.g]), nothing))), Set{String}(), nothing, Any[\"knockout\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout.js\", \"knockout_punches\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout_punches.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/all.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/style.css\", \"/Users/stevenj/.julia/v0.6/InteractBulma/src/../assets/main.css\"], Dict{Any,Any}(Pair{Any,Any}(\"_promises\", Dict{Any,Any}(Pair{Any,Any}(\"importsLoaded\", Any[WebIO.JSString(\"function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init : function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n })\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n })\\n ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\\n }\\n };\\n var json_data = JSON.parse(\\\"{\\\\\\\"changes\\\\\\\":0,\\\\\\\"value\\\\\\\":-6.5}\\\");\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"displayedvalue\\\"]=ko.computed(function () {return this.value().toPrecision(6);},this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_01\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"value\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n\")]))),Pair{Any,Any}(\"changes\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")]),Pair{Any,Any}(\"value\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"value\\\"]()) ? (this.valueFromJulia[\\\"value\\\"]=true, this.model[\\\"value\\\"](val)) : undefined})\")])), WebIO.ConnectionPool(Channel{Any}(sz_max:9223372036854775807,sz_curr:3), Set{WebIO.AbstractConnection}(), Channel{WebIO.AbstractConnection}(sz_max:32,sz_curr:0))), WebIO.#37))]),:value=>Observables.Observable{Float64}(\"ob_01\", -6.5, Any[WebIO.SyncCallback(WebIO.Scope(\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\", WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"logR\"], Dict{Symbol,Any}(Pair{Symbol,Any}(:className, \"interact \"),Pair{Symbol,Any}(:style, Dict{Any,Any}(Pair{Any,Any}(:padding, \"5px 10px 0px 10px\")))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"text-align:right;width:18%\"))), 2), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:max, -1.0),Pair{Symbol,Any}(:min, -12.0),Pair{Symbol,Any}(:attributes, Dict{Any,Any}(Pair{Any,Any}(:type, \"range\"),Pair{Any,Any}(Symbol(\"data-bind\"), \"numericValue: value, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}\"))),Pair{Symbol,Any}(:step, 0.1),Pair{Symbol,Any}(:className, \"slider slider is-fullwidth\"),Pair{Symbol,Any}(:style, Dict{Any,Any}())), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"flex-grow:1; margin: 0 2%\"))), 1), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"data-bind\"=>\"text: displayedvalue\"))), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"width:18%\"))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"display:flex; justify-content:center; align-items:center;\"))), 7), Dict{String,Tuple{Observables.Observable,Union{Bool, Void}}}(Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"changes\", (Observables.Observable{Int64}(\"ob_02\", 0, Any[WebIO.SyncCallback(WebIO.Scope(#= circular reference @-7 =#), WebIO.SyncCallback(WebIO.Scope(#= circular reference @-8 =#), WebIO.#37))]), nothing)),Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"value\", (Observables.Observable{Float64}(#= circular reference @-7 =#), nothing))), Set{String}(), nothing, Any[\"knockout\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout.js\", \"knockout_punches\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout_punches.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/all.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/style.css\", \"/Users/stevenj/.julia/v0.6/InteractBulma/src/../assets/main.css\"], Dict{Any,Any}(Pair{Any,Any}(\"_promises\", Dict{Any,Any}(Pair{Any,Any}(\"importsLoaded\", Any[WebIO.JSString(\"function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init : function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n })\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n })\\n ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\\n }\\n };\\n var json_data = JSON.parse(\\\"{\\\\\\\"changes\\\\\\\":0,\\\\\\\"value\\\\\\\":-6.5}\\\");\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"displayedvalue\\\"]=ko.computed(function () {return this.value().toPrecision(6);},this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_01\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"value\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n\")]))),Pair{Any,Any}(\"changes\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")]),Pair{Any,Any}(\"value\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"value\\\"]()) ? (this.valueFromJulia[\\\"value\\\"]=true, this.model[\\\"value\\\"](val)) : undefined})\")])), WebIO.ConnectionPool(Channel{Any}(sz_max:9223372036854775807,sz_curr:3), Set{WebIO.AbstractConnection}(), Channel{WebIO.AbstractConnection}(sz_max:32,sz_curr:0))), WebIO.SyncCallback(WebIO.Scope(\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\", WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"logR\"], Dict{Symbol,Any}(Pair{Symbol,Any}(:className, \"interact \"),Pair{Symbol,Any}(:style, Dict{Any,Any}(Pair{Any,Any}(:padding, \"5px 10px 0px 10px\")))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"text-align:right;width:18%\"))), 2), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:max, -1.0),Pair{Symbol,Any}(:min, -12.0),Pair{Symbol,Any}(:attributes, Dict{Any,Any}(Pair{Any,Any}(:type, \"range\"),Pair{Any,Any}(Symbol(\"data-bind\"), \"numericValue: value, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}\"))),Pair{Symbol,Any}(:step, 0.1),Pair{Symbol,Any}(:className, \"slider slider is-fullwidth\"),Pair{Symbol,Any}(:style, Dict{Any,Any}())), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"flex-grow:1; margin: 0 2%\"))), 1), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"data-bind\"=>\"text: displayedvalue\"))), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"width:18%\"))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"display:flex; justify-content:center; align-items:center;\"))), 7), Dict{String,Tuple{Observables.Observable,Union{Bool, Void}}}(Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"changes\", (Observables.Observable{Int64}(\"ob_02\", 0, Any[WebIO.SyncCallback(WebIO.Scope(#= circular reference @-7 =#), WebIO.SyncCallback(WebIO.Scope(#= circular reference @-8 =#), WebIO.#37))]), nothing)),Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"value\", (Observables.Observable{Float64}(#= circular reference @-8 =#), nothing))), Set{String}(), nothing, Any[\"knockout\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout.js\", \"knockout_punches\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout_punches.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/all.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/style.css\", \"/Users/stevenj/.julia/v0.6/InteractBulma/src/../assets/main.css\"], Dict{Any,Any}(Pair{Any,Any}(\"_promises\", Dict{Any,Any}(Pair{Any,Any}(\"importsLoaded\", Any[WebIO.JSString(\"function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init : function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n })\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n })\\n ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\\n }\\n };\\n var json_data = JSON.parse(\\\"{\\\\\\\"changes\\\\\\\":0,\\\\\\\"value\\\\\\\":-6.5}\\\");\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"displayedvalue\\\"]=ko.computed(function () {return this.value().toPrecision(6);},this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_01\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"value\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n\")]))),Pair{Any,Any}(\"changes\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")]),Pair{Any,Any}(\"value\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"value\\\"]()) ? (this.valueFromJulia[\\\"value\\\"]=true, this.model[\\\"value\\\"](val)) : undefined})\")])), WebIO.ConnectionPool(Channel{Any}(sz_max:9223372036854775807,sz_curr:3), Set{WebIO.AbstractConnection}(), Channel{WebIO.AbstractConnection}(sz_max:32,sz_curr:0))), WebIO.#37)), Observables.g])), Observables.Observable{Float64}(\"ob_01\", -6.5, Any[WebIO.SyncCallback(WebIO.Scope(\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\", WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"logR\"], Dict{Symbol,Any}(Pair{Symbol,Any}(:className, \"interact \"),Pair{Symbol,Any}(:style, Dict{Any,Any}(Pair{Any,Any}(:padding, \"5px 10px 0px 10px\")))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"text-align:right;width:18%\"))), 2), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:max, -1.0),Pair{Symbol,Any}(:min, -12.0),Pair{Symbol,Any}(:attributes, Dict{Any,Any}(Pair{Any,Any}(:type, \"range\"),Pair{Any,Any}(Symbol(\"data-bind\"), \"numericValue: value, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}\"))),Pair{Symbol,Any}(:step, 0.1),Pair{Symbol,Any}(:className, \"slider slider is-fullwidth\"),Pair{Symbol,Any}(:style, Dict{Any,Any}())), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"flex-grow:1; margin: 0 2%\"))), 1), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"data-bind\"=>\"text: displayedvalue\"))), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"width:18%\"))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"display:flex; justify-content:center; align-items:center;\"))), 7), Dict{String,Tuple{Observables.Observable,Union{Bool, Void}}}(Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"changes\", (Observables.Observable{Int64}(\"ob_02\", 0, Any[WebIO.SyncCallback(WebIO.Scope(#= circular reference @-7 =#), WebIO.SyncCallback(WebIO.Scope(#= circular reference @-8 =#), WebIO.#37))]), nothing)),Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"value\", (Observables.Observable{Float64}(#= circular reference @-7 =#), nothing))), Set{String}(), nothing, Any[\"knockout\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout.js\", \"knockout_punches\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout_punches.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/all.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/style.css\", \"/Users/stevenj/.julia/v0.6/InteractBulma/src/../assets/main.css\"], Dict{Any,Any}(Pair{Any,Any}(\"_promises\", Dict{Any,Any}(Pair{Any,Any}(\"importsLoaded\", Any[WebIO.JSString(\"function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init : function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n })\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n })\\n ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\\n }\\n };\\n var json_data = JSON.parse(\\\"{\\\\\\\"changes\\\\\\\":0,\\\\\\\"value\\\\\\\":-6.5}\\\");\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"displayedvalue\\\"]=ko.computed(function () {return this.value().toPrecision(6);},this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_01\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"value\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n\")]))),Pair{Any,Any}(\"changes\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")]),Pair{Any,Any}(\"value\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"value\\\"]()) ? (this.valueFromJulia[\\\"value\\\"]=true, this.model[\\\"value\\\"](val)) : undefined})\")])), WebIO.ConnectionPool(Channel{Any}(sz_max:9223372036854775807,sz_curr:3), Set{WebIO.AbstractConnection}(), Channel{WebIO.AbstractConnection}(sz_max:32,sz_curr:0))), WebIO.SyncCallback(WebIO.Scope(\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\", WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"logR\"], Dict{Symbol,Any}(Pair{Symbol,Any}(:className, \"interact \"),Pair{Symbol,Any}(:style, Dict{Any,Any}(Pair{Any,Any}(:padding, \"5px 10px 0px 10px\")))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"text-align:right;width:18%\"))), 2), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:max, -1.0),Pair{Symbol,Any}(:min, -12.0),Pair{Symbol,Any}(:attributes, Dict{Any,Any}(Pair{Any,Any}(:type, \"range\"),Pair{Any,Any}(Symbol(\"data-bind\"), \"numericValue: value, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}\"))),Pair{Symbol,Any}(:step, 0.1),Pair{Symbol,Any}(:className, \"slider slider is-fullwidth\"),Pair{Symbol,Any}(:style, Dict{Any,Any}())), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"flex-grow:1; margin: 0 2%\"))), 1), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"data-bind\"=>\"text: displayedvalue\"))), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"width:18%\"))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"display:flex; justify-content:center; align-items:center;\"))), 7), Dict{String,Tuple{Observables.Observable,Union{Bool, Void}}}(Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"changes\", (Observables.Observable{Int64}(\"ob_02\", 0, Any[WebIO.SyncCallback(WebIO.Scope(#= circular reference @-7 =#), WebIO.SyncCallback(WebIO.Scope(#= circular reference @-8 =#), WebIO.#37))]), nothing)),Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"value\", (Observables.Observable{Float64}(#= circular reference @-8 =#), nothing))), Set{String}(), nothing, Any[\"knockout\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout.js\", \"knockout_punches\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout_punches.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/all.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/style.css\", \"/Users/stevenj/.julia/v0.6/InteractBulma/src/../assets/main.css\"], Dict{Any,Any}(Pair{Any,Any}(\"_promises\", Dict{Any,Any}(Pair{Any,Any}(\"importsLoaded\", Any[WebIO.JSString(\"function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init : function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n })\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n })\\n ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\\n }\\n };\\n var json_data = JSON.parse(\\\"{\\\\\\\"changes\\\\\\\":0,\\\\\\\"value\\\\\\\":-6.5}\\\");\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"displayedvalue\\\"]=ko.computed(function () {return this.value().toPrecision(6);},this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_01\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"value\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n\")]))),Pair{Any,Any}(\"changes\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")]),Pair{Any,Any}(\"value\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"value\\\"]()) ? (this.valueFromJulia[\\\"value\\\"]=true, this.model[\\\"value\\\"](val)) : undefined})\")])), WebIO.ConnectionPool(Channel{Any}(sz_max:9223372036854775807,sz_curr:3), Set{WebIO.AbstractConnection}(), Channel{WebIO.AbstractConnection}(sz_max:32,sz_curr:0))), WebIO.#37)), Observables.g]), Observables.Observable{Float64}(\"ob_01\", -6.5, Any[WebIO.SyncCallback(WebIO.Scope(\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\", WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"logR\"], Dict{Symbol,Any}(Pair{Symbol,Any}(:className, \"interact \"),Pair{Symbol,Any}(:style, Dict{Any,Any}(Pair{Any,Any}(:padding, \"5px 10px 0px 10px\")))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"text-align:right;width:18%\"))), 2), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:max, -1.0),Pair{Symbol,Any}(:min, -12.0),Pair{Symbol,Any}(:attributes, Dict{Any,Any}(Pair{Any,Any}(:type, \"range\"),Pair{Any,Any}(Symbol(\"data-bind\"), \"numericValue: value, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}\"))),Pair{Symbol,Any}(:step, 0.1),Pair{Symbol,Any}(:className, \"slider slider is-fullwidth\"),Pair{Symbol,Any}(:style, Dict{Any,Any}())), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"flex-grow:1; margin: 0 2%\"))), 1), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"data-bind\"=>\"text: displayedvalue\"))), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"width:18%\"))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"display:flex; justify-content:center; align-items:center;\"))), 7), Dict{String,Tuple{Observables.Observable,Union{Bool, Void}}}(Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"changes\", (Observables.Observable{Int64}(\"ob_02\", 0, Any[WebIO.SyncCallback(WebIO.Scope(#= circular reference @-7 =#), WebIO.SyncCallback(WebIO.Scope(#= circular reference @-8 =#), WebIO.#37))]), nothing)),Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"value\", (Observables.Observable{Float64}(#= circular reference @-7 =#), nothing))), Set{String}(), nothing, Any[\"knockout\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout.js\", \"knockout_punches\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout_punches.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/all.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/style.css\", \"/Users/stevenj/.julia/v0.6/InteractBulma/src/../assets/main.css\"], Dict{Any,Any}(Pair{Any,Any}(\"_promises\", Dict{Any,Any}(Pair{Any,Any}(\"importsLoaded\", Any[WebIO.JSString(\"function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init : function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n })\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n })\\n ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\\n }\\n };\\n var json_data = JSON.parse(\\\"{\\\\\\\"changes\\\\\\\":0,\\\\\\\"value\\\\\\\":-6.5}\\\");\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"displayedvalue\\\"]=ko.computed(function () {return this.value().toPrecision(6);},this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_01\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"value\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n\")]))),Pair{Any,Any}(\"changes\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")]),Pair{Any,Any}(\"value\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"value\\\"]()) ? (this.valueFromJulia[\\\"value\\\"]=true, this.model[\\\"value\\\"](val)) : undefined})\")])), WebIO.ConnectionPool(Channel{Any}(sz_max:9223372036854775807,sz_curr:3), Set{WebIO.AbstractConnection}(), Channel{WebIO.AbstractConnection}(sz_max:32,sz_curr:0))), WebIO.SyncCallback(WebIO.Scope(\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\", WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"logR\"], Dict{Symbol,Any}(Pair{Symbol,Any}(:className, \"interact \"),Pair{Symbol,Any}(:style, Dict{Any,Any}(Pair{Any,Any}(:padding, \"5px 10px 0px 10px\")))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"text-align:right;width:18%\"))), 2), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:max, -1.0),Pair{Symbol,Any}(:min, -12.0),Pair{Symbol,Any}(:attributes, Dict{Any,Any}(Pair{Any,Any}(:type, \"range\"),Pair{Any,Any}(Symbol(\"data-bind\"), \"numericValue: value, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}\"))),Pair{Symbol,Any}(:step, 0.1),Pair{Symbol,Any}(:className, \"slider slider is-fullwidth\"),Pair{Symbol,Any}(:style, Dict{Any,Any}())), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"flex-grow:1; margin: 0 2%\"))), 1), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"data-bind\"=>\"text: displayedvalue\"))), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"width:18%\"))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"display:flex; justify-content:center; align-items:center;\"))), 7), Dict{String,Tuple{Observables.Observable,Union{Bool, Void}}}(Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"changes\", (Observables.Observable{Int64}(\"ob_02\", 0, Any[WebIO.SyncCallback(WebIO.Scope(#= circular reference @-7 =#), WebIO.SyncCallback(WebIO.Scope(#= circular reference @-8 =#), WebIO.#37))]), nothing)),Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"value\", (Observables.Observable{Float64}(#= circular reference @-8 =#), nothing))), Set{String}(), nothing, Any[\"knockout\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout.js\", \"knockout_punches\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout_punches.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/all.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/style.css\", \"/Users/stevenj/.julia/v0.6/InteractBulma/src/../assets/main.css\"], Dict{Any,Any}(Pair{Any,Any}(\"_promises\", Dict{Any,Any}(Pair{Any,Any}(\"importsLoaded\", Any[WebIO.JSString(\"function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init : function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n })\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n })\\n ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\\n }\\n };\\n var json_data = JSON.parse(\\\"{\\\\\\\"changes\\\\\\\":0,\\\\\\\"value\\\\\\\":-6.5}\\\");\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"displayedvalue\\\"]=ko.computed(function () {return this.value().toPrecision(6);},this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_01\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"value\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n\")]))),Pair{Any,Any}(\"changes\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")]),Pair{Any,Any}(\"value\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"value\\\"]()) ? (this.valueFromJulia[\\\"value\\\"]=true, this.model[\\\"value\\\"](val)) : undefined})\")])), WebIO.ConnectionPool(Channel{Any}(sz_max:9223372036854775807,sz_curr:3), Set{WebIO.AbstractConnection}(), Channel{WebIO.AbstractConnection}(sz_max:32,sz_curr:0))), WebIO.#37)), Observables.g]), WebIO.Scope(\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\", WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :label), Any[\"logR\"], Dict{Symbol,Any}(Pair{Symbol,Any}(:className, \"interact \"),Pair{Symbol,Any}(:style, Dict{Any,Any}(Pair{Any,Any}(:padding, \"5px 10px 0px 10px\")))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"text-align:right;width:18%\"))), 2), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :input), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:max, -1.0),Pair{Symbol,Any}(:min, -12.0),Pair{Symbol,Any}(:attributes, Dict{Any,Any}(Pair{Any,Any}(:type, \"range\"),Pair{Any,Any}(Symbol(\"data-bind\"), \"numericValue: value, valueUpdate: 'input', event: {change : function () {this.changes(this.changes()+1)}}\"))),Pair{Symbol,Any}(:step, 0.1),Pair{Symbol,Any}(:className, \"slider slider is-fullwidth\"),Pair{Symbol,Any}(:style, Dict{Any,Any}())), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"flex-grow:1; margin: 0 2%\"))), 1), WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :p), Any[], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"data-bind\"=>\"text: displayedvalue\"))), 0)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"width:18%\"))), 1)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"display:flex; justify-content:center; align-items:center;\"))), 7), Dict{String,Tuple{Observables.Observable,Union{Bool, Void}}}(Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"changes\", (Observables.Observable{Int64}(\"ob_02\", 0, Any[WebIO.SyncCallback(WebIO.Scope(#= circular reference @-7 =#), WebIO.SyncCallback(WebIO.Scope(#= circular reference @-8 =#), WebIO.#37))]), nothing)),Pair{String,Tuple{Observables.Observable,Union{Bool, Void}}}(\"value\", (Observables.Observable{Float64}(\"ob_01\", -6.5, Any[WebIO.SyncCallback(WebIO.Scope(#= circular reference @-7 =#), WebIO.SyncCallback(WebIO.Scope(#= circular reference @-8 =#), WebIO.#37)), Observables.g]), nothing))), Set{String}(), nothing, Any[\"knockout\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout.js\", \"knockout_punches\"=>\"/Users/stevenj/.julia/v0.6/Knockout/src/../assets/knockout_punches.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/all.js\", \"/Users/stevenj/.julia/v0.6/InteractBase/src/../assets/style.css\", \"/Users/stevenj/.julia/v0.6/InteractBulma/src/../assets/main.css\"], Dict{Any,Any}(Pair{Any,Any}(\"_promises\", Dict{Any,Any}(Pair{Any,Any}(\"importsLoaded\", Any[WebIO.JSString(\"function (ko, koPunches) {\\n ko.punches.enableAll();\\n ko.bindingHandlers.numericValue = {\\n init : function(element, valueAccessor, allBindings, data, context) {\\n var stringified = ko.observable(ko.unwrap(valueAccessor()));\\n stringified.subscribe(function(value) {\\n var val = parseFloat(value);\\n if (!isNaN(val)) {\\n valueAccessor()(val);\\n }\\n })\\n valueAccessor().subscribe(function(value) {\\n var str = JSON.stringify(value);\\n if ((str == \\\"0\\\") && ([\\\"-0\\\", \\\"-0.\\\"].indexOf(stringified()) >= 0))\\n return;\\n if ([\\\"null\\\", \\\"\\\"].indexOf(str) >= 0)\\n return;\\n stringified(str);\\n })\\n ko.applyBindingsToNode(element, { value: stringified, valueUpdate: allBindings.get('valueUpdate')}, context);\\n }\\n };\\n var json_data = JSON.parse(\\\"{\\\\\\\"changes\\\\\\\":0,\\\\\\\"value\\\\\\\":-6.5}\\\");\\n var self = this;\\n function AppViewModel() {\\n for (var key in json_data) {\\n var el = json_data[key];\\n this[key] = Array.isArray(el) ? ko.observableArray(el) : ko.observable(el);\\n }\\n \\n [this[\\\"displayedvalue\\\"]=ko.computed(function () {return this.value().toPrecision(6);},this)]\\n [this[\\\"changes\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"changes\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"changes\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_02\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"changes\\\"]=false}),self),this[\\\"value\\\"].subscribe((function (val){!(this.valueFromJulia[\\\"value\\\"]) ? (WebIO.setval({\\\"name\\\":\\\"value\\\",\\\"scope\\\":\\\"knockout-component-49c4814b-48b2-4671-a688-f13752e3c5d2\\\",\\\"id\\\":\\\"ob_01\\\",\\\"type\\\":\\\"observable\\\"},val)) : undefined; return this.valueFromJulia[\\\"value\\\"]=false}),self)]\\n \\n }\\n self.model = new AppViewModel();\\n self.valueFromJulia = {};\\n for (var key in json_data) {\\n self.valueFromJulia[key] = false;\\n }\\n ko.applyBindings(self.model, self.dom);\\n}\\n\")]))),Pair{Any,Any}(\"changes\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"changes\\\"]()) ? (this.valueFromJulia[\\\"changes\\\"]=true, this.model[\\\"changes\\\"](val)) : undefined})\")]),Pair{Any,Any}(\"value\", Any[WebIO.JSString(\"(function (val){return (val!=this.model[\\\"value\\\"]()) ? (this.valueFromJulia[\\\"value\\\"]=true, this.model[\\\"value\\\"](val)) : undefined})\")])), WebIO.ConnectionPool(Channel{Any}(sz_max:9223372036854775807,sz_curr:3), Set{WebIO.AbstractConnection}(), Channel{WebIO.AbstractConnection}(sz_max:32,sz_curr:0))), Widgets.#4, Base.#55)\n", " Observables.Observable{Any}(\"ob_05\", WebIO.Node{WebIO.DOM}(WebIO.DOM(:html, :div), Any[PyPlot.Figure(PyObject
)], Dict{Symbol,Any}(Pair{Symbol,Any}(:attributes, Dict(\"style\"=>\"display:flex; justify-content:center; align-items:center;\"))), 1), Any[]))" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N = 10\n", "w = prod([Poly([-n, 1.0]) for n = 1:N])\n", "fig = figure()\n", "@manipulate for logR in -12:0.1:-1\n", " withfig(fig) do\n", " plot(1:N, zeros(10), \"r*\")\n", " R = exp10(logR)\n", " for i = 1:100\n", " r = roots(Poly(coeffs(w) .* (1 .+ R .* randn(N+1))))\n", " plot(real(r), imag(r), \"b.\")\n", " end\n", " xlabel(\"real part of roots\")\n", " ylabel(\"imaginary part of roots\")\n", " title(\"roots of \\$(x-1)\\\\cdots(x-10)\\$ with coeffs perturbed by R=$R\")\n", " end\n", "end" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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bNGiRax///7swoULjDF9zxNjjO3bt48lJyezW265hS1cuJB988037Pnnn2c2m41NmjSJMab+3Gk9j4H2A9I+bNy4cWzNmjVs1qxZLDExkd12223s6tWrhmSX71PaL2pdp8zMTNakSRNV+dRklu7fyPnoPZdvv/2W2e121q1bN7Zs2TKWl5fH0tLSWOPGjX3kqmz73nbbbaxr164++0hLS1N89qSIz8OOHTu8lr/77rsMAFu6dKnXcpfLxcrKynR91NDbn0rR24/ovT5q5OfnMwCsbt26zG63sxo1arB77rmHff/997plVSJmlZxXXnnFa3mnTp1Y3bp12cWLF93LysvL2c0338wcDgdzuVyG150xY4a7U5eSlJTEnnvuOcOy6z2ueLPk5eXp2u+0adMYAHby5Emf34qLi1nDhg1Zr1692Pbt21mNGjXY0KFDvdrDSvQ+lI899hirV6+e1zKXy8XOnTvHiouLvZZfuXKFnTt3jpWXl3stLyoqcg+AjGm3C2Ph3zatWrVi6enpPsuPHz/uHnSlKLWhEoMGDWLNmzd3f7/rrrvYsGHDWO3atdlHH33EGGPshx9+YADYN998415PquQwpv58MOZ5TqdPn+61/JlnnmEJCQl+27hnz56sVq1a7PTp06rr6H2e0tPTmcPhcCtgIs8++yxLSEhgf/zxB2NM/blTWx5oPyC2zejRo72W/+c//2EA2KJFi9zL9Mqu1i8ypn6dAlFylPav93z0nkvHjh1Zw4YN2ZUrV9zrXLhwgdWpU8eQkqOnfcV7+scff3Qv2759OwPgfhbUELfdunUrKysrYxcvXmSrV69m9evXZ3fccYePsiLeR3o+Ss8UY4EpOXr7Eb3XR43du3ezUaNGseXLl7PvvvuOffDBB+yGG25gdrudrV69Wre8cmJuukrkr3/9q/v/4uJibNu2DQ8//DCSkpLcy+12OwYPHgyn04lff/3V8LpqdOjQAR9++CHeeOMNbN26FWVlZX7lNeO4ahw/fhyCIODaa6/1+a169ep44403sG7dOvTo0QP33nsv5s+fr2r+1PKQl3/MjDCpW7cuTp8+jfLycveyU6dOoXbt2njmmWe81p06dSpq167tY0pu3bo1br/9dvd3rXYBIqNttMzU8t+U2lCJXr164eDBgzh06BBKSkqwadMm9O7dGz169MDatWsBAN9++y3i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", "text/plain": [ "PyPlot.Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "PyObject Text(0.5,1,'roots of $(x-1)\\\\cdots(x-10)$ with coeffs perturbed by R=1.0e-5')" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w = prod([Poly([-n, 1.0]) for n = 1:N])\n", "logR = -5\n", "plot(1:N, zeros(10), \"r*\")\n", "R = exp10(logR)\n", "for i = 1:100\n", " r = roots(Poly(coeffs(w) .* (1 .+ R .* randn(N+1))))\n", " plot(real(r), imag(r), \"b.\")\n", "end\n", "xlabel(\"real part of roots\")\n", "ylabel(\"imaginary part of roots\")\n", "title(\"roots of \\$(x-1)\\\\cdots(x-10)\\$ with coeffs perturbed by R=$R\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Even a **tiny error** causes the roots to be **complete garbage**. This gets exponentially worse as the degree of the polynomials increases.\n", "\n", "Because computers inevitably use a finite precision (usually about 15 significant digits), the tiny roundoff errors mean that characteristic polynomials are a computational disaster if they are actually computed explicitly." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Companion matrices\n", "\n", "Finding **roots of polynomials is *equivalent* to finding eigenvalues**. Not only can you find eigenvalues by solving for the roots of the characteristic polynomial, but you can conversely find roots of *any* polynomial by turning into a matrix and finding the eigenvalues.\n", "\n", "Given the degree-$n$ polynomial:\n", "\n", "$$\n", "p(z)=c_0 + c_1 z + \\cdots + c_{n-1}z^{n-1} + z^n \\;,\n", "$$\n", "\n", "(notice that the $z^n$ coefficient is 1), we define the $n \\times n$ **companion matrix**\n", "\n", "$$\n", "C=\\begin{pmatrix}\n", "0 & 1 & 0 & \\dots & 0 \\\\\n", "0 & 0 & 1 & \\dots & 0 \\\\\n", "0 & \\ddots & \\ddots & \\ddots & \\vdots \\\\\n", "\\vdots & \\vdots & \\ddots & 0 & 1 \\\\\n", "-c_0 & -c_1 & \\dots & -c_{n-2} & -c_{n-1}\n", "\\end{pmatrix}.\n", "$$\n", "\n", "The amazing fact is that the *characteristic polynomial* $\\det (C - \\lambda I) = p(\\lambda)$, and so the **eigenvalues of C are the roots of p**.\n", "\n", "## Proof\n", "\n", "Suppose $z$ is an root of $p(z) = 0$. We can now show that this is an eigenvalue of $C$, with eigenvector $= (1,z,z^2,\\ldots,z^{n-1})$:\n", "\n", "$$\n", "C \\begin{pmatrix} 1 \\\\ z \\\\ z^2 \\\\ \\vdots \\\\ z^{n-1} \\end{pmatrix}\n", "= \\begin{pmatrix} z \\\\ z^2 \\\\ \\vdots \\\\ z^{n-1} \\\\ -c_0 - c_1 z - \\cdots - c_{n-1} z^{m-1} \\end{pmatrix}\n", "= \\begin{pmatrix} z \\\\ z^2 \\\\ \\vdots \\\\ z^{n-1} \\\\ z^n \\end{pmatrix}\n", "= z \\begin{pmatrix} 1 \\\\ z \\\\ z^2 \\\\ \\vdots \\\\ z^{n-1} \\end{pmatrix}\n", "$$\n", "\n", "where in the last row we used the fact that $p(z) = 0$ so $z^n = -c_0 - c_1 z - \\cdots - c_{n-1} z^{m-1}$.\n", "\n", "Hence $z$ is an eigenvalue. The **eigenvalues of C are the roots of p** and vice versa.\n", "\n", "## Conclusion\n", "\n", "If you have a polynomial whose leading coefficient is *not* 1, you can just divide the polynomial by that coefficient to get it in this form, without changing its roots. Hence the **roots of any polynomial can be found by computing the eigenvalues of a companion matrix.**" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "companion (generic function with 1 method)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function companion(p::Poly)\n", " c = coeffs(p)\n", " n = degree(p)\n", " c = c[1:n] / c[end]\n", " C = [ [ zeros(n-1)'; eye(n-1,n-1) ] -c ]'\n", " return C\n", "end" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$6 - 5\\cdot x + x^{2}$" ], "text/plain": [ "Poly(6 - 5*x + x^2)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Poly([-2, 1]) * Poly([-3, 1]) # (x - 2) * (x - 3)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2×2 Array{Float64,2}:\n", " 0.0 1.0\n", " -6.0 5.0" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C = companion(p)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2-element Array{Float64,1}:\n", " 2.0\n", " 3.0" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eigvals(C)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$-24 + 2\\cdot x + 17\\cdot x^{2} - 8\\cdot x^{3} + x^{4}$" ], "text/plain": [ "Poly(-24 + 2*x + 17*x^2 - 8*x^3 + x^4)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ " # (x - 2) * (x - 3) * (x - 4) * (x + 1)\n", "p = Poly([-2, 1]) * Poly([-3, 1]) * Poly([-4, 1]) * Poly([1, 1])" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4×4 Array{Float64,2}:\n", " 0.0 1.0 0.0 0.0\n", " 0.0 0.0 1.0 0.0\n", " 0.0 0.0 0.0 1.0\n", " 24.0 -2.0 -17.0 8.0" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C = companion(p)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4-element Array{Float64,1}:\n", " -1.0\n", " 4.0\n", " 3.0\n", " 2.0" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eigvals(C)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In fact, **this is the most common method to find roots of polynomials of degree ≥ 5**: you find the companion matrix, and compute its eigenvalues. This is precisely how the Polynomials package does it (albeit with some extra cleverness to check for leading and trailing zero coefficients):" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/html": [ "roots{T}(p::Polynomials.Poly{T}) at /Users/stevenj/.julia/v0.6/Polynomials/src/Polynomials.jl:630" ], "text/plain": [ "roots(p::Polynomials.Poly{T}) where T in Polynomials at /Users/stevenj/.julia/v0.6/Polynomials/src/Polynomials.jl:630" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@which roots(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This would seem rather circular if eigenvalues were computed, in turn, by finding roots of polynomials. But they aren't: **practical computer eigenvalue solvers never compute the characteristic polynomial, and don't resemble generic root-finding algorithms (like Newton's method)**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Computing eigenvalues = polynomial roots = hard\n", "\n", "* Everyone learns the [quadratic formula](https://en.wikipedia.org/wiki/Quadratic_formula) to find roots of a quadratic (degree-2) polynomial.\n", "\n", "* There is a (horrible) [cubic formula](https://en.wikipedia.org/wiki/Cubic_function) to find the roots of any cubic (degree-3) polynomial.\n", "\n", "* There is a (terrifying) [quartic formula](https://en.wikipedia.org/wiki/Quartic_function) to find the roots of any quartic (degree-4) polynomial.\n", "\n", "* There is **no formula** (in terms of a *finite number* of ±,×,÷,ⁿ√) for the roots of an **arbitrary quintic** polynomial or **any degree ≥ 5**. This is the [Abel–Ruffini theorem](https://en.wikipedia.org/wiki/Abel%E2%80%93Ruffini_theorem), proved in the 19th century.\n", "\n", "This does **not mean** that you can't compute roots (or eigenvalues) in practice! But it means that **root-finding/eigenvalue algorithms are necessarily *iterative***: they **converge toward the solution** but **never reach it exactly**. You can get the solution to *any desired accuracy*.\n", "\n", "For example we've already seen one such algorithm! [Newton's method](https://en.wikipedia.org/wiki/Newton%27s_method) is an algorithm that could be used to find the roots of an arbitrary polynomial (given enough starting guesses), and converges *very* quickly without ever exactly *reaching* the root.\n", "\n", "The most common algorithm to find eigenvalues (and hence polynomial roots, via companion matrices) is the [QR algorithm](https://en.wikipedia.org/wiki/QR_algorithm). As you might guess, it is *related* to the $A=QR$ factorization. Explaining *how* and *why* this algorithm works, however, is outside the scope of 18.06. (It takes me a week+ in 18.335: graduate numerical methods.)\n", "\n", "This means that the textbook characteristic-polynomial method we use to find eigenvalues of $2\\times 2$ matrices is something of a fraud: unlike Gaussian elimination, it bears no resemblance whatsoever to how eigenvalues are really computed. In 18.06, therefore, we will mostly assume that the computer hands us the eigenvalues and eigenvectors, and **we will focus on what eigensolutions *mean*, how they are *used*, and what their *properties* are.**" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "One thing that it is useful to know, however, is that the computer algorithm to compute eigenvalues/eigenvectors of an $m \\times m$ matrix requires $\\sim m^3$ operations, just like Gaussian elimination. However, the \"constant\" coefficient in front of $m^3$ is significantly worse:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0.037040 seconds (107 allocations: 7.644 MiB, 28.83% gc time)\n", " 0.136025 seconds (19.23 k allocations: 9.247 MiB)\n", " 1.795111 seconds (25 allocations: 7.936 MiB, 1.88% gc time)\n", " 3.510496 seconds (6.35 k allocations: 31.892 MiB, 3.49% gc time)\n" ] } ], "source": [ "A1000 = rand(1000,1000)\n", "@time lufact(A1000)\n", "@time qrfact(A1000)\n", "@time eigvals(A1000)\n", "@time eig(A1000);" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "164.89250315453947" ], "text/plain": [ "164.89250315453947" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@elapsed(eig(A1000)) / @elapsed(lufact(A1000))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finding eigenvalues and/or eigenvectors is not so cheap, but it is often worth it!" ] } ], "metadata": { "kernelspec": { "display_name": "Julia 0.6.3", "language": "julia", "name": "julia-0.6" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "0.6.3" }, "widgets": { "state": { "1df4718a-d6a4-4ee1-9281-dbdb7f019e2d": { "views": [ { "cell_index": 27 } ] } }, "version": "1.2.0" } }, "nbformat": 4, "nbformat_minor": 2 }