{"id":5212,"date":"2019-09-16T09:00:24","date_gmt":"2019-09-16T14:00:24","guid":{"rendered":"https:\/\/blogs.mathworks.com\/cleve\/?p=5212"},"modified":"2019-09-16T10:58:06","modified_gmt":"2019-09-16T15:58:06","slug":"experiments-with-kuramoto-oscillators","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/cleve\/2019\/09\/16\/experiments-with-kuramoto-oscillators\/","title":{"rendered":"Experiments With Kuramoto Oscillators"},"content":{"rendered":"<div class=\"content\"><!--introduction--><p>I have learned a lot more about Kuramoto oscillators since I wrote my blog post <a href=\"https:\/\/blogs.mathworks.com\/cleve\/2019\/08\/26\/kuramoto-model-of-synchronized-oscillators\/\">three weeks ago<\/a>.   I am working with Indika Rajapakse at the University of Michigan and Stephen Smale at the University of California, Berkeley. They are interested in the Kuramoto model because they are studying the beating of human heart cells. At this point we have some interesting results and some unanswered questions.<\/p><!--\/introduction--><h3>Contents<\/h3><div><ul><li><a href=\"#f489efea-b474-4dac-ac07-e053329ad58c\">Kuramoto model<\/a><\/li><li><a href=\"#2b5ac445-fc3e-4aa6-8627-99b6d46ce75b\">Potential<\/a><\/li><li><a href=\"#1320b440-68c7-4264-a8d7-d5b159bb9e19\">Kuramoto simulator<\/a><\/li><li><a href=\"#4051a889-8f32-4c9d-9995-764961300a3d\">Snapshots<\/a><\/li><li><a href=\"#038a208c-91db-493a-b707-99083741bfd8\">Increase coupling<\/a><\/li><li><a href=\"#418d7310-6f95-45b7-bd39-cd0e6f30f9cf\">Increase coupling more and decrease variability<\/a><\/li><li><a href=\"#82206db0-4bd0-445c-9cbc-ed165b1d887e\">Confine display<\/a><\/li><li><a href=\"#906c727b-6e2b-4217-8bcd-3f0847bd5647\">Few oscillators<\/a><\/li><li><a href=\"#2323fcb1-476f-457c-9917-4117f2968015\">Add some variability<\/a><\/li><li><a href=\"#d0070b3d-4857-4fb3-a179-e037a29f83a6\">At last, some action<\/a><\/li><li><a href=\"#2586d57f-e25e-4ad6-87b4-0fa30c0db83e\">Enough, already<\/a><\/li><li><a href=\"#744ad694-c085-4a87-924b-fb9a4fb3c2c0\">Preview<\/a><\/li><li><a href=\"#b42e594e-bb53-496b-8745-9516299b8a07\">References<\/a><\/li><\/ul><\/div><h4>Kuramoto model<a name=\"f489efea-b474-4dac-ac07-e053329ad58c\"><\/a><\/h4><p>Recall that the Kuramoto model is a system of $n$ ordinary differential equations.<\/p><p>$$\\dot{\\theta_k} = \\omega_k +  \\frac{\\kappa}{n}\\sum_{j=1}^n\r\n{\\sin{(\\theta_j-\\theta_k)}}, \\ k = 1,....,n.$$<\/p><p>Here $\\theta_k(t)$ is a real-valued function of $t$ describing the phase of the $k$-th oscillator, $\\omega_k$ is the intrinsic frequency of the $k$-th oscillator and the real scalar $\\kappa$ is the strength of the coupling between the oscillators.<\/p><p>When $\\kappa = 0$, the equations are linear and easily solved, and the oscillators are independent.<\/p><p>$$\\theta_k(t)= \\omega_k t$$<\/p><p>When $\\kappa$ is increased beyond a critical point, the nonlinear term forces the phases of all the oscillators to approach a common limit.<\/p><h4>Potential<a name=\"2b5ac445-fc3e-4aa6-8627-99b6d46ce75b\"><\/a><\/h4><p>Rajapakse and Smale have devised a new measure of synchronicity, the potential.<\/p><p>$$v = \\frac{4}{n^2} \\sum_k{ \\sum_{j&gt;k}\r\n\\sin^2{ \\left(\\frac{\\theta_j - \\theta_k}{2} \\right) }}$$<\/p><p>The $4\/n^2$ normalizes the potential so that<\/p><p>$$0 \\leq v \\leq 1$$<\/p><p>The simulation is started with the $\\theta_k$ equally spaced over the interval $[0,2\\pi]$.  This makes $v$ reach its maximum, $v = 1$, and indicates that the oscillators are completely out of sync. On the other hand, if we ever reach a point when all the $\\theta_k$ are equal to a common value, then $v = 0$, indicating complete synchronization.<\/p><p>You can get to the Kuramoto ode system by taking $\\partial v\/\\partial \\theta_k$ and forming the gradient of the potential.<\/p><p>$$ \\dot{\\theta}-\\omega = -\\frac{\\kappa n}{4}\\nabla{v}$$<\/p><p>In my previous post, I described the \"order parameter\", shown in the simulator by the length of the cyan arrow.  This varies between 0 initially and 1 at complete syncronization.  One of the unanswered questions we have is exactly how the potential and the order parameter are related. A switch in <tt>kuramoto<\/tt> allows you to monitor either one.<\/p><h4>Kuramoto simulator<a name=\"1320b440-68c7-4264-a8d7-d5b159bb9e19\"><\/a><\/h4><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"http:\/\/blogs.mathworks.com\/cleve\/files\/kuramoto_2.gif\" alt=\"\"> <\/p><p>The current version of my simulator is still called <tt>kuramoto<\/tt>, even though it replaces, and significantly improves, the version I described three weeks ago. The animation above shows it in action. There are five parameters controlled by sliders.  The first three affect the dynamics of the system.<\/p><div><ul><li><tt>n<\/tt>, number of oscillators,<\/li><li><tt>kappa<\/tt>, coupling coefficient,<\/li><li><tt>beta<\/tt>, \"variabilty\", half-width of the <tt>omega<\/tt> distribution<\/li><\/ul><\/div><p>The vector <tt>omega<\/tt> is constant.  Its components are randomly distributed uniformly in the interval <tt>[1-beta,1+beta]<\/tt> . This is the only source of randomness in the simulation. Setting <tt>beta<\/tt> to zero makes all the components of <tt>omega<\/tt> equal and eliminates any randomness.<\/p><p>The angular velocities of <tt>exp(i*theta)<\/tt> are color coded with the <tt>parula<\/tt> color map, blues for the fastest, yellows for the slowest, and greens in between.<\/p><p>Two more sliders affect the display, but not the dynamics of the system.<\/p><div><ul><li><tt>w<\/tt>, standard deviation of the width of the ring,<\/li><li><tt>step<\/tt>, step size of the display.<\/li><\/ul><\/div><p>Since <tt>theta<\/tt> is real, <tt>exp(i*theta)<\/tt> lies on the unit circle. Display of a large number of oscillators moving around on the circle with different velocities is crowded.  So, we display <tt>r*exp(i*theta)<\/tt> where <tt>r<\/tt> is normally distributed with mean one and standard deviation <tt>w<\/tt>.  Setting <tt>w<\/tt> to zero forces the display to lie exactly on the circle.<\/p><p>Increasing <tt>step<\/tt> speeds up the simulation, but does not affect the computed solution, as long as it isn't too large.   Setting <tt>step<\/tt> to zero pauses the simulation.<\/p><h4>Snapshots<a name=\"4051a889-8f32-4c9d-9995-764961300a3d\"><\/a><\/h4><p>The following figures are static snapshots of the simulator output. All the snapshots are monitoring the potential. All are using the reference frame which rotates with the average <tt>theta<\/tt>, although this is hard to see in a static snapshot. The first four snapshots, with \"many\" oscillators, all have <tt>n<\/tt> = 100.<\/p><p>This first snapshot is the last frame of our animation. It has the default settings,<\/p><div><ul><li><tt>kappa<\/tt> = 0.15,<\/li><li><tt>beta<\/tt> = 0.25<\/li><\/ul><\/div><p>The oscillators are beginning to sychronize, although the potential has barely dropped below <tt>v<\/tt> = 0.5.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"http:\/\/blogs.mathworks.com\/cleve\/files\/kurafig1.png\" alt=\"\"> <\/p><h4>Increase coupling<a name=\"038a208c-91db-493a-b707-99083741bfd8\"><\/a><\/h4><p>Increase <tt>kappa<\/tt> from 0.15 to<\/p><div><ul><li><tt>kappa<\/tt> = 0.20<\/li><\/ul><\/div><p>The oscillators are cooperating, but the potential hovers above <tt>v<\/tt> = 0.13 .<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"http:\/\/blogs.mathworks.com\/cleve\/files\/kurafig2.png\" alt=\"\"> <\/p><h4>Increase coupling more and decrease variability<a name=\"418d7310-6f95-45b7-bd39-cd0e6f30f9cf\"><\/a><\/h4><p>Set<\/p><div><ul><li><tt>kappa<\/tt> = 0.50,<\/li><li><tt>beta<\/tt> = 0.20<\/li><\/ul><\/div><p>This produces rapid syncronization and a potential near 0.01.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"http:\/\/blogs.mathworks.com\/cleve\/files\/kurafig3.png\" alt=\"\"> <\/p><h4>Confine display<a name=\"82206db0-4bd0-445c-9cbc-ed165b1d887e\"><\/a><\/h4><p>Set<\/p><div><ul><li><tt>kappa<\/tt> = 0.15 (default)<\/li><li><tt>beta<\/tt> = 1.00 (maximum)<\/li><li><tt>w<\/tt> = 0 (minimum)<\/li><\/ul><\/div><p>With <tt>beta<\/tt> at its maximum, there is lots of random action. The potential never drops below 0.99.  But with the display width set to zero, all this turbulence is confined to the circle.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"http:\/\/blogs.mathworks.com\/cleve\/files\/kurafig4.png\" alt=\"\"> <\/p><h4>Few oscillators<a name=\"906c727b-6e2b-4217-8bcd-3f0847bd5647\"><\/a><\/h4><p>Rajapakse and Smale are particularly interested in proving theorems about the behavior of the Kuramoto system when there are only a small handful of identical oscillators.<\/p><div><ul><li><tt>n<\/tt> = 5<\/li><li><tt>kappa<\/tt> = 0<\/li><li><tt>beta<\/tt> = 0<\/li><\/ul><\/div><p>The five oscillators are represented initially as the vertices of a regular pentagon and, with both <tt>kappa<\/tt> and <tt>beta<\/tt> equal to zero, appear to stay there.  It seems to be pretty boring.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"http:\/\/blogs.mathworks.com\/cleve\/files\/kurafig5.png\" alt=\"\"> <\/p><h4>Add some variability<a name=\"2323fcb1-476f-457c-9917-4117f2968015\"><\/a><\/h4><p>Try<\/p><div><ul><li><tt>kappa<\/tt> = 0<\/li><li><tt>beta<\/tt> = 0.5<\/li><\/ul><\/div><p>Looks interesting.  But, hold it, there is no coupling. As I said at the beginning, the exact solution is<\/p><p>$$\\theta_k(t)= \\omega_k t$$<\/p><p>with five different, but constant, <tt>omega(k)<\/tt>.  We are just seeing a five-term Fourier series.  (I got fooled by this one.)<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"http:\/\/blogs.mathworks.com\/cleve\/files\/kurafig6.png\" alt=\"\"> <\/p><h4>At last, some action<a name=\"d0070b3d-4857-4fb3-a179-e037a29f83a6\"><\/a><\/h4><p>Try<\/p><div><ul><li><tt>kappa<\/tt> = 0.215<\/li><li><tt>beta<\/tt> = 0.5<\/li><\/ul><\/div><p>There are actually five oscillators here.  Three of them are on top of each other, but it's too soon to tell about the other two.  Look at the potential.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"http:\/\/blogs.mathworks.com\/cleve\/files\/kurafig7.png\" alt=\"\"> <\/p><h4>Enough, already<a name=\"2586d57f-e25e-4ad6-87b4-0fa30c0db83e\"><\/a><\/h4><p>I could go on like this all night, but enough for now. You can try some yourself by downloading the simulator from either its individual spot at <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/72534-kuramoto-s-model-of-synchronizing-oscillators\">MATLAB Central<\/a> or as part of <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/59085-cleve_s-laboratory\">Cleve's Laborarory<\/a>.<\/p><h4>Preview<a name=\"744ad694-c085-4a87-924b-fb9a4fb3c2c0\"><\/a><\/h4><p>That snapshot I said is boring, isn't so boring after all. How <i>do<\/i> you arrange for a small handful of points to be equally spaced around the unit circle, and what are the consequences of any slight discrepancies.  Remember <tt>pi<\/tt> $\\ne \\pi$.<\/p><h4>References<a name=\"b42e594e-bb53-496b-8745-9516299b8a07\"><\/a><\/h4><p>Indika Rajapakse and Stephen Smale, \"Emergence of function from coordinated cells in a tissue,\"  <i>Proceedings of the National Academy Sciences,<\/i> 114 (7) 1462-1467, 2017, <a href=\"https:\/\/www.pnas.org\/content\/114\/7\/1462.short\">https:\/\/www.pnas.org\/content\/114\/7\/1462.short<\/a>.<\/p><p>Dirk Brockman and Steven Strogatz, \"Ride my Kuramotocycle\", <a href=\"https:\/\/www.complexity-explorables.org\/explorables\/ride-my-kuramotocycle\">https:\/\/www.complexity-explorables.org\/explorables\/ride-my-kuramotocycle<\/a>.<\/p><p>Steven Strogatz, <i>Sync: The Emerging Science of Spontaneous Order<\/i>, Hyperion, New York, 2003, <a href=\"https:\/\/www.amazon.com\/Sync-Emerging-Science-Spontaneous-Order\/dp\/0786868449\/ref=asc_df_0786868449\/\">link<\/a>.<\/p><p>Steven Strogatz, <i>On the Science of Sync<\/i>. Video, <a href=\"http:\/\/www.cornell.edu\/video\/steven-strogatz-ted-talk-on-sync\">http:\/\/www.cornell.edu\/video\/steven-strogatz-ted-talk-on-sync<\/a>.<\/p><p>Steven Strogatz, \"From Kuramoto to Crawford: Exploring the onset of synchronization in populations of coupled oscillators,\" <i>Physica D<\/i> 143, 1-20 (2000). <a href=\"https:\/\/static.squarespace.com\/static\/5436e695e4b07f1e91b30155\/t\/544525a8e4b0b8e2e8230fa3\/1413817768995\/from-kuramoto-to-crawford.pdf\">link<\/a>.<\/p><p>Yoshiki Kuramoto, <i>Chemical Oscillations, Waves and Turbulence<\/i>, Springer, 1984. <a href=\"https:\/\/www.springer.com\/gp\/book\/9783642696916\">https:\/\/www.springer.com\/gp\/book\/9783642696916<\/a>.<\/p><script language=\"JavaScript\"> <!-- \r\n    function grabCode_8fede9d7c8794a81942d728fb2a3936c() {\r\n        \/\/ Remember the title so we can use it in the new page\r\n        title = document.title;\r\n\r\n        \/\/ Break up these strings so that their presence\r\n        \/\/ in the Javascript doesn't mess up the search for\r\n        \/\/ the MATLAB code.\r\n        t1='8fede9d7c8794a81942d728fb2a3936c ' + '##### ' + 'SOURCE BEGIN' + ' #####';\r\n        t2='##### ' + 'SOURCE END' + ' #####' + ' 8fede9d7c8794a81942d728fb2a3936c';\r\n    \r\n        b=document.getElementsByTagName('body')[0];\r\n        i1=b.innerHTML.indexOf(t1)+t1.length;\r\n        i2=b.innerHTML.indexOf(t2);\r\n \r\n        code_string = b.innerHTML.substring(i1, i2);\r\n        code_string = code_string.replace(\/REPLACE_WITH_DASH_DASH\/g,'--');\r\n\r\n        \/\/ Use \/x3C\/g instead of the less-than character to avoid errors \r\n        \/\/ in the XML parser.\r\n        \/\/ Use '\\x26#60;' instead of '<' so that the XML parser\r\n        \/\/ doesn't go ahead and substitute the less-than character. \r\n        code_string = code_string.replace(\/\\x3C\/g, '\\x26#60;');\r\n\r\n        copyright = 'Copyright 2019 The MathWorks, Inc.';\r\n\r\n        w = window.open();\r\n        d = w.document;\r\n        d.write('<pre>\\n');\r\n        d.write(code_string);\r\n\r\n        \/\/ Add copyright line at the bottom if specified.\r\n        if (copyright.length > 0) {\r\n            d.writeln('');\r\n            d.writeln('%%');\r\n            if (copyright.length > 0) {\r\n                d.writeln('% _' + copyright + '_');\r\n            }\r\n        }\r\n\r\n        d.write('<\/pre>\\n');\r\n\r\n        d.title = title + ' (MATLAB code)';\r\n        d.close();\r\n    }   \r\n     --> <\/script><p style=\"text-align: right; font-size: xx-small; font-weight:lighter;   font-style: italic; color: gray\"><br><a href=\"javascript:grabCode_8fede9d7c8794a81942d728fb2a3936c()\"><span style=\"font-size: x-small;        font-style: italic;\">Get \r\n      the MATLAB code <noscript>(requires JavaScript)<\/noscript><\/span><\/a><br><br>\r\n      Published with MATLAB&reg; R2018b<br><\/p><\/div><!--\r\n8fede9d7c8794a81942d728fb2a3936c ##### SOURCE BEGIN #####\r\n%% Experiments With Kuramoto Oscillators\r\n% I have learned a lot more about Kuramoto oscillators since I wrote\r\n% my blog post\r\n% <https:\/\/blogs.mathworks.com\/cleve\/2019\/08\/26\/kuramoto-model-of-synchronized-oscillators\/\r\n% three weeks ago>.   I am working with Indika Rajapakse at the University\r\n% of Michigan and Stephen Smale at the University of California, Berkeley.\r\n% They are interested in the Kuramoto model because they are studying\r\n% the beating of human heart cells.\r\n% At this point we have some interesting results and\r\n% some unanswered questions.\r\n\r\n%% Kuramoto model\r\n% Recall that\r\n% the Kuramoto model is a system of $n$ ordinary differential equations.\r\n%\r\n% $$\\dot{\\theta_k} = \\omega_k +  \\frac{\\kappa}{n}\\sum_{j=1}^n\r\n% {\\sin{(\\theta_j-\\theta_k)}}, \\ k = 1,....,n.$$\r\n%\r\n% Here $\\theta_k(t)$ is a real-valued function of $t$ describing\r\n% the phase of the $k$-th oscillator, $\\omega_k$ is the intrinsic frequency\r\n% of the $k$-th oscillator and the real scalar $\\kappa$ is the strength\r\n% of the coupling between the oscillators.\r\n%\r\n% When $\\kappa = 0$, the equations are linear and easily solved, and\r\n% the oscillators are independent.\r\n%\r\n% $$\\theta_k(t)= \\omega_k t$$\r\n%\r\n% When $\\kappa$ is increased beyond a critical point, the nonlinear\r\n% term forces the phases of all the oscillators to approach\r\n% a common limit.\r\n\r\n%% Potential\r\n% Rajapakse and Smale have devised a new measure of synchronicity,\r\n% the potential.\r\n%\r\n% $$v = \\frac{4}{n^2} \\sum_k{ \\sum_{j>k}\r\n% \\sin^2{ \\left(\\frac{\\theta_j - \\theta_k}{2} \\right) }}$$\r\n%\r\n% The $4\/n^2$ normalizes the potential so that\r\n%\r\n% $$0 \\leq v \\leq 1$$ \r\n%\r\n% The simulation is started with the $\\theta_k$ equally spaced over\r\n% the interval $[0,2\\pi]$.  This makes $v$ reach its maximum, $v = 1$,\r\n% and indicates that the oscillators are completely out of sync.\r\n% On the other hand, if we ever reach a point when all the $\\theta_k$\r\n% are equal to a common value, then $v = 0$, indicating complete\r\n% synchronization.\r\n%\r\n% You can get to the Kuramoto ode system by taking\r\n% $\\partial v\/\\partial \\theta_k$ and forming the gradient of the\r\n% potential.\r\n%\r\n% $$ \\dot{\\theta}-\\omega = -\\frac{\\kappa n}{4}\\nabla{v}$$\r\n%\r\n% In my previous post, I described the \"order parameter\", shown in the\r\n% simulator by the length of the cyan arrow.  This varies between 0\r\n% initially and 1 at complete syncronization.  One of the unanswered\r\n% questions we have is exactly how the potential and the order parameter\r\n% are related.\r\n% A switch in |kuramoto| allows you to monitor either one.\r\n\r\n%% Kuramoto simulator\r\n%\r\n% <<kuramoto_2.gif>>\r\n%\r\n% The current version of my simulator is still called |kuramoto|,\r\n% even though it replaces, and significantly improves, the version\r\n% I described three weeks ago.\r\n% The animation above shows it in action.\r\n% There are five parameters controlled by sliders.  The first three affect\r\n% the dynamics of the system.\r\n%\r\n% * |n|, number of oscillators,\r\n% * |kappa|, coupling coefficient,\r\n% * |beta|, \"variabilty\", half-width of the |omega| distribution\r\n%\r\n% The vector |omega| is constant.  Its components are randomly \r\n% distributed uniformly in the interval |[1-beta,1+beta]| .\r\n% This is the only source of randomness in the simulation.\r\n% Setting |beta| to zero makes all the components of |omega| equal\r\n% and eliminates any randomness.\r\n%\r\n% The angular velocities of |exp(i*theta)| are color coded with\r\n% the |parula| color map, blues for the fastest, yellows for the\r\n% slowest, and greens in between.\r\n\r\n%%\r\n% Two more sliders affect the display, but not the dynamics \r\n% of the system.\r\n%\r\n% * |w|, standard deviation of the width of the ring,\r\n% * |step|, step size of the display.\r\n%\r\n% Since |theta| is real, |exp(i*theta)| lies on the unit circle.\r\n% Display of a large number of oscillators moving around on the circle\r\n% with different velocities is crowded.  So, we display |r*exp(i*theta)|\r\n% where |r| is normally distributed with mean one and standard\r\n% deviation |w|.  Setting |w| to zero forces the display to lie exactly\r\n% on the circle.\r\n%\r\n% Increasing |step| speeds up the simulation, but does not affect the\r\n% computed solution, as long as it isn't too large.   Setting \r\n% |step| to zero pauses the simulation.\r\n\r\n%% Snapshots \r\n% The following figures are static snapshots of the simulator output.\r\n% All the snapshots are monitoring the potential.\r\n% All are using the reference frame which rotates with the average\r\n% |theta|, although this is hard to see in a static snapshot.\r\n% The first four snapshots, with \"many\" oscillators, all have |n| = 100.\r\n%\r\n% This first snapshot is the last frame of our animation.\r\n% It has the default settings,\r\n%\r\n% * |kappa| = 0.15,\r\n% * |beta| = 0.25\r\n%\r\n% The oscillators are beginning to sychronize, although the potential\r\n% has barely dropped below |v| = 0.5.\r\n%\r\n% <<kurafig1.png>>\r\n%\r\n\r\n%% Increase coupling\r\n% Increase |kappa| from 0.15 to\r\n%\r\n% * |kappa| = 0.20\r\n%\r\n% The oscillators are cooperating, but the potential hovers above\r\n% |v| = 0.13 .\r\n%\r\n% <<kurafig2.png>>\r\n%\r\n\r\n%% Increase coupling more and decrease variability\r\n% Set\r\n%\r\n% * |kappa| = 0.50,\r\n% * |beta| = 0.20\r\n%\r\n% This produces rapid syncronization and a potential near 0.01.\r\n%\r\n% <<kurafig3.png>>\r\n%\r\n\r\n%% Confine display\r\n% Set\r\n%\r\n% * |kappa| = 0.15 (default)\r\n% * |beta| = 1.00 (maximum)\r\n% * |w| = 0 (minimum)\r\n% \r\n% With |beta| at its maximum, there is lots of random action.\r\n% The potential never drops below 0.99.  But with the display\r\n% width set to zero, all this turbulence is confined to the circle.\r\n%\r\n% <<kurafig4.png>>\r\n%\r\n\r\n%% Few oscillators\r\n% Rajapakse and Smale are particularly interested in proving\r\n% theorems about the behavior of the Kuramoto system when there\r\n% are only a small handful of identical oscillators.\r\n%\r\n% * |n| = 5\r\n% * |kappa| = 0\r\n% * |beta| = 0\r\n%\r\n% The five oscillators are represented initially as the vertices\r\n% of a regular pentagon and, with both |kappa| and |beta| equal to zero,\r\n% appear to stay there.  It seems to be pretty boring.\r\n%                                                       \r\n% <<kurafig5.png>>\r\n%\r\n\r\n%% Add some variability\r\n% Try\r\n%\r\n% * |kappa| = 0\r\n% * |beta| = 0.5\r\n%\r\n% Looks interesting.  But, hold it, there is no coupling.\r\n% As I said at the beginning, the exact solution is\r\n%\r\n% $$\\theta_k(t)= \\omega_k t$$\r\n%\r\n% with five different, but constant, |omega(k)|.  We are just seeing\r\n% a five-term Fourier series.  (I got fooled by this one.)\r\n%\r\n% <<kurafig6.png>>\r\n%\r\n\r\n%% At last, some action\r\n% Try\r\n%\r\n% * |kappa| = 0.215\r\n% * |beta| = 0.5\r\n%\r\n% There are actually five oscillators here.  Three of them are\r\n% on top of each other, but it's too soon to tell about the\r\n% other two.  Look at the potential.\r\n%\r\n% <<kurafig7.png>>\r\n%\r\n\r\n%% Enough, already\r\n% I could go on like this all night, but enough for now.\r\n% You can try some yourself by\r\n% downloading the simulator from either its individual spot at\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/72534-kuramoto-s-model-of-synchronizing-oscillators\r\n% MATLAB Central>\r\n% or as part of\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/59085-cleve_s-laboratory\r\n% Cleve's Laborarory>.\r\n\r\n%% Preview\r\n% That snapshot I said is boring, isn't so boring after all.\r\n% How _do_ you arrange for a small handful of points to be equally spaced \r\n% around the unit circle, and what are the consequences of any\r\n% slight discrepancies.  Remember |pi| $\\ne \\pi$.\r\n\r\n%% References\r\n% Indika Rajapakse and Stephen Smale, \"Emergence of function from\r\n% coordinated cells in a tissue,\"  _Proceedings of the National Academy\r\n% Sciences,_ 114 (7) 1462-1467, 2017,\r\n% <https:\/\/www.pnas.org\/content\/114\/7\/1462.short>.\r\n%\r\n% Dirk Brockman and Steven Strogatz, \"Ride my Kuramotocycle\",\r\n% <https:\/\/www.complexity-explorables.org\/explorables\/ride-my-kuramotocycle>.\r\n%\r\n% Steven Strogatz, _Sync: The Emerging Science of Spontaneous Order_,\r\n% Hyperion, New York, 2003,\r\n% <https:\/\/www.amazon.com\/Sync-Emerging-Science-Spontaneous-Order\/dp\/0786868449\/ref=asc_df_0786868449\/\r\n% link>.\r\n%\r\n% Steven Strogatz, _On the Science of Sync_. Video,\r\n% <http:\/\/www.cornell.edu\/video\/steven-strogatz-ted-talk-on-sync>.\r\n%\r\n% Steven Strogatz, \"From Kuramoto to Crawford: Exploring the onset\r\n% of synchronization in populations of coupled oscillators,\"\r\n% _Physica D_ 143, 1-20 (2000). \r\n% <https:\/\/static.squarespace.com\/static\/5436e695e4b07f1e91b30155\/t\/544525a8e4b0b8e2e8230fa3\/1413817768995\/from-kuramoto-to-crawford.pdf\r\n% link>.\r\n%\r\n% Yoshiki Kuramoto, _Chemical Oscillations, Waves and Turbulence_,\r\n% Springer, 1984. <https:\/\/www.springer.com\/gp\/book\/9783642696916>.\r\n\r\n\r\n##### SOURCE END ##### 8fede9d7c8794a81942d728fb2a3936c\r\n-->","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img src=\"https:\/\/blogs.mathworks.com\/cleve\/files\/kpreview.png\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div><!--introduction--><p>I have learned a lot more about Kuramoto oscillators since I wrote my blog post <a href=\"https:\/\/blogs.mathworks.com\/cleve\/2019\/08\/26\/kuramoto-model-of-synchronized-oscillators\/\">three weeks ago<\/a>.   I am working with Indika Rajapakse at the University of Michigan and Stephen Smale at the University of California, Berkeley. They are interested in the Kuramoto model because they are studying the beating of human heart cells. At this point we have some interesting results and some unanswered questions.... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/cleve\/2019\/09\/16\/experiments-with-kuramoto-oscillators\/\">read more >><\/a><\/p>","protected":false},"author":78,"featured_media":5356,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[5,23,4,8],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/posts\/5212"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/users\/78"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/comments?post=5212"}],"version-history":[{"count":4,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/posts\/5212\/revisions"}],"predecessor-version":[{"id":5358,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/posts\/5212\/revisions\/5358"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/media\/5356"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/media?parent=5212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/categories?post=5212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/tags?post=5212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}