{ "cells": [ { "cell_type": "code", "execution_count": 68, "metadata": { "ExecuteTime": { "end_time": "2018-10-10T05:40:03.422029Z", "start_time": "2018-10-10T05:40:03.105086Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#check answer quality\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from matplotlib.patches import Rectangle\n", "from matplotlib import gridspec\n", "import snlay as snlay\n", "#from jupyterthemes import jtplot\n", "#currently installed theme will be used to\n", "#set plot style if no arguments provided\n", "#jtplot.style()\n", "mats = np.array([3, 4, 3, 4, 3, 4, 3, 4])\n", "lams = np.linspace(300, 1200, 256)\n", "\n", "# actual target\n", "size_t = np.array([30., 64., 52., 36., 36., 64., 35., 62.])\n", "targ_spec = snlay.calc_spectrum(size_t, mats, lams)\n", "\n", "# actual target\n", "size_sn = np.array([30., 64., 52., 36., 36., 64., 35., 62.])\n", "targ_sn = snlay.calc_spectrum(size_sn, mats, lams)\n", "\n", "# actual target\n", "size_mod_p = np.array([40., 58., 51., 34., 35., 64., 35., 62.])\n", "targ_mod_p = snlay.calc_spectrum(size_mod_p, mats, lams)\n", "\n", "size_mod = np.array([37., 61., 48., 35., 38., 64., 34., 61.])\n", "targ_mod = snlay.calc_spectrum(size_mod, mats, lams)\n", "\n", "\n", "fig1 = plt.figure(figsize=(8,2.5))\n", "gs = gridspec.GridSpec(1, 2, width_ratios=[5.5, 2.5]) \n", "\n", "ax = plt.subplot(gs[0])\n", "#ax = fig1.add_subplot(1,2,1)\n", "#ax.set_title('silica coated gold')\n", "ax.set_xlabel('Wavelength (nm)')\n", "ax.set_ylabel('Extinction Efficiency Qe')\n", "ax.set_ylim((0, 6))\n", "ax.set_xlim((300, 1200))\n", "plt.plot(lams, targ_spec,'k--', linewidth=1, label='Target')\n", "plt.plot(lams, targ_sn,'b', linewidth=1, label='Actual (16m 5s)')\n", "plt.plot(lams, targ_mod,'r', linewidth=1, label='Approx (28s)')\n", "plt.plot(lams, targ_mod_p,'g', linewidth=1, label='Assist (2m 30s)')\n", "#plt.plot(lams, 10*np.abs(spec_ac - spec)/spec_ac,'k', linewidth=1, label='10x Relative error')\n", "ax.legend(loc='upper right')\n", "ax.add_patch(Rectangle((300, 1), 150, 3.5, fill=None, alpha=0.8))\n", "plt.tight_layout()\n", "\n", "#plt.grid(True)\n", "\n", "\n", "\n", "\n", "\n", "\n", "ax2 = plt.subplot(gs[1])\n", "#fig2 = plt.figure(figsize=(3,3))\n", "#ax2 = fig1.add_subplot(1,2,2)\n", "#ax.set_title('silica coated gold')\n", "ax2.set_xlabel('Wavelength (nm)')\n", "#ax.set_ylabel('Extinction Efficiency Qe')\n", "ax2.set_ylim((1, 4.5))\n", "ax2.set_xlim((300, 450))\n", "plt.plot(lams, targ_spec,'k', linewidth=1, label='Target')\n", "plt.plot(lams, targ_sn,'b', linewidth=1, label='Actual (16m 5s)')\n", "plt.plot(lams, targ_mod,'r', linewidth=1, label='Approx (28s)')\n", "plt.plot(lams, targ_mod_p,'g', linewidth=1, label='Assist (2m 30s)')\n", "#plt.plot(lams, spec, 'r--', linewidth=2, label='predicted')\n", "#plt.plot(lams, 10*np.abs(spec_ac - spec)/spec_ac,'b', linewidth=1, label='10x Relative error')\n", "#ax.legend(loc='best')\n", "plt.grid(True)\n", "plt.tight_layout()\n", "\n", "ax.spines['top'].set_visible(False)\n", "ax.spines['right'].set_visible(False)\n", "#ax2.spines['bottom'].set_visible(False)\n", "#ax2.spines['left'].set_visible(False)\n", "#ax2.spines['top'].set_visible(False)\n", "#ax2.spines['right'].set_visible(False)\n", "\n", "#plt.savefig('optimizers.pdf')\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "ExecuteTime": { "end_time": "2018-10-10T05:36:05.862075Z", "start_time": "2018-10-10T05:36:05.604751Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "approx_mre = np.array([[0.0, 1.7444054],\n", "[50.0, 0.75968117],\n", "[100.0, 0.71295995],\n", "[150.0, 0.6474583],\n", "[200.0, 0.645691],\n", "[250.0, 0.6181751],\n", "[300.0, 0.61033905],\n", "[350.0, 0.60982],\n", "[400.0, 0.6055719],\n", "[450.0, 0.6024746],\n", "[500.0, 0.60192484]])\n", "\n", "\n", "assist_pre = np.array([[0.0, 1.1158075896087172],\n", " [0.0, 1.1158075896087172],\n", " [40.0, 0.8150859613864927],\n", " [60.0, 0.8150859613864927],\n", " [80.0, 0.8150859613864927],\n", " [100.0, 0.7252854930644419],\n", " [120.0, 0.5596733128944251],\n", " [140.0, 0.49493466218342536],\n", " [160.0, 0.49493466218342536],\n", " [180.0, 0.44012459407140986],\n", " [200.0, 0.44012459407140986],\n", " [220.0, 0.41603703170757483],\n", " [240.0, 0.36669514306882695],\n", " [260.0, 0.3204032876378119],\n", " [280.0, 0.3204032876378119]])\n", "\n", "\n", "act_pre= np.array([[ 0.0, 34.764084177464106],\n", " [ 25.0, 8.340754312117314],\n", " [ 50.0, 5.596934152569711],\n", " [ 75.0, 2.4355046393850808],\n", " [100.0, 2.4355046393850808],\n", " [125.0, 2.4134250007110736],\n", " [150.0, 1.7133162654256295],\n", " [175.0, 1.7133162654256295],\n", " [200.0, 1.657703207258774],\n", " [225.0, 1.357276014324554],\n", " [250.0, 1.2038289909480697],\n", " [275.0, 1.2038289909480697],\n", " [300.0, 1.0010963661625447],\n", " [325.0, 0.9091072669949225],\n", " [350.0, 0.8380571414952189],\n", " [375.0, 0.6046218491740213],\n", " [400.0, 0.6046218491740213],\n", " [425.0, 0.5006209308298584],\n", " [450.0, 0.45559701169843764],\n", " [475.0, 0.4376195672622949],\n", " [500.0, 0.3938599657695569],\n", " [525.0, 0.25238263922875026],\n", " [550.0, 0.16105660067589186],\n", " [575.0, 0.16105660067589186]])\n", "\n", "\n", "\n", "fig1 = plt.figure(figsize=(8,2.5))\n", "gs = gridspec.GridSpec(1, 2, width_ratios=[5, 5]) \n", "\n", "\n", "color = 'tab:blue'\n", "ax = plt.subplot(gs[0])\n", "#ax = fig1.add_subplot(1,2,1)\n", "#ax.set_title('silica coated gold')\n", "ax.set_xlabel('Iteration number')\n", "ax.set_ylabel('Peak Relative Error (%)', color=color)\n", "ax.set_ylim((0, 4))\n", "ax.set_xlim((0, 600))\n", "ax.tick_params(axis='y', labelcolor=color)\n", "ax.plot(act_pre[:,0], act_pre[:,1], color=color)\n", "plt.grid(True)\n", "\n", "color = 'tab:green'\n", "ax2 = plt.subplot(gs[1])\n", "#ax = fig1.add_subplot(1,2,1)\n", "#ax.set_title('silica coated gold')\n", "ax2.set_xlabel('Iteration number')\n", "ax2.set_ylabel('Peak Relative Error (%)', color=color)\n", "ax2.set_xlim((0, 800))\n", "ax2.set_ylim((0, 4))\n", "ax2.tick_params(axis='y', labelcolor=color)\n", "ax2.plot(assist_pre[:,0]+500, assist_pre[:,1], color=color)\n", "plt.grid(True)\n", "\n", "ax3 = ax2.twinx() # instantiate a second axes that shares the same x-axis\n", "color = 'tab:red'\n", "ax3.set_ylabel('Mean Relative Error (%)', color=color)\n", "ax3.tick_params(axis='y', labelcolor=color)\n", "ax3.plot(approx_mre[:,0], approx_mre[:,1], color=color)\n", "ax3.set_ylim((0, 2))\n", "plt.grid(True)\n", "\n", "\n", "plt.tight_layout()\n", "\n", "ax.spines['top'].set_visible(False)\n", "ax.spines['right'].set_visible(False)\n", "#ax.spines['bottom'].set_visible(False)\n", "#ax.spines['left'].set_visible(False)\n", "\n", "ax3.spines['top'].set_visible(False)\n", "#ax3.spines['right'].set_visible(False)\n", "ax3.spines['bottom'].set_visible(False)\n", "ax3.spines['left'].set_visible(False)\n", "\n", "ax2.spines['top'].set_visible(False)\n", "ax2.spines['right'].set_visible(False)\n", "\n", "\n", "plt.savefig('convergence.pdf')\n", "\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "raw", "metadata": { "ExecuteTime": { "end_time": "2018-10-05T16:48:18.854453Z", "start_time": "2018-10-05T16:48:18.848961Z" } }, "source": [ "\n", "array([30., 64., 52., 36., 36., 64., 35., 62.])\n", "\n", "assisted diff evol\n", "----------------------------------------------------------\n", "executed in 2m 30s, finished 22:14:57 2018-10-05\n", "pop = 500, its = 500\n", "pnew = 20, its = 300\n", "best = array([40., 58., 51., 34., 35., 64., 35., 62.])\n", "\n", "\n", "0 1.7444054\n", "50 0.75968117\n", "100 0.71295995\n", "150 0.6474583\n", "200 0.645691\n", "250 0.6181751\n", "300 0.61033905\n", "350 0.60982\n", "400 0.6055719\n", "450 0.6024746\n", "\n", "executed in 27.9s, finished 10:08:32 2018-10-06 until here\n", "\n", "\n", "0 1.1158075896087172\n", "20 1.1158075896087172\n", "40 0.8150859613864927\n", "60 0.8150859613864927\n", "80 0.8150859613864927\n", "100 0.7252854930644419\n", "120 0.5596733128944251\n", "140 0.49493466218342536\n", "160 0.49493466218342536\n", "180 0.44012459407140986\n", "200 0.44012459407140986\n", "220 0.41603703170757483\n", "240 0.36669514306882695\n", "260 0.3204032876378119\n", "280 0.3204032876378119\n", "\n", "diff evol\n", "--------------------------------------------------------\n", "executed in 16m 5s, finished 23:55:18 2018-10-05\n", "pop = 80, its = 600\n", "best = array([30., 64., 52., 36., 36., 64., 35., 62.])\n", "\n", "0 34.764084177464106\n", "25 8.340754312117314\n", "50 5.596934152569711\n", "75 2.4355046393850808\n", "100 2.4355046393850808\n", "125 2.4134250007110736\n", "150 1.7133162654256295\n", "175 1.7133162654256295\n", "200 1.657703207258774\n", "225 1.357276014324554\n", "250 1.2038289909480697\n", "275 1.2038289909480697\n", "300 1.0010963661625447\n", "325 0.9091072669949225\n", "350 0.8380571414952189\n", "375 0.6046218491740213\n", "400 0.6046218491740213\n", "425 0.5006209308298584\n", "450 0.45559701169843764\n", "475 0.4376195672622949\n", "500 0.3938599657695569\n", "525 0.25238263922875026\n", "550 0.16105660067589186\n", "575 0.16105660067589186\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false } }, "nbformat": 4, "nbformat_minor": 2 }