scratch.html 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Scratchpad &#8212; State Space Models: A Modern Approach</title>
  7. <link href="../_static/css/theme.css" rel="stylesheet">
  8. <link href="../_static/css/index.ff1ffe594081f20da1ef19478df9384b.css" rel="stylesheet">
  9. <link rel="stylesheet"
  10. href="../_static/vendor/fontawesome/5.13.0/css/all.min.css">
  11. <link rel="preload" as="font" type="font/woff2" crossorigin
  12. href="../_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.woff2">
  13. <link rel="preload" as="font" type="font/woff2" crossorigin
  14. href="../_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.woff2">
  15. <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
  16. <link rel="stylesheet" type="text/css" href="../_static/sphinx-book-theme.css?digest=c3fdc42140077d1ad13ad2f1588a4309" />
  17. <link rel="stylesheet" type="text/css" href="../_static/togglebutton.css" />
  18. <link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
  19. <link rel="stylesheet" type="text/css" href="../_static/mystnb.css" />
  20. <link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css" />
  21. <link rel="stylesheet" type="text/css" href="../_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css" />
  22. <link rel="stylesheet" type="text/css" href="../_static/panels-variables.06eb56fa6e07937060861dad626602ad.css" />
  23. <link rel="preload" as="script" href="../_static/js/index.be7d3bbb2ef33a8344ce.js">
  24. <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
  25. <script src="../_static/jquery.js"></script>
  26. <script src="../_static/underscore.js"></script>
  27. <script src="../_static/doctools.js"></script>
  28. <script src="../_static/clipboard.min.js"></script>
  29. <script src="../_static/copybutton.js"></script>
  30. <script>let toggleHintShow = 'Click to show';</script>
  31. <script>let toggleHintHide = 'Click to hide';</script>
  32. <script>let toggleOpenOnPrint = 'true';</script>
  33. <script src="../_static/togglebutton.js"></script>
  34. <script>var togglebuttonSelector = '.toggle, .admonition.dropdown, .tag_hide_input div.cell_input, .tag_hide-input div.cell_input, .tag_hide_output div.cell_output, .tag_hide-output div.cell_output, .tag_hide_cell.cell, .tag_hide-cell.cell';</script>
  35. <script src="../_static/sphinx-book-theme.d59cb220de22ca1c485ebbdc042f0030.js"></script>
  36. <script>const THEBE_JS_URL = "https://unpkg.com/thebe@0.8.2/lib/index.js"
  37. const thebe_selector = ".thebe,.cell"
  38. const thebe_selector_input = "pre"
  39. const thebe_selector_output = ".output, .cell_output"
  40. </script>
  41. <script async="async" src="../_static/sphinx-thebe.js"></script>
  42. <script>window.MathJax = {"TeX": {"Macros": {"N": "\\mathbb{N}", "floor": ["\\lfloor#1\\rfloor", 1], "bmat": ["\\left[\\begin{array}"], "emat": ["\\end{array}\\right]"]}}, "options": {"processHtmlClass": "tex2jax_process|mathjax_process|math|output_area"}}</script>
  43. <script defer="defer" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
  44. <link rel="index" title="Index" href="../genindex.html" />
  45. <link rel="search" title="Search" href="../search.html" />
  46. <link rel="next" title="State Space Models" href="ssm/ssm_index.html" />
  47. <link rel="prev" title="State Space Models: A Modern Approach" href="../root.html" />
  48. <meta name="viewport" content="width=device-width, initial-scale=1" />
  49. <meta name="docsearch:language" content="None">
  50. <!-- Google Analytics -->
  51. </head>
  52. <body data-spy="scroll" data-target="#bd-toc-nav" data-offset="80">
  53. <div class="container-fluid" id="banner"></div>
  54. <div class="container-xl">
  55. <div class="row">
  56. <div class="col-12 col-md-3 bd-sidebar site-navigation show" id="site-navigation">
  57. <div class="navbar-brand-box">
  58. <a class="navbar-brand text-wrap" href="../index.html">
  59. <h1 class="site-logo" id="site-title">State Space Models: A Modern Approach</h1>
  60. </a>
  61. </div><form class="bd-search d-flex align-items-center" action="../search.html" method="get">
  62. <i class="icon fas fa-search"></i>
  63. <input type="search" class="form-control" name="q" id="search-input" placeholder="Search this book..." aria-label="Search this book..." autocomplete="off" >
  64. </form><nav class="bd-links" id="bd-docs-nav" aria-label="Main">
  65. <div class="bd-toc-item active">
  66. <ul class="nav bd-sidenav">
  67. <li class="toctree-l1">
  68. <a class="reference internal" href="../root.html">
  69. State Space Models: A Modern Approach
  70. </a>
  71. </li>
  72. </ul>
  73. <ul class="current nav bd-sidenav">
  74. <li class="toctree-l1 current active">
  75. <a class="current reference internal" href="#">
  76. Scratchpad
  77. </a>
  78. </li>
  79. <li class="toctree-l1 has-children">
  80. <a class="reference internal" href="ssm/ssm_index.html">
  81. State Space Models
  82. </a>
  83. <input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/>
  84. <label for="toctree-checkbox-1">
  85. <i class="fas fa-chevron-down">
  86. </i>
  87. </label>
  88. <ul>
  89. <li class="toctree-l2">
  90. <a class="reference internal" href="ssm/ssm_intro.html">
  91. What are State Space Models?
  92. </a>
  93. </li>
  94. <li class="toctree-l2">
  95. <a class="reference internal" href="ssm/hmm.html">
  96. Hidden Markov Models
  97. </a>
  98. </li>
  99. <li class="toctree-l2">
  100. <a class="reference internal" href="ssm/lds.html">
  101. Linear Gaussian SSMs
  102. </a>
  103. </li>
  104. <li class="toctree-l2">
  105. <a class="reference internal" href="ssm/nlds.html">
  106. Nonlinear Gaussian SSMs
  107. </a>
  108. </li>
  109. <li class="toctree-l2">
  110. <a class="reference internal" href="ssm/inference.html">
  111. Inferential goals
  112. </a>
  113. </li>
  114. </ul>
  115. </li>
  116. <li class="toctree-l1 has-children">
  117. <a class="reference internal" href="hmm/hmm_index.html">
  118. Hidden Markov Models
  119. </a>
  120. <input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/>
  121. <label for="toctree-checkbox-2">
  122. <i class="fas fa-chevron-down">
  123. </i>
  124. </label>
  125. <ul>
  126. <li class="toctree-l2">
  127. <a class="reference internal" href="hmm/hmm_filter.html">
  128. HMM filtering (forwards algorithm)
  129. </a>
  130. </li>
  131. <li class="toctree-l2">
  132. <a class="reference internal" href="hmm/hmm_smoother.html">
  133. HMM smoothing (forwards-backwards algorithm)
  134. </a>
  135. </li>
  136. <li class="toctree-l2">
  137. <a class="reference internal" href="hmm/hmm_viterbi.html">
  138. Viterbi algorithm
  139. </a>
  140. </li>
  141. <li class="toctree-l2">
  142. <a class="reference internal" href="hmm/hmm_parallel.html">
  143. Parallel HMM smoothing
  144. </a>
  145. </li>
  146. <li class="toctree-l2">
  147. <a class="reference internal" href="hmm/hmm_sampling.html">
  148. Forwards-filtering backwards-sampling algorithm
  149. </a>
  150. </li>
  151. </ul>
  152. </li>
  153. <li class="toctree-l1 has-children">
  154. <a class="reference internal" href="lgssm/lgssm_index.html">
  155. Inference in linear-Gaussian SSMs
  156. </a>
  157. <input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/>
  158. <label for="toctree-checkbox-3">
  159. <i class="fas fa-chevron-down">
  160. </i>
  161. </label>
  162. <ul>
  163. <li class="toctree-l2">
  164. <a class="reference internal" href="lgssm/kalman_filter.html">
  165. Kalman filtering
  166. </a>
  167. </li>
  168. <li class="toctree-l2">
  169. <a class="reference internal" href="lgssm/kalman_smoother.html">
  170. Kalman (RTS) smoother
  171. </a>
  172. </li>
  173. <li class="toctree-l2">
  174. <a class="reference internal" href="lgssm/kalman_parallel.html">
  175. Parallel Kalman Smoother
  176. </a>
  177. </li>
  178. <li class="toctree-l2">
  179. <a class="reference internal" href="lgssm/kalman_sampling.html">
  180. Forwards-filtering backwards sampling
  181. </a>
  182. </li>
  183. </ul>
  184. </li>
  185. <li class="toctree-l1 has-children">
  186. <a class="reference internal" href="extended/extended_index.html">
  187. Extended (linearized) methods
  188. </a>
  189. <input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/>
  190. <label for="toctree-checkbox-4">
  191. <i class="fas fa-chevron-down">
  192. </i>
  193. </label>
  194. <ul>
  195. <li class="toctree-l2">
  196. <a class="reference internal" href="extended/extended_filter.html">
  197. Extended Kalman filtering
  198. </a>
  199. </li>
  200. <li class="toctree-l2">
  201. <a class="reference internal" href="extended/extended_smoother.html">
  202. Extended Kalman smoother
  203. </a>
  204. </li>
  205. <li class="toctree-l2">
  206. <a class="reference internal" href="extended/extended_parallel.html">
  207. Parallel extended Kalman smoothing
  208. </a>
  209. </li>
  210. </ul>
  211. </li>
  212. <li class="toctree-l1 has-children">
  213. <a class="reference internal" href="unscented/unscented_index.html">
  214. Unscented methods
  215. </a>
  216. <input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/>
  217. <label for="toctree-checkbox-5">
  218. <i class="fas fa-chevron-down">
  219. </i>
  220. </label>
  221. <ul>
  222. <li class="toctree-l2">
  223. <a class="reference internal" href="unscented/unscented_filter.html">
  224. Unscented filtering
  225. </a>
  226. </li>
  227. <li class="toctree-l2">
  228. <a class="reference internal" href="unscented/unscented_smoother.html">
  229. Unscented smoothing
  230. </a>
  231. </li>
  232. </ul>
  233. </li>
  234. <li class="toctree-l1">
  235. <a class="reference internal" href="quadrature/quadrature_index.html">
  236. Quadrature and cubature methods
  237. </a>
  238. </li>
  239. <li class="toctree-l1">
  240. <a class="reference internal" href="postlin/postlin_index.html">
  241. Posterior linearization
  242. </a>
  243. </li>
  244. <li class="toctree-l1">
  245. <a class="reference internal" href="adf/adf_index.html">
  246. Assumed Density Filtering
  247. </a>
  248. </li>
  249. <li class="toctree-l1">
  250. <a class="reference internal" href="vi/vi_index.html">
  251. Variational inference
  252. </a>
  253. </li>
  254. <li class="toctree-l1">
  255. <a class="reference internal" href="pf/pf_index.html">
  256. Particle filtering
  257. </a>
  258. </li>
  259. <li class="toctree-l1">
  260. <a class="reference internal" href="smc/smc_index.html">
  261. Sequential Monte Carlo
  262. </a>
  263. </li>
  264. <li class="toctree-l1 has-children">
  265. <a class="reference internal" href="learning/learning_index.html">
  266. Offline parameter estimation (learning)
  267. </a>
  268. <input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/>
  269. <label for="toctree-checkbox-6">
  270. <i class="fas fa-chevron-down">
  271. </i>
  272. </label>
  273. <ul>
  274. <li class="toctree-l2">
  275. <a class="reference internal" href="learning/em.html">
  276. Expectation Maximization (EM)
  277. </a>
  278. </li>
  279. <li class="toctree-l2">
  280. <a class="reference internal" href="learning/sgd.html">
  281. Stochastic Gradient Descent (SGD)
  282. </a>
  283. </li>
  284. <li class="toctree-l2">
  285. <a class="reference internal" href="learning/vb.html">
  286. Variational Bayes (VB)
  287. </a>
  288. </li>
  289. <li class="toctree-l2">
  290. <a class="reference internal" href="learning/mcmc.html">
  291. Markov Chain Monte Carlo (MCMC)
  292. </a>
  293. </li>
  294. </ul>
  295. </li>
  296. <li class="toctree-l1">
  297. <a class="reference internal" href="tracking/tracking_index.html">
  298. Multi-target tracking
  299. </a>
  300. </li>
  301. <li class="toctree-l1">
  302. <a class="reference internal" href="ensemble/ensemble_index.html">
  303. Data assimilation using Ensemble Kalman filter
  304. </a>
  305. </li>
  306. <li class="toctree-l1">
  307. <a class="reference internal" href="bnp/bnp_index.html">
  308. Bayesian non-parametric SSMs
  309. </a>
  310. </li>
  311. <li class="toctree-l1">
  312. <a class="reference internal" href="changepoint/changepoint_index.html">
  313. Changepoint detection
  314. </a>
  315. </li>
  316. <li class="toctree-l1">
  317. <a class="reference internal" href="timeseries/timeseries_index.html">
  318. Timeseries forecasting
  319. </a>
  320. </li>
  321. <li class="toctree-l1">
  322. <a class="reference internal" href="gp/gp_index.html">
  323. Markovian Gaussian processes
  324. </a>
  325. </li>
  326. <li class="toctree-l1">
  327. <a class="reference internal" href="ode/ode_index.html">
  328. Differential equations and SSMs
  329. </a>
  330. </li>
  331. <li class="toctree-l1">
  332. <a class="reference internal" href="control/control_index.html">
  333. Optimal control
  334. </a>
  335. </li>
  336. <li class="toctree-l1">
  337. <a class="reference internal" href="../bib.html">
  338. Bibliography
  339. </a>
  340. </li>
  341. </ul>
  342. </div>
  343. </nav> <!-- To handle the deprecated key -->
  344. <div class="navbar_extra_footer">
  345. Powered by <a href="https://jupyterbook.org">Jupyter Book</a>
  346. </div>
  347. </div>
  348. <main class="col py-md-3 pl-md-4 bd-content overflow-auto" role="main">
  349. <div class="topbar container-xl fixed-top">
  350. <div class="topbar-contents row">
  351. <div class="col-12 col-md-3 bd-topbar-whitespace site-navigation show"></div>
  352. <div class="col pl-md-4 topbar-main">
  353. <button id="navbar-toggler" class="navbar-toggler ml-0" type="button" data-toggle="collapse"
  354. data-toggle="tooltip" data-placement="bottom" data-target=".site-navigation" aria-controls="navbar-menu"
  355. aria-expanded="true" aria-label="Toggle navigation" aria-controls="site-navigation"
  356. title="Toggle navigation" data-toggle="tooltip" data-placement="left">
  357. <i class="fas fa-bars"></i>
  358. <i class="fas fa-arrow-left"></i>
  359. <i class="fas fa-arrow-up"></i>
  360. </button>
  361. <div class="dropdown-buttons-trigger">
  362. <button id="dropdown-buttons-trigger" class="btn btn-secondary topbarbtn" aria-label="Download this page"><i
  363. class="fas fa-download"></i></button>
  364. <div class="dropdown-buttons">
  365. <!-- ipynb file if we had a myst markdown file -->
  366. <a class="dropdown-buttons"
  367. href="../_sources/chapters/scratch.ipynb"><button type="button"
  368. class="btn btn-secondary topbarbtn" title="Download notebook file" data-toggle="tooltip"
  369. data-placement="left">.ipynb</button></a>
  370. <!-- Download raw file -->
  371. <a class="dropdown-buttons" href="../_sources/chapters/scratch.md"><button type="button"
  372. class="btn btn-secondary topbarbtn" title="Download source file" data-toggle="tooltip"
  373. data-placement="left">.md</button></a>
  374. <!-- Download PDF via print -->
  375. <button type="button" id="download-print" class="btn btn-secondary topbarbtn" title="Print to PDF"
  376. onclick="printPdf(this)" data-toggle="tooltip" data-placement="left">.pdf</button>
  377. </div>
  378. </div>
  379. <!-- Source interaction buttons -->
  380. <div class="dropdown-buttons-trigger">
  381. <button id="dropdown-buttons-trigger" class="btn btn-secondary topbarbtn"
  382. aria-label="Connect with source repository"><i class="fab fa-github"></i></button>
  383. <div class="dropdown-buttons sourcebuttons">
  384. <a class="repository-button"
  385. href="https://github.com/probml/ssm-book"><button type="button" class="btn btn-secondary topbarbtn"
  386. data-toggle="tooltip" data-placement="left" title="Source repository"><i
  387. class="fab fa-github"></i>repository</button></a>
  388. <a class="issues-button"
  389. href="https://github.com/probml/ssm-book/issues/new?title=Issue%20on%20page%20%2Fchapters/scratch.html&body=Your%20issue%20content%20here."><button
  390. type="button" class="btn btn-secondary topbarbtn" data-toggle="tooltip" data-placement="left"
  391. title="Open an issue"><i class="fas fa-lightbulb"></i>open issue</button></a>
  392. </div>
  393. </div>
  394. <!-- Full screen (wrap in <a> to have style consistency -->
  395. <a class="full-screen-button"><button type="button" class="btn btn-secondary topbarbtn" data-toggle="tooltip"
  396. data-placement="bottom" onclick="toggleFullScreen()" aria-label="Fullscreen mode"
  397. title="Fullscreen mode"><i
  398. class="fas fa-expand"></i></button></a>
  399. <!-- Launch buttons -->
  400. <div class="dropdown-buttons-trigger">
  401. <button id="dropdown-buttons-trigger" class="btn btn-secondary topbarbtn"
  402. aria-label="Launch interactive content"><i class="fas fa-rocket"></i></button>
  403. <div class="dropdown-buttons">
  404. <a class="binder-button" href="https://mybinder.org/v2/gh/probml/ssm-book/main?urlpath=tree/chapters/scratch.md"><button type="button"
  405. class="btn btn-secondary topbarbtn" title="Launch Binder" data-toggle="tooltip"
  406. data-placement="left"><img class="binder-button-logo"
  407. src="../_static/images/logo_binder.svg"
  408. alt="Interact on binder">Binder</button></a>
  409. </div>
  410. </div>
  411. </div>
  412. <!-- Table of contents -->
  413. <div class="d-none d-md-block col-md-2 bd-toc show noprint">
  414. <div class="tocsection onthispage pt-5 pb-3">
  415. <i class="fas fa-list"></i> Contents
  416. </div>
  417. <nav id="bd-toc-nav" aria-label="Page">
  418. <ul class="visible nav section-nav flex-column">
  419. <li class="toc-h2 nav-item toc-entry">
  420. <a class="reference internal nav-link" href="#python">
  421. Python
  422. </a>
  423. </li>
  424. <li class="toc-h2 nav-item toc-entry">
  425. <a class="reference internal nav-link" href="#images">
  426. Images
  427. </a>
  428. </li>
  429. <li class="toc-h2 nav-item toc-entry">
  430. <a class="reference internal nav-link" href="#math">
  431. Math
  432. </a>
  433. </li>
  434. </ul>
  435. </nav>
  436. </div>
  437. </div>
  438. </div>
  439. <div id="main-content" class="row">
  440. <div class="col-12 col-md-9 pl-md-3 pr-md-0">
  441. <!-- Table of contents that is only displayed when printing the page -->
  442. <div id="jb-print-docs-body" class="onlyprint">
  443. <h1>Scratchpad</h1>
  444. <!-- Table of contents -->
  445. <div id="print-main-content">
  446. <div id="jb-print-toc">
  447. <div>
  448. <h2> Contents </h2>
  449. </div>
  450. <nav aria-label="Page">
  451. <ul class="visible nav section-nav flex-column">
  452. <li class="toc-h2 nav-item toc-entry">
  453. <a class="reference internal nav-link" href="#python">
  454. Python
  455. </a>
  456. </li>
  457. <li class="toc-h2 nav-item toc-entry">
  458. <a class="reference internal nav-link" href="#images">
  459. Images
  460. </a>
  461. </li>
  462. <li class="toc-h2 nav-item toc-entry">
  463. <a class="reference internal nav-link" href="#math">
  464. Math
  465. </a>
  466. </li>
  467. </ul>
  468. </nav>
  469. </div>
  470. </div>
  471. </div>
  472. <div>
  473. <div class="tex2jax_ignore mathjax_ignore section" id="scratchpad">
  474. <span id="ch-intro"></span><h1>Scratchpad<a class="headerlink" href="#scratchpad" title="Permalink to this headline">¶</a></h1>
  475. <p>In this chapter, we do blah.
  476. Specifically</p>
  477. <ul class="simple">
  478. <li><p>foo</p></li>
  479. <li><p>bar.</p></li>
  480. <li><p>baz</p></li>
  481. </ul>
  482. <p>For more details, see
  483. <a class="reference internal" href="hmm/hmm_index.html#ch-hmm"><span class="std std-ref">Hidden Markov Models</span></a> and <span id="id1">[<a class="reference internal" href="../bib.html#id18" title="Simo Sarkka. Bayesian Filtering and Smoothing. Cambridge University Press, 2013. URL: https://users.aalto.fi/~ssarkka/pub/cup_book_online_20131111.pdf.">Sar13</a>]</span>.</p>
  484. <div class="section" id="python">
  485. <h2>Python<a class="headerlink" href="#python" title="Permalink to this headline">¶</a></h2>
  486. <p>We’re now ready to start coding.</p>
  487. <div class="cell docutils container">
  488. <div class="cell_input docutils container">
  489. <div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">rcParams</span><span class="p">,</span> <span class="n">cycler</span>
  490. <span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
  491. <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
  492. <span class="n">plt</span><span class="o">.</span><span class="n">ion</span><span class="p">()</span>
  493. </pre></div>
  494. </div>
  495. </div>
  496. </div>
  497. <div class="cell docutils container">
  498. <div class="cell_input docutils container">
  499. <div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="c1"># Fixing random state for reproducibility</span>
  500. <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">seed</span><span class="p">(</span><span class="mi">19680801</span><span class="p">)</span>
  501. <span class="n">N</span> <span class="o">=</span> <span class="mi">10</span>
  502. <span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">logspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> <span class="o">+</span> <span class="n">ii</span> <span class="k">for</span> <span class="n">ii</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">)]</span>
  503. <span class="n">data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">data</span><span class="p">)</span><span class="o">.</span><span class="n">T</span>
  504. <span class="n">cmap</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">cm</span><span class="o">.</span><span class="n">coolwarm</span>
  505. <span class="n">rcParams</span><span class="p">[</span><span class="s1">&#39;axes.prop_cycle&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">cycler</span><span class="p">(</span><span class="n">color</span><span class="o">=</span><span class="n">cmap</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">N</span><span class="p">)))</span>
  506. <span class="kn">from</span> <span class="nn">matplotlib.lines</span> <span class="kn">import</span> <span class="n">Line2D</span>
  507. <span class="n">custom_lines</span> <span class="o">=</span> <span class="p">[</span><span class="n">Line2D</span><span class="p">([</span><span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">cmap</span><span class="p">(</span><span class="mf">0.</span><span class="p">),</span> <span class="n">lw</span><span class="o">=</span><span class="mi">4</span><span class="p">),</span>
  508. <span class="n">Line2D</span><span class="p">([</span><span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">cmap</span><span class="p">(</span><span class="mf">.5</span><span class="p">),</span> <span class="n">lw</span><span class="o">=</span><span class="mi">4</span><span class="p">),</span>
  509. <span class="n">Line2D</span><span class="p">([</span><span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">cmap</span><span class="p">(</span><span class="mf">1.</span><span class="p">),</span> <span class="n">lw</span><span class="o">=</span><span class="mi">4</span><span class="p">)]</span>
  510. <span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
  511. <span class="n">lines</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
  512. <span class="n">ax</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">custom_lines</span><span class="p">,</span> <span class="p">[</span><span class="s1">&#39;Cold&#39;</span><span class="p">,</span> <span class="s1">&#39;Medium&#39;</span><span class="p">,</span> <span class="s1">&#39;Hot&#39;</span><span class="p">]);</span>
  513. </pre></div>
  514. </div>
  515. </div>
  516. <div class="cell_output docutils container">
  517. <img alt="../_images/scratch_2_0.png" src="../_images/scratch_2_0.png" />
  518. </div>
  519. </div>
  520. <div class="cell docutils container">
  521. <div class="cell_input docutils container">
  522. <div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
  523. <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
  524. <span class="kn">import</span> <span class="nn">jax</span>
  525. <span class="kn">import</span> <span class="nn">jax.numpy</span> <span class="k">as</span> <span class="nn">jnp</span>
  526. <span class="nb">print</span><span class="p">(</span><span class="n">jax</span><span class="o">.</span><span class="n">devices</span><span class="p">())</span>
  527. </pre></div>
  528. </div>
  529. </div>
  530. <div class="cell_output docutils container">
  531. <div class="output stderr highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)
  532. </pre></div>
  533. </div>
  534. <div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>[CpuDevice(id=0)]
  535. </pre></div>
  536. </div>
  537. </div>
  538. </div>
  539. </div>
  540. <div class="section" id="images">
  541. <h2>Images<a class="headerlink" href="#images" title="Permalink to this headline">¶</a></h2>
  542. <!---
  543. ![](https://myst-parser.readthedocs.io/en/latest/_static/logo-wide.svg)
  544. <img src="https://github.com/probml/probml-notebooks/blob/main/images/cat_dog.jpg"
  545. style="height:200">
  546. -->
  547. <div class="figure align-default" id="cat-dog">
  548. <a class="reference internal image-reference" href="../_images/cat_dog.jpg"><img alt="../_images/cat_dog.jpg" src="../_images/cat_dog.jpg" style="width: 320.0px; height: 240.0px;" /></a>
  549. <p class="caption"><span class="caption-number">Fig. 1 </span><span class="caption-text">A photo of a cat and a dog.</span><a class="headerlink" href="#cat-dog" title="Permalink to this image">¶</a></p>
  550. </div>
  551. <div class="figure align-default" id="cat-dog2">
  552. <a class="reference internal image-reference" href="../_images/cat_dog.jpg"><img alt="../_images/cat_dog.jpg" src="../_images/cat_dog.jpg" style="height: 300px;" /></a>
  553. <p class="caption"><span class="caption-number">Fig. 2 </span><span class="caption-text">Another photo of a cat and a dog.</span><a class="headerlink" href="#cat-dog2" title="Permalink to this image">¶</a></p>
  554. </div>
  555. <p>In <a class="reference internal" href="#cat-dog"><span class="std std-numref">Fig. 1</span></a>
  556. we show catdog.
  557. In <a class="reference internal" href="#cat-dog2"><span class="std std-numref">Figure 2</span></a> we show catdog2, its twin.</p>
  558. <div class="admonition note">
  559. <p class="admonition-title">Note</p>
  560. <p>I am a useful note!</p>
  561. </div>
  562. </div>
  563. <div class="section" id="math">
  564. <h2>Math<a class="headerlink" href="#math" title="Permalink to this headline">¶</a></h2>
  565. <p>Here is <span class="math notranslate nohighlight">\(\N=10\)</span> and blah. <span class="math notranslate nohighlight">\(\floor{42.3}= 42\)</span>.</p>
  566. <p>We have <span class="math notranslate nohighlight">\(E= mc^2\)</span>, and also</p>
  567. <div class="math notranslate nohighlight" id="equation-foo">
  568. <span class="eqno">(1)<a class="headerlink" href="#equation-foo" title="Permalink to this equation">¶</a></span>\[a x^2 + bx+ c = 0\]</div>
  569. <p>From <a class="reference internal" href="#equation-foo">(1)</a>, it follows that</p>
  570. <div class="math notranslate nohighlight">
  571. \[\begin{split}
  572. \begin{align}
  573. 0 &amp;= a x^2 + bx+ c \\
  574. 0 &amp;= a x^2 + bx+ c
  575. \end{align}
  576. \end{split}\]</div>
  577. </div>
  578. </div>
  579. <script type="text/x-thebe-config">
  580. {
  581. requestKernel: true,
  582. binderOptions: {
  583. repo: "binder-examples/jupyter-stacks-datascience",
  584. ref: "master",
  585. },
  586. codeMirrorConfig: {
  587. theme: "abcdef",
  588. mode: "python"
  589. },
  590. kernelOptions: {
  591. kernelName: "python3",
  592. path: "./chapters"
  593. },
  594. predefinedOutput: true
  595. }
  596. </script>
  597. <script>kernelName = 'python3'</script>
  598. </div>
  599. <!-- Previous / next buttons -->
  600. <div class='prev-next-area'>
  601. <a class='left-prev' id="prev-link" href="../root.html" title="previous page">
  602. <i class="fas fa-angle-left"></i>
  603. <div class="prev-next-info">
  604. <p class="prev-next-subtitle">previous</p>
  605. <p class="prev-next-title">State Space Models: A Modern Approach</p>
  606. </div>
  607. </a>
  608. <a class='right-next' id="next-link" href="ssm/ssm_index.html" title="next page">
  609. <div class="prev-next-info">
  610. <p class="prev-next-subtitle">next</p>
  611. <p class="prev-next-title">State Space Models</p>
  612. </div>
  613. <i class="fas fa-angle-right"></i>
  614. </a>
  615. </div>
  616. </div>
  617. </div>
  618. <footer class="footer">
  619. <p>
  620. By Kevin Murphy, Scott Linderman, et al.<br/>
  621. &copy; Copyright 2021.<br/>
  622. </p>
  623. </footer>
  624. </main>
  625. </div>
  626. </div>
  627. <script src="../_static/js/index.be7d3bbb2ef33a8344ce.js"></script>
  628. </body>
  629. </html>