{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Douglas Rachford Proximal Splitting\n", "===================================\n", "\n", "*Important:* Please read the [installation page](http://gpeyre.github.io/numerical-tours/installation_matlab/) for details about how to install the toolboxes.\n", "$\\newcommand{\\dotp}[2]{\\langle #1, #2 \\rangle}$\n", "$\\newcommand{\\enscond}[2]{\\lbrace #1, #2 \\rbrace}$\n", "$\\newcommand{\\pd}[2]{ \\frac{ \\partial #1}{\\partial #2} }$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\umax}[1]{\\underset{#1}{\\max}\\;}$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\uargmin}[1]{\\underset{#1}{argmin}\\;}$\n", "$\\newcommand{\\norm}[1]{\\|#1\\|}$\n", "$\\newcommand{\\abs}[1]{\\left|#1\\right|}$\n", "$\\newcommand{\\choice}[1]{ \\left\\{ \\begin{array}{l} #1 \\end{array} \\right. }$\n", "$\\newcommand{\\pa}[1]{\\left(#1\\right)}$\n", "$\\newcommand{\\diag}[1]{{diag}\\left( #1 \\right)}$\n", "$\\newcommand{\\qandq}{\\quad\\text{and}\\quad}$\n", "$\\newcommand{\\qwhereq}{\\quad\\text{where}\\quad}$\n", "$\\newcommand{\\qifq}{ \\quad \\text{if} \\quad }$\n", "$\\newcommand{\\qarrq}{ \\quad \\Longrightarrow \\quad }$\n", "$\\newcommand{\\ZZ}{\\mathbb{Z}}$\n", "$\\newcommand{\\CC}{\\mathbb{C}}$\n", "$\\newcommand{\\RR}{\\mathbb{R}}$\n", "$\\newcommand{\\EE}{\\mathbb{E}}$\n", "$\\newcommand{\\Zz}{\\mathcal{Z}}$\n", "$\\newcommand{\\Ww}{\\mathcal{W}}$\n", "$\\newcommand{\\Vv}{\\mathcal{V}}$\n", "$\\newcommand{\\Nn}{\\mathcal{N}}$\n", "$\\newcommand{\\NN}{\\mathcal{N}}$\n", "$\\newcommand{\\Hh}{\\mathcal{H}}$\n", "$\\newcommand{\\Bb}{\\mathcal{B}}$\n", "$\\newcommand{\\Ee}{\\mathcal{E}}$\n", "$\\newcommand{\\Cc}{\\mathcal{C}}$\n", "$\\newcommand{\\Gg}{\\mathcal{G}}$\n", "$\\newcommand{\\Ss}{\\mathcal{S}}$\n", "$\\newcommand{\\Pp}{\\mathcal{P}}$\n", "$\\newcommand{\\Ff}{\\mathcal{F}}$\n", "$\\newcommand{\\Xx}{\\mathcal{X}}$\n", "$\\newcommand{\\Mm}{\\mathcal{M}}$\n", "$\\newcommand{\\Ii}{\\mathcal{I}}$\n", "$\\newcommand{\\Dd}{\\mathcal{D}}$\n", "$\\newcommand{\\Ll}{\\mathcal{L}}$\n", "$\\newcommand{\\Tt}{\\mathcal{T}}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\al}{\\alpha}$\n", "$\\newcommand{\\la}{\\lambda}$\n", "$\\newcommand{\\ga}{\\gamma}$\n", "$\\newcommand{\\Ga}{\\Gamma}$\n", "$\\newcommand{\\La}{\\Lambda}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\Si}{\\Sigma}$\n", "$\\newcommand{\\be}{\\beta}$\n", "$\\newcommand{\\de}{\\delta}$\n", "$\\newcommand{\\De}{\\Delta}$\n", "$\\newcommand{\\phi}{\\varphi}$\n", "$\\newcommand{\\th}{\\theta}$\n", "$\\newcommand{\\om}{\\omega}$\n", "$\\newcommand{\\Om}{\\Omega}$\n" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "This numerical tour presents the Douglas-Rachford (DR) algorithm to\n", "minimize the sum of two simple functions. It shows an\n", "application to\n", "reconstruction of exactly sparse signal from noiseless measurement using\n", "$\\ell^1$ minimization." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "library(pracma)\n", "\n", "options(warn=-1) # turns off warnings, to turn on: \"options(warn=0)\"\n", "\n", "# Importing the libraries\n", "for (f in list.files(path=\"nt_toolbox/toolbox_general/\", pattern=\"*.R\")) {\n", " source(paste(\"nt_toolbox/toolbox_general/\", f, sep=\"\"))\n", "}\n", "for (f in list.files(path=\"nt_toolbox/toolbox_signal/\", pattern=\"*.R\")) {\n", " source(paste(\"nt_toolbox/toolbox_signal/\", f, sep=\"\"))\n", "}\n", "for (f in list.files(path=\"nt_toolbox/toolbox_graph/\", pattern=\"*.R\")) {\n", " source(paste(\"nt_toolbox/toolbox_graph/\", f, sep=\"\"))\n", "}" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Douglas-Rachford Algorithm\n", "--------------------------\n", "The Douglas-Rachford (DR) algorithm is an iterative scheme to minimize\n", "functionals of the form\n", "$$ \\umin{x} F(x) + G(x) $$\n", "where $F$ and $G$ are convex functions for which one is able to\n", "comptue the proximal mappings $ \\text{prox}_{\\gamma F} $ and\n", "$ \\text{prox}_{\\gamma G} $ which are defined as\n", "$$ \\text{prox}_{\\gamma F}(x) = \\text{argmin}_{y} \\frac{1}{2}\\norm{x-y}^2 + \\ga F(y) $$\n", "(the same definition applies also for $G$).\n", "\n", "\n", "The important point is that $F$ and $G$ do not need to be smooth.\n", "One only needs them to be \"proximable\".\n", "\n", "\n", "This algorithm was introduced in:\n", "\n", "\n", "P. L. Lions and B. Mercier\n", "_Splitting Algorithms for the Sum of Two Nonlinear Operators_\n", "SIAM Journal on Numerical Analysis\n", "Vol. 16, No. 6 (Dec., 1979), pp. 964-979\n", "\n", "\n", "as a generalization of an algorithm introduced by Douglas and Rachford in\n", "the case of quadratic minimization (which corresponds to the solution of\n", "a linear system).\n", "\n", "\n", "To learn more about this algorithm, you can read:\n", "\n", "\n", "Patrick L. Combettes and Jean-Christophe Pesquet,\n", "_Proximal Splitting Methods in Signal Processing_,\n", "in: Fixed-Point Algorithms for Inverse\n", "Problems in Science and Engineering, New York: Springer-Verlag, 2010.\n", "\n", "\n", "\n", "A DR iteration reads\n", "$$ \\tilde x_{k+1} = \\pa{1-\\frac{\\mu}{2}} \\tilde x_k +\n", " \\frac{\\mu}{2} \\text{rprox}_{\\gamma G}( \\text{rprox}_{\\gamma F}(\\tilde x_k) )\n", " \\qandq x_{k+1} = \\text{prox}_{\\gamma F}(\\tilde x_{k+1},) $$\n", "\n", "\n", "\n", "We have used the following shortcuts:\n", "$$ \\text{rprox}_{\\gamma F}(x) = 2\\text{prox}_{\\gamma F}(x)-x $$\n", "\n", "\n", "It is of course possible to inter-change the roles of $F$ and $G$,\n", "which defines another set of iterations.\n", "\n", "\n", "One can show that for any value of $\\gamma>0$, any $ 0 < \\mu < 2 $,\n", "and any $\\tilde x_0$, $x_k \\rightarrow x^\\star$\n", "which is a minimizer of the minimization of $F+G$.\n", "\n", "Compressed Sensing Acquisition\n", "------------------------------\n", "Compressed sensing acquisition corresponds to a random projection\n", "$y=Ax_0$ of a signal $x_0$ on a\n", "few linear vectors (the lines of $A$). For the recovery of $x_0$ to be possible, it is assumed\n", "to be sparsely represented in an orthogonal basis. Up to a change of\n", "basis, we suppose that the vector $x$ itself is sparse.\n", "\n", "\n", "Initialize the random number generator to have always the same signals." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "set.seed(0)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Dimension of the problem." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "n = 400" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Number of measurements." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "p = round(n/4)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Create a random Gaussian measurement matrix $A$." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "A = randn(p,n) / sqrt(p)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Sparsity of the signal." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "s = 17" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "We begin by generating a $s$-sparse signal $x_0$ with $s$ randomized values.\n", "Since the measurement matrix is random, one does not care about the sign\n", "of the Diracs, so we use +1 values." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "sel = sample(c(1 : n))\n", "x0 = zeros(n, 1)\n", "x0[sel[1:s]] = 1" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "We perform random measurements $y=Ax_0$ without noise." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "y = A %*% x0" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Compressed Sensing Recovery using DR\n", "------------------------------------\n", "Compressed sensing recovery corresponds\n", "to solving the inverse problem $y=A x_0$, which is ill posed because\n", "$x_0$ is\n", "higher dimensional than $y$.\n", "\n", "\n", "The reconstruction can be perform with $\\ell^1$ minimization,\n", "which regularizes the problems by using the sparsity of the solution.\n", "$$ x^\\star \\in \\uargmin{ A x = y } \\norm{x}_1 $$\n", "where the $\\ell^1$ norm is defined as\n", "$$ \\norm{x}_1 = \\sum_i \\abs{x_i}. $$\n", "\n", "\n", "This is the minimization of a non-smooth function under affine\n", "constraints. This can be shown to be equivalent to a linear programming\n", "problem, for wich various algorithms can be used (simplex, interior\n", "points). We propose here to use the DR iterative algorithm.\n", "\n", "\n", "It is possible to recast this problem as the minimization of $F+G$\n", "where $G(x) = \\norm{x}_1$ and $F(x)=\\iota_{H}$ where $H =\n", "\\enscond{x}{Ax=y}$ is an affine space, and $\\iota_H$ is the indicator\n", "function\n", "$$ \\iota_H(x) = \\choice{ 0 \\qifq x \\in H, \\\\ +\\infty \\qifq x \\notin H. } $$\n", "\n", "\n", "The proximal operator of the $\\ell^1$ norm is the soft thresholding:\n", "$$ \\text{prox}_{\\gamma \\norm{\\cdot}_1}(x)_i = \\max\\pa{ 0, 1-\\frac{\\ga}{\\abs{x_i}} } x_i. $$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "proxG = function(x, gamma) {x * pmax(1 - ((gamma) / abs(x)), 0)}" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Display the 1-D curve of the thresholding." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\nVEYRAgCMRhECAIxGEQIAjEYRAgCMRhECAIxGEQIAjEYRAgCMRhFWjGeffdbHx6f0xyclJXXu\n3Pn666+vU6dOUFDQ6tWrKy+bZyrDCnTu3NnnctyQ1nJl2zBsM7ZZOZnyzlaEcsvJybnppptK\nv5gffvihw+G45C8iKiqqUkN6lLKtwK233mrmHi7bcrHN2GblZM47m4l/uxXop59+SkhICAoK\nKv3/Kj/vrZEjR548eTIrK+vtt9+uUqXKtddee/jw4coO7AnKtgK5ubk+Pj7XXHPNhQsX3JnW\ncmVbLrYZ26w8THtnowjLpQz/Zvz73/8uqXPnzhe/2KdPH0mTJk2qnJiepWwrkJKSIqlZs2aV\nH9CzlG252GZss/Iw7Z2NnxGWy8/rWPpvWbdunaQBAwZc/GJISIikxMTEio3nmcq2Avv27ZN0\nxx13VHI6j1O25WKbsc3Kw7R3NorQ3Xbs2CGpXbt2F7/Yvn17/ed/Qq9XthUo/qVbbrklMjLy\n5ptvrl69esuWLd966638/PxKzmuxsi0X24xt5mb23nJWjKFeqPSLef3110s6e/bsxS9mZmZK\nql69euWk8yxlW4Hw8HBJv7yALTg42Lt/nFO25WKbsc0qhCHvbEyE7paVlSXJ19f34hdr1aol\nyeVyWZPJvcq2Avv375fUpk2bxMTE3Nzc48ePz5w5s0aNGmvWrJk6dWolR7ZS2ZaLbcY2czN7\nbzmrm9gerrhopV/M4o1y5syZi1/MycmRVKtWrYqJ6zEuu24VuAJz586V1Lx58wpL7HnKtlxG\nbbPLYptVCEPe2ZgI3a1u3bqSMjIyLn7xxIkTkurVq2dNJveqwBUICwuTlJ6eXnHpPE7Zlott\nxjZzM1tvOYqwVC7550N5fit/f39J27dvv/jFnTt3SgoICCjP7+yBLrtuFbgCxadcik+/eKuy\nLZdR2+yy2GZuZustRxG6W5cuXSQtXLjw4hfnz58v6dFHH7Umk3uVbQXq1q3r4+Ozd+/ei18s\n/k3uu+++SgnqGcq2XGwztpmb2XvLuescrJcr/WJmZGTUrFlT0vjx40+dOvXjjz+OHj1aUv36\n9S+54MpblW0FnnnmGUkBAQFJSUnnzp07duzYjBkzqlevLumTTz5xZ343K9tysc3YZhXCkHc2\nirBilLBdfvlLCxYsuOT67GrVqiUkJLglqUcozQpcsm5Hjhxp0KDBL/8lN2TIELfHd7cyLFcp\nv8u7sc3Kz5B3NoqwYlzVdikqKvr0008ffPDBWrVq1alTp2vXrps3b678jJ7liivwy3U7derU\nhAkTWrRo4evre91113Xq1Gn+/PlujGylMixXab7L67HNysmQdzafovJd+gEAgK1xsQwAwGgU\nIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBo\nFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDA\naBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEA\nwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQh\nAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgU\nIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBo\nFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGgUIQDAaBQhAMBoFCEAwGj/H+vj\n/x9Yd1/OAAAAAElFTkSuQmCC", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "options(repr.plot.width=5, repr.plot.height=3.5)\n", "t = linspace(-1,1)\n", "plot(t, proxG(t, 0.3), type=\"l\", col=\"blue\", ylab=\"\", xlab=\"\")" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "The proximal operator of the indicator function of $H$ is the\n", "projector, and does not depends on $\\gamma$.\n", "$$ \\text{prox}_{\\gamma \\iota_H}(x)_i = \\text{prox}_F(x) = x + A^* (A A^*)^{-1} (y-Ax). $$" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "pA = t(A) %*% solve(A%*% t(A))\n", "proxF = function(x,y){x + pA %*% (y - A %*% x)}" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "There are two kinds of Douglas-Rachford iterations, depending on wether\n", "you first apply the projection or the thresholding.\n", "\n", "\n", "The first algorithm, (DR1), reads:\n", "$$ \\tilde x_{k+1} = \\pa{1-\\frac{\\mu}{2}} \\tilde x_k + \\frac{\\mu}{2} \\text{rprox}_F( \\text{rprox}_\\gamma(\\tilde x_k) )\n", "\\qandq x_k = \\text{prox}_\\gamma(\\tilde x_k) $$\n", "\n", "\n", "The second algorithm, (DR2), reads:\n", "$$ \\tilde x_{k+1} = \\pa{1-\\frac{\\mu}{2}} \\tilde x_k + \\frac{\\mu}{2} \\text{rprox}_{\\gamma G}( \\text{rprox}_F(\\tilde x_k) )\n", "\\qandq x_k = \\text{Prox}_F(\\tilde x_k) $$\n", "\n", "\n", "The advantage of (DR2) is the the iterates $x_k$ always satisfy\n", "$Ax_k=y$, so that one can only keep track of the evolution of the\n", "$\\ell^1$ norm during the iterations. We will use only (DR2) in the\n", "following.\n", "\n", "\n", "Set the value of $\\mu$ and $\\gamma$.\n", "You might consider using your own value to speed up the convergence." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "mu = 1\n", "gamma = 1" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Define the rprox operators." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "rproxG = function(x,tau){2 * proxG(x,tau) - x}\n", "rproxF = function(x, tau){2 * proxF(x,tau) - x}" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Number of iterations." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "niter = 500" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "__Exercise 1__\n", "\n", "Implement the DR iterative algorithm on |niter| iterations.\n", "Keep track of the evolution of the $\\ell^1$ norm." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGkCAIAAABivMx0AAAABmJLR0QA/wD/AP+gvaeTAAAg\nAElEQVR4nO3deXiTdbr/8TtNaZPuCy0Dshw2QcSiLB7xsBUpY0WY6ojDAEfgAnHADRyWywUR\nWUfmyNEjjIojRVmURRi0dQQKPeJcCAqIPwRKQaDstqW0pfuS3x8PJ4YuaYCkT558368/vJIn\n3+a57xjyyffZYrLZbAIAgKr89C4AAAA9EYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAACl\nEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAA\npRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQA\nAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGE\nAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKUR\nhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAACl\nEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAA\npRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQA\nAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGE\nAAClEYQAAKURhAAApfnrXYAB5Ofnr1y5sqSkRO9CAMDArFbrmDFjwsPD9S6kJoKwYatXr37+\n+ef1rgIADM/f33/y5Ml6V1ETQdiwiooKEfn73//erVs3vWsBAEM6ePDg+PHjtY9Tb0MQuqpT\np049evTQuwoAMKTS0lK9S6gXB8sAAJRGEAIAlEYQAgCURhB6hM0mXrlLGABQE0HoEZMmSc+e\nehcBAHABQegRubly6JBUVeldBwCgIQShR8TESHW1XL6sdx0AgIYQhB7RtKmISHa23nUAABpC\nEHqEFoQ5OXrXAQBoCEHoEQQhABgFQegRbBoFAKMgCD0iJkaEGSEAGAFB6BFsGgUAoyAIPYIZ\n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\nYII=", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nuon8xC1CIiISNW4Rquru3bsGKuwaSElJWb9+ffny5QvsjhyFR3p6+oMHDypVqsS5i4po5y7a\niQNIT09/+vRp7969Vb8bwd27d/O1pf+CQaic7J3u16+fphshIipEVq5cmdcvKZy38WEQKtez\nZ8/U1NSkpCRViq9fv75lyxZHR8fy5cvnd2OFzdOnT8+ePcu5a7qXgibauYt24vhn7j169KiT\nl5MqDA0Ne/bsmX9d/XuavjOwttmxYweAHTt2aLoRDeDcOXdREe3EBa2bu+h2bRMREWXFICQi\nIlFjEBIRkagxCImISNQYhEREJGoMQiIiEjUGIRERiRqDkIiIRI1BSEREosYgVDNDQ8PMf8WG\nc+fcRUW0E4fWzV0iCIKme9AqaWlpx48fb9OmjVQq1XQvBY1z59w13UuBEu3EoXVzZxASEZGo\ncdcoERGJGoOQiIhEjUFIRESixiAkIiJRYxASEZGoMQiJiEjUGIRERCRqDEIiIhI1BiEREYka\ng5CIiESNQUhERKLGICQiIlFjEBIRkagxCImISNQYhEREJGoMQiIiEjUGodpEREQ4OztbWlpa\nWFg4OTmFhYVpuqN84ezsLJEnW5k2rY3+/fvnnGAmVWZadNeGgrlr63dCUlLS9OnT7ezsTE1N\nDQ0Nq1WrNmbMmJiYmGxlWvm+qzJ37XzfBVKHffv2SaXSbOt2+fLlmu5L/cqWLav0G0mb1kZC\nQoKNjU1uPymqzLTorg3Fc9fK74SEhIQGDRrknFS1atViYmIyy7TyfVdx7lr5vjMI1SDz98WY\nMWPevHkTGxu7aNEiHR0dfX39p0+faro7dUpMTJRIJLq6usnJybnVaM3aiIqKCg8Pd3Jyyvlz\nLqPKTIvo2lA6d239Tpg9ezYAa2vr7du3v3//PjY2NiQkpEyZMgCGDRsmq9HW912VuWvr+84g\nVIPVq1cDcHZ2zjro5eUFYOrUqZrqKj9cu3YNQKVKlRTUaM3aUPAHr4wqMy2ia0Pp3LX1O6Fe\nvXoAdu7cmXXw+PHjAEqVKiV7qK3vuypz19b3nZ8RqoHse6VPnz5ZB93d3QGcPHlSMz3lj3v3\n7gGoUqWKghqtWRuZPyS5Fagy0yK6NpTOXVu/Ex4+fAjA2dk566CDgwOAqKgo2UNtfd9Vmbu2\nvu8MQjW4fPkygGy71xs2bIh/vm+0hmw6JUuWHDRoUIkSJQwMDGrVqjVv3rzU1NTMGvGsDVVm\n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\nEBIRkaj9H5SSMu8oVnB/AAAAAElFTkSuQmCC", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\ngAsXLohIWFiYF7fUN5sGeIaPWIMS5syZExwc/MEHHzj/ZO2dO3cePnw4Li4uIyPD9ckHDBgg\nIocPH7ZZvnfvXg9Kbet///d/ReStt94yn2BpYYkft/Tr109E9u3b52hAa2uriERFRbX9lde3\n1LubBniGIIQS+vTp8+yzzxqNxgcffPD777+3O6a4uPiJJ54QkbVr15rPMnXRpEmTROStt96y\nXnj58uW1a9d6XrEV8wk+Fy9etF7Y3Nz861//2oPZ0tPTRWTJkiWOPnR75cqVImK+3NCG17fU\nu5sGeMjfL0kBH7l69er48eNFJCws7Gc/+1l+fn5lZWVTU1NNTc2BAwd+/vOfmx+Uf/nLX9rc\n0O49xXrhsWPHQkNDReSpp546e/aswWAoLCwcOXKkXq+3ua3zHx0t/8///E8RGT169Jdffnnt\n2rWzZ89u3Lhx6NCher0+JCRERCoqKpxPaK22tvbmm28Wkfj4+Ndee+3o0aNXrlxpbGw8ffr0\njh07Jk+eLCJ6vX7//v1e3FLfbBrgGXYsKMRgMDz66KOOzsKIjIxcvXp121u1G4Qmk2nTpk2W\nMLBYunSpOVQc3crFtPjuu++6du3attpt27ZNnDjRerCLaVFWVnbnnXfabYKIxMXFWX8iq1e2\n1GebBniAHQvKKS4u/sUvfpGQkBATE9OpU6devXpNmDBh1apVNp/ybOFKEJpMpoMHD953331d\nunQJDw9PSEj4n//5H/MRv65duzq6lYtpYTKZysrKHnrooZiYmLCwsNtuu+25554zX/b+6aef\ndu/evWfPns4nbKuxsXHjxo33339/7969Q0NDQ0JC+vbtm5qaun79+itXrnh9S325aYC7uKAe\nuF4OHTo0duzYkSNHFhcX+7uW60udLUVA4mQZoKPi4uJ0Op35Snxr77zzjvzrBJPAoM6WQikE\nIdBR5q9KmDlz5t69e2traxsaGr755ptnnnlm/fr1ERERzzzzjL8L9Bp1thRK4dAo0FHnzp27\n++67y8vLbZaHhoZu3LhxxowZfqnqelBnS6EUghDwgvr6+qysrPfff//EiRNXr17t1avX5MmT\n582bN2zYMH+X5mXqbCnUQRACAJTGe4QAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQA\nAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGE\nAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApQX7uwC3nT59euPG\njQUFBWVlZbW1tc3NzREREfHx8QkJCdOmTcvIyIiMjPR3jQAAzdCZTCZ/1+CGdevWPffcc42N\njY4G9O7dOysra9q0ab6sCgCgXVoKwpycnPvvvz8oKCgjIyM1NXXs2LHdu3fv3LlzY2Pj+fPn\nS0pK/vSnP+3ZsyckJKSwsHD8+PH+rhcAoAFaCsJJkyb9/e9//8Mf/jBv3jxHY55//vlXX311\n6tSpn3zyiS9rAwBolJaCsEuXLpcvX66rq4uOjnY0pqqqqkePHjExMTU1Nb6sDQCgUVo6azQo\nKEhEmpqanIzR6/Ui0tzc7KOaAAAap6UgHDlypIi8+uqrTsa89tprlpEAALRLS4dGCwsLk5KS\njEZjUlLST3/609GjR/fu3Ts8PNxgMFRXVx86dGjLli0ff/yxTqfbu3dvSkqKt9ZbV1e3adOm\na9eueWtCAFBQeHj47Nmzu3Tp4u9C2jBpyp49e+Li4pxsTlRU1JYtW7y70j/+8Y8++3MAQAD7\n4x//6N3HZ6/Q2AX16enpKSkp27dvz8/PLy4urq6urqurCwkJiYuLGzJkSHJy8uzZs2NjY727\nUvM7ju+8887w4cM7PtuuXbveeustg8Fg97cTJkxYunSp1zdBi86dO7dkyZKvv/7asqRv377L\nli2z+1fYt2/fyy+/XFtba/5Rp9MlJia++OKLTs6rspGfn//KK69YzzB58uRFixa5PoPZwYMH\nV6xYUVlZaVkyfvz4pUuXdu/e3XqY0Wh84403duzY0dLSYl4SHh4+d+7c2bNn63Q6uzPX1tYu\nX758//79liU9evRYtGjRxIkTXSmssrJyyZIlhw8ftvvb6OjoX/ziF2lpadYLjxw5smzZsoqK\nCsuSkSNHLl++vFevXq6s0UVtWxESEqLT6SyXCwcFBU2fPn3hwoURERHuTr5///6VK1dWVVVZ\nltx9991LliyJiYmxO95kMm3atGnDhg0NDQ3mJZ06dcrIyJg3b575/IOOO3HixOLFi0tLSy1L\nBg4cuGLFikGDBnllfre03Svi4+OXLl06atQor6/rH//4x9y5c2/QEzj8ncQa8Prrr4tIUVFR\nx6dat25du3+RhISEhoaGjq9L0y5dunTrrbe2bU5kZGRJSYnN4NzcXLsPUuPHj29paXFldR9/\n/LH5VCwbEydOdHEGs6KiopCQkLbz3HnnndeuXbMe+dRTT9n96//2t7+1O3NjY6PdZwCdOnUq\nLCxst7ArV67cdtttznc8EbE+mnLkyBG7wdO/f/+6ujrXe9IuR62wcd9997k7c2FhYadOndpO\nNWLEiMbGRrs3+e1vf2t37U899VSHN9RkMpkqKip69OjRdv6YmJjy8nKvrMJ1jvaKsLCww4cP\ne311RUVFIvL66697feaOIwjb560gvHbtWteuXV25z2dmZnqlcu1avny5o+akpqbaDL7jjjsc\nDd66dasrq3PyZPz99993vWwnL87efPNNy7CjR486etkXHh5eU1PTdub169c7mnnMmDHtFub8\nFDOLnj17Njc3m28yffp0R8NWrlzpek+cc9KKtv7617+6NfmYMWMcTbV+/fq242tqasLCwuyO\n1+l0R48e7fj2Pvvss45Keuyxxzo+v1uc7BVJSUleX92NHIRaOmv0ejAajR9//PEup44cOSLe\nuCTjwIEDly5dcmVkbm5uB9eldU468Ne//tVoNFp+LC8v/+677zyYx+L48eNlZWUdmcHs0qVL\nBw4ccPRb60942Lt3r8nBSWrXrl0rKChwq4xDhw5ZH/qzy8WtOH/+vGVv/9vf/uZomBc/rcJJ\nK9py635RVVV16NAht6bat2+f5YioDZPJtHfvXtfX7tZ6zXz/GSBOiiksLFTq9ECNvUfoCvMT\nTBfvXQUFBTbviziybdu2SZMmdaSwCxcueH1koHLSgcbGxosXL1recnPeK1c62fEZzCorK53s\ndefPn7f7fxfX2G6Rzk8ic3ffM3+cvaMxzut3i1tTuXW/8ODP6q09wbNJLly4YDKZXH99fF2L\naWlpqa6u7tu3r8+K8a8ADEK3JCYmZmdnO3oaaJaZmVlYWNinT58Orsv1U2A4WSY2NvbkyZN2\nfxUcHGx9hNl5r1zpZMdncHceD9bo/CY2Z+K4e/O2I7t27arX661feXs2m4ur8/1gD5rsla2O\njY11dKJcbGysL1NQnG5RUFCQo/OJAlIABqHrR1pERK/Xp6amOh9jPoBg92QKt0yYMCEiIuLq\n1avtjkxKSurgurQuKSmpuLjY7q/uvffe4OD/v98OHDjw1ltvdZSarnRy8ODBffv2PXPmjMcz\nmMXGxt51113mQ4vO53EyZ3Bw8L333mv35jk5OXZvMnTo0J49ezqvLSkpyfwOjXPdunUzny4Y\n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\niPlfM1pnV1FRkYi8+OKLun8xL7f+f6C2jiD0jiFDhojIoUOHrBeWlJSISEJCgn9q0ghXWqda\nexsaGpKTkz/77LP77rvv+++//+Uvf2l+lm2NvrUVHh6u0+lsHoLvuOMOEamqqrIsoXUeC9TW\nEYTekZycLCJbt261XvinP/1JRKZOneqfmjTCldap1t533323pKTk3nvv/fDDD83XJrdF39oa\nPHiwiBQWFlov/Pzzz0XE+hNnaJ1dbd85s15u/n/Ats6n70gGrurq6qioKBF58cUXa2trq6qq\nnn/+eRHp3bu3zdlTynK0v7nSOtXaO23aNBEpLi52Moa+tfW73/3OvHW5ublXr16trq7eunWr\n+ZnEyy+/bBlG61zU9j4bqK0jCL1m8+bNNh9QGxISkpub6++6bhROnni50jql2mv+NLV2n7zS\nNxtXr14dPnx4245NmTKlqanJeiStc4Xd+2xAto4g9KZPP/30nnvu6dy5c7du3f7jP/5j//79\n/q7oBmL3TmXhSuvUaW94eLgrQWiib21cvHhx/vz5AwYMCAkJiYqKGj169Nq1a5ubm9uOpHXt\ncnSfDbzW6UyOP/sKAICAx8kyAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQA\nAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGE\nAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKUR\nhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAACl\nEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAA\npRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQA\nAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGEAAClEYQAAKURhAAApRGE\nAAClEYQAAKURhAAApRGEAACl/T/EYfaUaAD4rgAAAABJRU5ErkJggg==", "text/plain": [ "Plot with title \"Original Signal\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nqTYI+/Xrd+XKFfv4Ll26iIjTrpLm6tWrItKuXTv7sJMnT3pe+3333SciR48edb3p4sWLItKq\nVSv7kqSkJBFJSEiwL3n00UdF5G9/+5vjHb2s0HHzb926VYsZOnfuLO4+5LOfXeJhwx1du3bt\n448/nj179pgxY9q1a2fvfGBg4Lx585xK1f7fsWNHcdl7s9lsP/30k9vcctoW+4lFrsVcvHhx\n69atS5Ysefrpp2NjY0NDQwlC1BSPD+iM29c1q9Wan5+/a9cu7XV50qRJ9pvsr4xVCQ4Ottls\n2gX4+fn5nteuzZabm+t6k/aNNo0aNbIvuXr1qsFgMJlMJSUlNputuLjYZDIZDIaff/7Zdc5q\nK/Sw+V7OEBISIiKlpaVOdy8vL69LWuTk5Hz88ccTJ04MCAgQkbVr17qWajKZROTmzZtO9y0r\nK3ObW47HRava8EOHDvXr189pS10P89Zl06AIHh/QGc+va9qHSW3btrUvCQoK8hwSBoPBZrNp\nJ8W4hoQT7UMypx0yzbVr10SkSZMmjgu1E0w+/fRTm82mXVfw4IMPOt3Rywo9bL6XM2jFu6ZR\ncXGxT9Ji+fLlIhIdHe1aqtbeiooKp7toZ/l6k1tOy/fu3atdOhIWFvboo48uXLhw+/bt2s6u\nlxMCdlxHiAZl2LBhIvLzzz/bl0RGRorItWvXqnoOaIfdtLNsLl++7Hn+iIgIEdGuE3CSnZ0t\nIo6HCkVEOxa6a9cu+7/jx493uqOXFXrg5Qxa8a6X2V25csXz/Bptd1bLe7e0M1ezsrJcb9JO\nbLF/6Yyddjy5FubNm2e1WidMmHDlypVPPvlkzpw5//Iv/9KxY0eLxVK7CaEyghANinaQ0DE5\ntNMm//u//9vzHbUrCF2v2v6f//kfg8HQtm1b7UftGoC9e/e6zrBjxw4RefDBBx0XarH32Wef\nWa1WbW/VNQi9rNCDGm3j/v37nZZ/8cUX3qxF+5xPu6zeLa3tbr/lVft48vjx407LtZN1a0Hb\n2HfffVeLWLtTp07VbkIora67lED9qvZx6zRg48aNIjJkyBD7JXd277zzjohERUXZbLZVq1aJ\nSL9+/ZwO302aNEkcPnRcvXq1iNxzzz1FRUWOwwoKCrSrxffu3eu0lqioKBHRDhs6XQBQowo9\nbL6XM6xcuVJEunfv7ngNQ2lpaY8ePbx5NZg9e7Y2VVW7ns8++6w4nBPrOOfMmTPF5XTZwsJC\n+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\nu7jcAAAAAElFTkSuQmCC", "text/plain": [ "Plot with title \"Recovered Signal\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "source(\"nt_solutions/optim_4b_dr/exo1.R\")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "# Insert your code here" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "We display the convergence speed of the $\\ell^1$ norm on the first half iterations, in log\n", "scales." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "# Insert your code here." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Display the original and the recovered signals.\n", "Since the original signal is highly sparse, it is perfectly recovered." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "# Insert your code here." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "__Exercise 2__\n", "\n", "Test the recovery of a less sparse signal.\n", "What do you observe ?" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAFoCAIAAAAElhK7AAAABmJLR0QA/wD/AP+gvaeTAAAg\nAElEQVR4nO3de3hTVbrH8TdN7y2l9IJYQKUgIkgZoTAM44Ui7VClPVWOFRgGUITHQQ+Ogjio\nxYIyCog4HgU8RQGHi8UL2JGKWGhHQa4dBuQgFKHlfivFUgJt0zTnjzyTJye3piEkpOv7+YOH\n7qys/a6Vnf3L3tlJNEajUQAAUFWArwsAAMCXCEIAgNIIQgCA0ghCAIDSCEIAgNIIQgCA0ghC\nAIDSCEIAgNIIQgCA0ghCAIDSCEIAgNIIQgCA0ghCAIDSCEIAgNIIQgCA0ghCAIDSCEIAgNII\nQgCA0ghCAIDSCEIAgNIIQgCA0ghCAIDSCEIAgNIIQgCA0ghCAIDSCEIAgNIIQgCA0ghCAIDS\nCEIAgNIIQgCA0ghCAIDSCEIAgNIIQgCA0ghCAIDSCEIAgNIIQgCA0ghCAIDSCEIAgNIIQgCA\n0ghCKOenn356+eWXk5OT27VrFxIS0q5duz59+kyZMmXHjh2ud6LRaDQaTXNX7d69rkf/VVVV\nb7311qBBg2666abg4OCIiIiuXbuOGjXqq6++MhqN7vV5Xd0gZaBF0lht9EAL1tDQ8Morr8yb\nN6+hocFug8cee2zhwoVt2rRpsivTTrm5Tx/37uXx/jdt2jRixIhz587ZvbVfv375+fm33XZb\ns/q83m6QMtAicUQIVRiNxrFjx86ePdtgMDzyyCMFBQWnT5+ur68/f/58UVHRE088odVq8/Pz\n09LSfvnlF1d6c2On7N69PGv//v1Dhw49d+7c6NGjS0pKLly4oNfrq6urd+/ePWvWrLi4uB07\ndtxzzz3mSbgRagauLyOghrfeektEWrVqZTr7Z2vz5s2xsbEiMmrUKC/X5imuPKkfffRREXn1\n1Vft3lpRUZGQkCAi06ZN83x914D9Fa4fNiwooaqqqlWrViLy5ZdfOmm2cePGgIAAEdm7d695\noXkXvGTJkjvuuCMgIMBob7986tSpJ554om3bthEREX379l2xYoVtM0d/btq0afDgwVFRUVFR\nUSkpKZs3b7at7fjx49OmTevZs2dUVFR0dHRSUtLUqVOPHz9u2caVtDCFfXV1taMGCxYsEJEe\nPXo46rNZI/Xm0AD3sGFBCf/93/8tIqmpqU22/M///E8RmTx5snmJaRc8Y8YMy/MoVvvlAwcO\n3HTTTVanW6ZNm+ZKEObl5VldBhIcHGyZxEajsbS0NCoqyvaMTmRk5A8//OCof7tCQ0NF5MiR\nI44aHD16VEQiIiLs9tmskXp5aIB72LCghKFDh4rI3/72tyZbrl27VkR+/etfm5eYdsEBAQHP\nPvvssWPHGhsbjf9/v6zX65OSkkTkwQcf3LNnz9WrV/ft25eenm7ep1t1ZfWnVqvNysrav39/\nfX39v/71rzvuuENExowZY1lVWlqaiPTt2/f777+vrq6uqanZuXPngw8+KCL9+/d31L9d/fv3\nF5F+/frt2rWrydm4xpF6eWiAe9iwoIQOHTqIyKFDh5psefLkSRGJi4szLzHtgocNG2bZzHK/\nvGrVKhHp1atXfX29uYFer+/bt68rQZiWlmYwGMwLv/rqKxFJTEy0XJ3pvG5ZWZnlQtNlnyEh\nIY76t6u4uDgoKMjUsmPHjn/4wx8WLFiwa9cuy+I9NVIvDw1wDxsWlGA6H1hTU9Nky7q6OhEJ\nCgoyLzHtgrdt22bZzHK/PGzYMBH56KOPrLrKz893JQi/++47y3tVVVWJSGRkZJOlHjx40Hn/\njmzbtm3gwIFWJy1DQkJ++9vf5ubmVlRUeGqk3h8a4AY+RwglhIaG1tXV1dfXmw+GHKmpqTFd\n2VFdXW1aYgqMy5cvR0REmJtZfqwtMTGxvLy8rKzs9ttvt+zqxIkTHTt2FIv3FK0+DGf685df\nfmndurX5Xkaj0XTBju1z8/jx41u3bj1y5MiRI0fKy8u3bt2q0+mc9O/cuXPnNm/eXFpa+q9/\n/Wvv3r0nTpwwLQ8MDHz55Zdzc3OvfaS+GhrQPN7PXsD7br75ZhE5depUky337t0rIl26dDEv\nsftMsVwYHh4uIpcuXbJqYzq4lKaOCC1PHjpa45YtW3r37m315O3Xr5/z/pvl3Llzn3/++YgR\nI0xZtXjx4msf6Q0yNMC5wGZkJuC3unfvfvr06Z07d2ZmZjpv+d1334lIcnKy653X19eLiCkk\nLJnjwTlT8DhRVFQ0ZMgQg8EQGRn5wAMP9OnT58477+zTp0+nTp08+K1j8fHxjzzyyCOPPJKc\nnDx58uR333133LhxVm2aO9IbZGhAE3ydxIA3vPbaayKSnZ3dZEtTBC5btsy8xO4zxXKh6SvZ\nKisrrdrs27fP6r7O/3S0fMCAASIyfPhwq0MxUyy50qGlsLAwETlz5oyjBmfPnhWR0NBQD47U\nO0MD3MNXrEEJY8eODQwM/Pzzz51/s/bq1at37doVHx+fnZ3teuedO3cWkV27dlktX79+vRul\n2vrnP/8pIu+9957pAkszc/w0S6dOnURk06ZNjho0NjaKSGRkpO1NHh+pZ4cGuIcghBI6dOjw\nzDPPGAyGYcOGHThwwG6b0tLS8ePHi8j8+fNNV5m6aODAgSLy3nvvWS68dOnS/Pnz3a/YgukC\nn4sXL1ou1Ov1f/7zn93oLSsrS0SmT5/u6Eu3X3/9dRExfdzQisdH6tmhAW7y9SEp4CVXrlz5\nzW9+IyKhoaH/9V//tXHjxnPnztXX11+4cOGHH3549tlnTTvl559/3uqOdp8plgsPHToUEhIi\nIk899dSJEyd0Ol1JSUnv3r21Wq3VfZ3/6Wj5f/zHf4hIcnLy9u3br169euLEiaVLl/bo0UOr\n1QYHB4vIyZMnnXdoqaqq6pZbbhGRhISEt99+e//+/ZcvX66rqzt27Fh+fv6gQYNERKvVbtmy\nxYMj9c7QAPewYUEhOp1u9OjRjq7CiIiImDt3ru29mgxCo9G4bNkycxiYvfrqq6ZQcXQvF9Pi\np59+io6Otq125cqVv/3tby0bu5gWZWVld911l91JEJH4+HjLb2T1yEi9NjTADWxYUE5paemf\n/vSnpKSkmJiYoKCgm2++ecCAAbNmzbL6lmczV4LQaDRu27btoYceat26dVhYWFJS0v/8z/+Y\nzvhFR0c7upeLaWE0GsvKyh599NGYmJjQ0NDbb7/9ueeeM33s/ZtvvomLi2vXrp3zDm3V1dUt\nXbp06NCh7du3DwkJCQ4O7tixY0ZGxgcffHD58mWPj9SbQwOaiw/UA9fLzp07+/Xr17t379LS\nUl/Xcn2pM1K0SFwsA1yr+Ph4jUZj+iS+pQ8//FD+fYFJy6DOSKEUghC4VqafShgxYsT69eur\nqqpqa2v37dv39NNPf/DBB+Hh4U8//bSvC/QYdUYKpXBqFLhWp06duueee8rLy62Wh4SELF26\ndPjw4T6p6npQZ6RQCkEIeEBNTU1eXt4nn3xy5MiRK1eu3HzzzYMGDZo0aVLPnj19XZqHqTNS\nqIMgBAAojfcIAQBKIwgBAEojCAEASiMIAQBKIwgBAEojCAEASiMIAQBKIwgBAEojCAEASiMI\nAQBKIwgBAEojCAEASiMIAQBKIwgBAEojCAEASiMIAQBKIwgBAEojCAEASiMIAQBKIwgBAEoj\nCAEASiMIAQBKIwgBAEojCAEASiMIAQBKIwgBAEoL9HUBzXbs2LGlS5cWFxeXlZVVVVXp9frw\n8PCEhISkpKT09PTs7OyIiAhf1wgA8Bsao9Ho6xqaYeHChc8991xdXZ2jBu3bt8/Ly0tPT/dm\nVQAA/+VPQbhu3bqhQ4cGBARkZ2dnZGT069cvLi6uVatWdXV1Z86c2bt378cff7xmzZrg4OCS\nkpLf/OY3vq4XAOAH/CkIBw4c+I9//OOvf/3rpEmTHLV58cUX58yZM2TIkK+//tqbtQEA/JQ/\nBWHr1q0vXbpUXV0dFRXlqM358+fbtm0bExNz4cIFb9YGAPBT/nTVaEBAgIjU19c7aaPVakVE\nr9d7qSYAgJ/zpyDs3bu3iMyZM8dJm7ffftvcEgCAJvnTqdGSkpLBgwcbDIbBgwc//vjjycnJ\n7du3DwsL0+l0lZWVO3fuXL58+d///neNRrN+/fq0tDRPrbe6unrZsmVXr171VIcAoKCwsLAx\nY8a0bt3a14XYMPqVNWvWxMfHOxlOZGTk8uXLPbvS999/32sPBwC0YO+//75n988e4WcfqM/K\nykpLS1u1atXGjRtLS0srKyurq6uDg4Pj4+O7d++empo6ZsyY2NhYz67U9I7jhx9+2KtXLw92\nW1JS8sYbb1he1DNw4MCcnJy6urrc3NwdO3aYl4eHh9fW1jY2Npr+jIiImDhxYlRU1FtvvVVd\nXW2384iICJ1OZ7mkTZs2M2bMGDBggAeH0FwGg+Hdd9/Nz89vaGgwLQkLCxs3btyYMWM0Go0r\nPTQ0NLz77rurV6+27GH8+PGjR48WkZ07d86cOfP06dPm9v369cvNzW3btq1VP42NjXl5ecuW\nLbN9yzkgICAjI+OFF14IDQ1t1ui+/fbbOXPmXLx40fSnRqMJDw+3ehRE5NZbb505c2aPHj2a\n1fm1OHr0aE5Ozv79+81LEhMTZ86c2a1bN6uWX3zxxbvvvnv58mXbTu69997p06cbDIYZM2Zs\n3brVvPymm27Kycn59a9/vWTJko8++qi2tta0XKvVBgcHW55Hue+++6ZPnx4dHW23SKPR+OGH\nHy5ZssT8KeGgoKARI0Y888wzposDPOXkyZPTp0/fs2ePecktt9ySm5ublJRku1UEBwePGjXq\nqaeesqrh7Nmz06dPLy0tNS9JSEjIzc11702ZK1eu/OUvf9mwYYP5Od66devJkyfrdLr33nvP\nvAkFBARkZWVlZGS89tprR44cse2nY8eOubm5zd1NXbhwIScnx3KHIyJRUVHTp08fOHCgG8Nx\nZM+ePePGjbtBL+DwdRL7gXfeeUdENm/e7ME+169fb7qux0pycnLXrl1deeBcTA5LgYGB33//\nvQdH0VxPPfWU3cL+8pe/uNjD+PHj7fYwe/bs7du3h4SE2N7UrVs3nU5n1c9LL73kfK6ysrKa\nNbQvv/zS9f11VFTUgQMHmtW/286cOXPzzTfb1hAdHf3zzz9btvzwww+dl/2rX/2qe/futsuD\ng4MdPS5WkpOT6+vr7daZm5tr9y6TJk3y4GxUVVXdeuuttmuJjIzct2+fo61iypQplp1cunSp\nS5cuts3CwsL++c9/NrekxsbG1NRU294cPcGDgoIcTa+IRERE7N271/W119bW3nXXXXa7CggI\n+Oabb5o7HCc2b94sIu+8844H+/QUgrBp1yMIHW1811v//v09OIpm2b9/v6PndlhY2IULF5rs\n4ccff3TUQ3h4+L333uto1PPmzbPs58SJE873JiYlJSUuDq2xsdHuntGJ7Oxsdyax+Z5//nlH\nNYwaNcrcrK6uLi4urllDsOT6i4AlS5bYFnn27Fm7L2JMPR86dMhTszF9+nRHhQ0ZMsTRVhEY\nGFhRUWHu5I033nDUye9+97vmlvT3v//dxalzUUZGhutrX7BggZOu7rrrruYOx4kbOQj97NSo\nxxkMhsLCQvP5HLt2794tHv1IxrFjx/bt2+ep3ppl+/btVVVVMTEx3l/1+vXrjQ6uzLp69Wpx\ncfGwYcPc7uHKlStbtmxxdMevv/7aMg++/fZbVx7NwsLC+++/v8lmIlJWVvbzzz+70tKypGa1\nd1thYaErNezYsaOystLttZjP6blSz9ixY60WFhUVOfrexMbGxm+++aa5rzOcrN3RTZs2bXK0\nVTQ0NGzYsMF81Ou8k7q6OkehbpfHt4QNGzYYDAa7J5xsORmLiOzbt+/48eMdO3b0UGk3rhYY\nhKaDBkd7TCvFxcWZmZmutFy5cqWnzpifPXvWI/24wWg0nj171idBeObMGSe3ujInzntwsi+2\nuqOL8+/6w+TGA1pTU6PT6bzwBfFOartw4YJerzcdBnltm7S7Iudr92BtTrpy/gFlyzs66USv\n11+4cCEhIcEjJbmnrq7u4sWLLh7fN7n2M2fOEIQtX0pKSkFBgfMjwgULFpSUlHTo0MFTK/X4\n5TzNci1nwK6F81G7MifO22g0Dj8LZHVHF+ff9YfJjQc0LCwsPDy8ufdyQ2xsrPn6HSutW7c2\nnwz02jZpd0XXvm24vvbjx4/bvUmr1RoMBldqcFJPQEBAmzZtmlWSx1+VBgYGOroiyVaTc+ur\n3YW3+fTErH8wncl57bXXPNhnYmKiTx7upKQkD46iWSwvsbMSGBh4+vTpJnuwurDNUlBQkJML\n9qweu8OHD7vynlZhYaGLQzMYDO3bt2+yQ0tDhw51ZxKbz9EFSiLyyCOPmJtduXKlVatWzRqC\nJdcv3bJ79fyxY8ecnMr78ccfPTUbU6ZMcbSWe++919FWodFoLC9uysnJcdJJc0vKz893cepc\n9MADD7i+9rfeestJV507d27ucJy4kd8jJAibdj2CMD8/3+6+4/bbb2/WeZVm0Wg0X331lQdH\n0VzZ2dl2C7O6Ks8JR+8jvvjii0VFRXZ3ph06dLh48aJVP07iwWTgwIGNjY2uD23ZsmWuPxAh\nISGlpaWud34tKioq7B4fhIWF7dmzx7Kl832iiCQmJt5yyy22ywMCAh5++GFXBt61a9crV67Y\nrdPRN+lbXtFz7U6fPm33ECc4OHjbtm2OtoonnnjCspPKysp27drZNgsMDPzHP/7R3JIaGhr6\n9u3ryuyZOH8NFxQU9MMPP7i+9pqaGruX0YqIRqNZvXp1c4fjBEHo365HEBqNxkWLFlmdHOvf\nv//Ro0f3799vdU2p1cVsgYGB06ZNmzt3rpP35IODg62WhIWFLVu2zLNDaC6dTjd8+HCrZ/Wk\nSZMaGhpc7OHy5cuPPfaYZQ9arfZPf/qTqYdPPvnE6ksrevbs+dNPP9n2U1dXN378eEfHMenp\n6a5cxWrlr3/9a1hYmPNHQUTatm3r+rGmR2zbtu22226zrKFdu3YbNmywbZmbm+voysnk5OQj\nR46UlZVZfUwtKipq+fLler3+6aefttxHazSawMD/985Lv379ysvLHRWp1+v/+Mc/WvXwhz/8\n4erVq56djd27d99+++2WhcXFxRUUFBjtbRUajebxxx+vra216uTHH3+0+iRJmzZtPvvsM/dK\nOnPmzKBBgyx7CwkJmT179ssvv2w1hxkZGWvWrLEbwyISGxv75ZdfNnfthw4dsv1Ua0hIyKJF\ni9wbjiMEoX+7TkFoNBrPnz//3nvviUjfvn2Li4vNhyAGg2H9+vXdunXTarUff/xxdXV1aWnp\n0KFDRWTq1KlHjx41NTt9+vSbb74pIvfee++33367YsWK0NDQxMTEdevW1dXVFRYWduzY0fSs\nfv/996uqqjxev3v27t1rOjR8+umnrT7K5qI9e/aYDg2feeaZw4cPW970yy+/fPzxxwEBAXfe\neef69esNBoOTfg4cOPDEE0+IyLBhw/74xz+KSFpa2o4dO9woyeTs2bPz5s0TkQEDBnz33XdX\nrlxZvXp1mzZtYmJi4uLiIiMjP/nkE9sPNXpBXV3d2rVr27dvHx0dnZ+f7+iwzGg0Hj9+3HTq\nLyUlZdq0aSJy9913b9y40XLj3LBhg+m12tKlSy2Ptg8dOmQ6qHrsscd+/PHHyspK09X5ffr0\n2bRpkytH2GVlZRMmTBCRkSNH7tu379oHbpder//qq686deoUHh6+cuXKy5cvW95q3ipGjx69\nf/9+R500NDQUFhZ27do1KCho+fLlly5dusaqtmzZYrpKedasWadOnTItPHr06J///GcRefDB\nB3ft2mVaaNquoqOjExIScnJyEhMTQ0NDV6xYUVNT496qTY+p+f2aOXPmnD9//hqHY4sg9G/X\nLwiNRqPpQoYJEybY3pSVlRUcHGz+03Tmatu2bZZtKioqROSFF14w/dmmTZvU1FTzrZmZmeaf\n47gexbstLy9PRK7l47qLFi0SkaKiIru3BgUFPfzww6708/nnn4vIqlWrTF81cu2P8qlTp0Tk\n2WefNS/p3Llznz597rnnnoSEhGvs/Br169fvtttua7KZeSpM32kyduxY2zam43LbbDNdjv/R\nRx+Z/rx06ZKIjBs3zvUiTZ+r88LZi0GDBsXFxdm9ybxVNNnJQw89FBER4amSTJln9dpu586d\nIjJ79myrxp06derbt6/RaExNTW3Tps21r33kyJGmILR9K8EjbuQg9KdfnwAAwOMIQgCA0vzp\nc4TN+nZNo//8vBQAwIf86YjwySeftP0ZAQAAroU/BWFeXl55efl9990nLnwPgK+LBQD4B38K\nQhEJDw+fOnWqr6sAALQcfhaEItK/f39flwAAaDn8LwhjY2M58wkA8BT/C0IAADyIIAQAKI0g\nBAAojSAEACiNIAQAKI0gBAAojSAEACiNIAQAKI0gBAAojSAEACiNIAQAKI0gBAAojSAEACiN\nIAQAKI0gBAAojSAEACgt0NcF+JjBYCgsLKytrXXSpqKiQkQaGxu9VBMAwItUD8Li4uLMzExX\n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\n0iRTG+bN1owZM0Skc+fOmzdvrq2t3b9//+DBg0WkT58+ls2Yuia9/vrr5gCzXN5Sp44g9IzF\nixeLyODBgy0XDh8+XERmzJjhq6puBFavCm0buDJ1qk3v3XffLSKffvqp5cKNGzeKSEJCgulP\n5s1Wz549ReTrr782Lzl58qSIhIaGWjZj6pzbvn17YGBgdHS07XO2pU4d7xF6hmkn9fjjj1su\nzMjIEJHi4mLf1HRjMG9qjhq4MnWqTe/hw4dFxHQ0Y9a3b18RuXDhgulP5s1WeXm5iAwYMMC8\npKGhQUTi4uIsmzF1Tly+fHnkyJENDQ2LFi2yvbXFTp0PQ7gl6dq1q4gcPHjQcuGhQ4fE4iW8\n4hxtb65MHdNrNBrXrl0rIr169TL9ybw16cSJE1lZWSLy6quvWi5n6pwYPXq0iIwdO9Zo7znb\nUqeOIPSMmJgYEbl8+bLlQtM1flanZZTlKAhdmTqmt7i4ODY2VkSWL19uWsK8OWd+rT9x4kSD\nwWB5E1PnyCeffCIinTt3rqmpMdp7zrbUqSMIPcN0iZTV8810Wkar1fqqqhuKoyB0ZepUnt7K\nykrTJ080Go3lkQ3z5pw5CAMCAp588sm6ujrzTUydXRUVFa1btw4MDNy+fbtpie1ztqVOHe8R\nekZwcLCI6HQ6y4V1dXUiEh4e7pua/IQrU6fm9DY2Ni5cuLBr1655eXldunQpKirKzc0138q8\nOdfY2Hj+/PmCgoLOnTsvXryYqWvSqFGjqqurc3Nz+/Xr56hNS506gtAz4uPjRaSystJy4Zkz\nZ0QkISHBNzX5CVemTsHpPXfuXEpKysSJE41G47x58/bt2zdo0CDLBsybcxqNJi4uLiMjY/ny\n5SJi+teEqbNr8+bNIvLKK69o/s203PL/LXXqCELP6N69u4js3LnTcuHevXtFJCkpyTc1+QlX\npk616a2trU1NTf3uu+8eeuihAwcOPP/886ZX2ZaYN1thYWEajcZqF3znnXeKyPnz581LmDq3\ntdSpIwg9IzU1VURWrFhhufDjjz8WkSFDhvimJj/hytSpNr0fffTR3r1777///rVr15o+m2yL\nebN1xx13iEhJSYnlwu+//15ELL9xhqmzy/adM8vlpv+32Knz6juSLVdlZWVkZKSIvPLKK1VV\nVefPn3/xxRdFpH379lZXTynL0fbmytSpNr3p6ekiUlpa6qQN82brjTfeMI2usLDwypUrlZWV\nK1asML2SePPNN83NmDoX2T5nW+rUEYQe87e//c3qC2qDg4MLCwt9XdeNwskLL1emTqnpNX2b\nWpMvXpk3K1euXOnVq5ftjD3wwAP19fWWLZk6V9h9zrbIqSMIPembb7657777WrVq1aZNm9/9\n7ndbtmzxdUU3ELtPKjNXpk6d6Q0LC3MlCI3Mm42LFy9Onjy5c+fOwcHBkZGRycnJ8+fP1+v1\nti2ZuiY5es62vKnTGB1/9xUAAC0eF8sAAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhAC\nAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQ\nAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRG\nEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCU\nRhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIA\nlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhAC\nAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQAgCURhACAJRGEAIAlEYQ\nAgCURhACAJRGEAIAlEYQAgCURhACAJT2fxL/iuVNhv0lAAAAAElFTkSuQmCC", "text/plain": [ "Plot with title \"Original Signal\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "Plot with title \"Recovered Signal\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "source(\"nt_solutions/optim_4b_dr/exo2.R\")" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "# Insert your code here." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Evaluation of the CS Recovery Probability\n", "-----------------------------------------\n", "In order to bench in a randomized manner the efficiency of compressed\n", "sensing, we compute the probability $p_s$ for a $s$-sparse signal\n", "with random non-zero coefficient locations to be recovered by $\\ell^1$\n", "minimization.\n", "\n", "\n", "Put formally, if we call $ x^\\star(y) $ the resolution of the $\\ell^1$\n", "problem using measurements $y$, then we want to compute with\n", "Monte-Carlo sampling\n", "$$ p_s = \\mathbb{P}( x^\\star(Ax)=x \\:\\backslash\\: \\norm{x}_0=s ) $$\n", "\n", "\n", "An important feature of the DR algorithm is that it can be run on many\n", "signal at once.\n", "\n", "\n", "Number of signals." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "q = 1000" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "List of benched sparsity." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "slist = seq(14, 42, 2)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "List of sparsity of each signal" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "Slist = slist[mod(c(1 : q), length(slist)) + 1]\n", "\n", "# Genetate signals so that |x0(:,j)| has sparsity |Slist(j)|.\n", "U = rand(n,q)\n", "v = c(apply(U,2,sort))\n", "v = v[c(0: (q - 1)) * n + Slist]\n", "x0 = 1 * (U <= t(matrix(rep(v, n), ncol=n)))" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Measurements." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "y = A %*% x0" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "__Exercise 3__\n", "\n", "Perform DR on the set of signals |x0|. Note that the proximal mappings\n", "operate in parallel on all the signals in |x0|.\n", "Each |i|, count the average number |proba(i)|\n", "of recovered vectors of sparsity |slist(i)| (up to a given, small, precision)." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n7Gztv4VLRrVpN3PmzIiIiIMHDz5+/NjNza19+/Y7duwQU4NCoXj99dcTEhIePXqkVqunT59e\nu3btdevWhYeHixyF8Fro9u3bAWzdulXbQmQzGIRE5eX5558HYPSu+d9//x2A3quLarVa+++d\nO3cCaNmypfDjypUrAcyePfvy5csZGRnHjx/38vISU0PNmjUVCsX169dVKlW3bt2mTZv2888/\nA/jf//4nchQDBgyws7Pbs2fPo0eP4uLiFArFgAEDRD6WyCowCInKyzvvvAMgKipq/Pjxp0+f\nzsnJyc/Pv3z58ueffx4aGgrglVde0e3/3nvvHTt2LCcnZ9euXdOnT9ftkJ+fD6B+/fo+Pj5p\naWlbtmzp37+/nZ0dgEePHpmoQbiXf/jw4adPn87Nzb1x48bs2bOFRZX0EL3z1OrVq3fu3Dkr\nK2v8+PFZWVmdO3fWvpFJZCOkfm2WyJZNnDixpF0vMDAwMzNT6Ca06L3k2KFDh9zcXKHDu+++\nq/fwyZMnd+zYUW8vNtyp//zzTycnJ73HKhSKbdu2GT6kbt26Ro8MCxcu1LZ//vnn5bStiKTC\nICQqX2q1esiQIXXr1nVycnJ0dGzQoMGQIUO+++674uJibR8hYzIyMoYNG1apUqXatWuPHTtW\n93bDvLy8qKioevXqubi4tGvXbsuWLRqN5vvvv69SpUqNGjX0lqNXwJEjR1566aUqVaoolUpP\nT8+goKC9e/cafciOHTsaNmyoVCr1FpKcnCx0q1atWnZ2dtltG6IKgbdPEEmv4n/IZ9u2bX/9\n9ddFixa99957UtdCVMYYhETSq7BBeP/+fU9Pz++++2748OFeXl7nz583fKGVyNrZS10AEVVc\n1apV0/7722+/ZQqSTeJVo0RUIk9PT3t7e19f3+XLlwcHB0tdDlG54EujREQkazwjJCIiWWMQ\nEhGRrDEIiYhI1hiEREQkawxCIiKSNQYhERHJGoOQiIhkjUFIRESyxiAkIiJZYxASEZGsMQiJ\niEjWGIRERCRrDEIiIpI1BiEREckag5CIiGSNQUhERLLGICQiIlljEBIRkawxCImISNYYhERE\nJGsMQiIikjUGIRERyRqDkIiIZI1BSEREsvb/LSaiZUJ+92kAAAAASUVORK5CYII=", "text/plain": [ "Plot with title \"Evaluation of the CS Recovery Probability\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "source(\"nt_solutions/optim_4b_dr/exo3.R\")" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "# Insert your code here." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "" ] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.4.2" } }, "nbformat": 4, "nbformat_minor": 0 }