* Stochastic Processes: Data Analysis and Computer Simulation [#j45b7376]


** About the course [#l6be16db]

:''Course Number''| 
::009x|

:''Brief Description'' | 
::The course deals with how to simulate and analyze stochastic processes, in particular the dynamics of small particles diffusing in a fluid.|

:''Full Description'' | 
::The motion of falling leaves or small particles diffusing in a fluid is highly stochastic in nature. Therefore, such motions must be modeled as stochastic processes, for which exact predictions are no longer possible. This is in stark contrast to the deterministic motion of planets and stars, which can be perfectly predicted using celestial mechanics. This course is an introduction to stochastic processes through numerical simulations, with a focus on the proper data analysis needed to interpret the results. We will use the Jupyter (iPython) notebook as our programming environment. It is freely available for Windows, Mac, and Linux through the Anaconda Python Distribution. The students will first learn the basic theories of stochastic processes. Then, they will use these theories to develop their own python codes to perform numerical simulations of small particles diffusing in a fluid. Finally, they will analyze the simulation data according to the theories presented at the beginning of course. At the end of the course, we will analyze the dynamical data of more complicated systems, such as financial markets or meteorological data, using the basic theory of stochastic processes.|

:''What You¡Çll Learn'' | 
::Basic Python programming|
::Basic theories of stochastic processes|
::Simulation methods for a Brownian particle|
::Application: analysis of financial data|

:''Learner Testimonial'' | 
::None|

:''Course Dates'' | 
::Starts on 30 March, 2017|

:''Course Length'' | 
::6 weeks|

:''Estimated Effort'' | 
::2-3 hours per week|

:''Prerequisites'' | 
::Basic mathematics expected of a 2nd year undergraduate student (differential and integral calculus and linear algebra).|

:''Language'' | 
:: Content: English|
:: Videos: English|

:''Course Level'' | 
:: Intermediate|

:''Certificate Type and Price'' | 
::TBA|

:''XSeries'' | 
::No|

:''Course Staff'' | 
::''Ryoichi Yamamoto''|
:::Ryoichi was born in Ishikawa Prefecture, Japan in 1965. He obtained his B. Eng. (1988) and M.Eng. (1992) degrees from Kobe University and Ph.D. (1996) degree from Kyoto University. He was a research associate at Kobe University (1994--1996), a research associate (1996–-1999) and a lecturer (2000--2004) at the Department of Physics, Kyoto University, an associate professor at the Department of Chemical Engineering, Kyoto University (2004--2008). Since 2008, he has been a professor there. He works on dynamical problems of soft matters (complex fluids, glasses, polymers, and colloids) and active matters (micro-swimmers and cells) by developing and using novel methods of computer simulations suitable for those systems.|
::''John J. Molina''|
:::John was born in Bogota, Colombia in 1983. He obtained his B.~Sci. from the Andes University (2007), M.~Sci. from the ENS-Lyon (2008), and Ph.D. from the University of Paris 6 - UPMC (2011). He joined Kyoto University as a research fellow in 2011, and since 2014 he is an assistant professor in the Department of Chemical Engineering. He is focused on studying the dynamics of soft-matter systems using computer simulations.|
::Areas of Expertise: |
:::Soft Matter Science|
:::Computational Science|
:::Transport Phenomena|
::Major Works:|
:::Hydrodynamic interactions of self-propelled swimmers, John J. Molina, Yasuya Nakayama, and Ryoichi Yamamoto.|
:::Dynamics of Highly Supercooled Liquids; Heterogeneity, Rheology, and Diffusion, Ryoichi Yamamoto and Akira Onuki.|
::Connect:|
:::website: http://www-tph.cheme.kyoto-u.ac.jp/index.php?en%2FFrontPage|
:::facebook:https://www.facebook.com/groups/1158492977603546/ |

** Trailers [#tfd66dc6]

- trailer [ [[youtube:https://www.youtube.com/watch?v=hq-otcUbJkY]] ]
- welcome [ [[youtube:https://www.youtube.com/watch?v=9AZUwpohLvo]] ]

** Lecture contents [#pc541bf0]

- Week1: Python programming for beginners [ [[''Go''>ry/en/StochasticProcessesWeek01]] ]
-- 1. Using Python, iPython, and Jupyter notebook 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP011.ipynb]] ]
[ [[youtube:https://youtu.be/b3_zp3tZOSI]] ]
-- 2. Making graphs with matplotlib 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP012.ipynb]] ]
[ [[youtube:https://youtu.be/z3-1S9dT1B0]] ]
-- 3. The Euler method for numerical integration 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP013.ipynb]] ]
[ [[youtube:https://youtu.be/kzqanhozw7M]] ]
-- 4. Simulating a damped harmonic oscillator 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP014.ipynb]] ]
[ [[youtube:https://youtu.be/6y-8R6VQmmU]] ]

- Week2: Distribution function and random number [ [[''Go''>ry/en/StochasticProcessesWeek02]] ]
-- 1. Stochastic variable and distribution functions
[ [[pptx:http://www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP021.pptx]] ]
[ [[youtube:https://youtu.be/TxkWXvEee1c]] ]
-- 2. Generating random numbers with Gaussian/binomial/Poisson distributions 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP022.ipynb]] ]
[ [[youtube:https://youtu.be/F0lIci1hN7I]] ]
-- 3. The central limiting theorem 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP023.ipynb]] ]
[ [[youtube:https://youtu.be/yiwbLcib5h0]] ]
-- 4. Random walk 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP024.ipynb]] ]
[ [[youtube:https://youtu.be/ngbal11jChQ]] ]

- Week3: Brownian motion 1: basic theories [ [[''Go''>ry/en/StochasticProcessesWeek03]] ]
-- 1. Basic knowledge of stochastic process
[ [[pptx:http://www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP031.pptx]] ]
[ [[youtube:https://youtu.be/jEZkCaIdCXI]] ]
-- 2. Brownian motion and the Langevin equation
[ [[pptx:http://www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP032.pptx]] ]
[ [[youtube:https://youtu.be/3i_VqpKBXvw]] ]
-- 3. The linear response theory and the Green-Kubo formula
[ [[pptx:http://www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP033.pptx]] ]
[ [[youtube:https://youtu.be/BcXhc7N7wZM]] ]

- Week4: Brownian motion 2: computer simulation [ [[''Go''>ry/en/StochasticProcessesWeek04]] ]
-- 1. Random force in the Langevin equation 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP041.ipynb]] ]
[ [[youtube:]] ]
-- 2. Simple Python code to simulate Brownian motion 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP042.ipynb]] ]
[ [[youtube:]] ]
-- 3. Simulations with on-the-fly animation
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP043.ipynb]] ]
[ [[youtube:]] ]

- Week5: Brownian motion 3: data analyses [ [[''Go''>ry/en/StochasticProcessesWeek05]] ]
-- 1. Distribution and time correlation 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP051.ipynb]] ]
[ [[youtube:]] ]
-- 2. Mean square displacement and diffusion constant
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP052.ipynb]] ]
[ [[youtube:]] ]
-- 3. Interacting Brownian particles 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP053.ipynb]] ]
[ [[youtube:]] ]

- Week6: Stochastic processes in real world [ [[''Go''>ry/en/StochasticProcessesWeek06]] ]
-- 1. Time variations and distributions of real world processes (earthquake, stock price, ...)
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP061.ipynb]] ]
[ [[youtube:]] ]
-- 2. A stochastic model to mimic variations of stock prices 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP062.ipynb]] ]
[ [[youtube:]] ]
-- 3. Comparisons with real data and modifications of the model 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP063.ipynb]] ]
[ [[youtube:]] ]
-- 4. Time correlations in stock price variations 
[ [[ipynb:https://nbviewer.jupyter.org/url/www-tph.cheme.kyoto-u.ac.jp/p/ryoichi/lec/edx/009x/SP064.ipynb]] ]
[ [[youtube:]] ]


** Useful Information [#pdaabe84]

- Download Python and set up programming environment on your [Windows/Mac/Linux] PC [ [[''Go''>ry/en/StochasticProcessesAnaconda]] ]

- Python 3 official documentation [ [[''Go'':https://docs.python.org/3/]] ]

- Jupyter official website [ [[''Go'':http://jupyter.org/]] ]

- Related online resources

-- edX "Introduction to Computer Science and Programming Using Python" [ [[''Go'':https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-9]] ]

- What I have done for performing my slide presentations

-- Install anaconda "Anaconda3-4.2.0-MacOSX-x86_64.pkg" downloaded from https://repo.continuum.io/archive/ .
-- Install RISE by following the instructions found in https://github.com/damianavila/RISE . Be careful that RISE doesn't support Python 3.6 yet. 
-- Install notebook extensions by following the instructions found in http://qiita.com/Tsutomu-KKE@github/items/1326e05eb992a8aa849d . Then you can use a spell checker etc...
-- Replace "main.css" and "main.js" found in ~/anaconda/share/jupyter/nbextensions/rise/ with the same fine you can find in (dropbox)/00common/RISE_customize/ . This is needed to fit slides with bigpad.
-- Launch *.ipynb using Safari, display full screen, click the "RISE presentation icon"