{"id":295486,"date":"2019-12-17T16:17:12","date_gmt":"2019-12-17T16:17:12","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=295486"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=295486","title":{"rendered":"\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u0430\u0442\u0442\u0440\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u0432 Plotly \u2014 \u044d\u0442\u043e \u0448\u0435\u0434\u0435\u0432\u0440\u0430\u043b\u044c\u043d\u043e"},"content":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/480660\/\">\u041f\u043e\u044d\u0437\u0438\u044f \u2014 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439, \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0433, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0432 \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438, \u043d\u043e \u0442\u0430\u043a \u0438\u043c \u043b\u044e\u0431\u0438\u043c \u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0442\u044c\u0441\u044f. \u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0438 \u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435. \u0412 \u0444\u0438\u043b\u044c\u043c\u0435 \u00ab\u041f\u0438\u00bb \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0433\u0435\u0440\u043e\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443 \u00ab\u044f\u0437\u044b\u043a\u043e\u043c \u043f\u0440\u0438\u0440\u043e\u0434\u044b\u00bb, \u0430 \u0432 \u0444\u0438\u043b\u044c\u043c\u0435 \u00ab\u0418\u0433\u0440\u044b \u0440\u0430\u0437\u0443\u043c\u0430\u00bb \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0433\u0435\u0440\u043e\u0439 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u043d\u0435\u0439, \u043a\u0430\u043a \u043e\u0431 \u00ab\u043e\u0441\u043e\u0431\u043e\u043c \u0432\u0438\u0434\u0435 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0430\u00bb. \u041c\u044b \u0436\u0435, \u0432 \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438, \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u043f\u0440\u043e\u0447\u044c \u0437\u0430\u0431\u044b\u0442\u044c \u043e\u0431 \u044d\u0442\u043e\u043c.<\/p>\n<p>  \u041e\u0431\u043b\u0438\u043a \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u0430\u0442\u0442\u0440\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0435\u043e\u0431\u044b\u0447\u0435\u043d \u0438 \u043f\u0440\u0438\u0442\u044f\u0433\u0430\u0442\u0435\u043b\u0435\u043d \u0434\u0430\u0436\u0435 \u0432 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u043e\u043c \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0438. Plotly \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0432 \u0442\u0440\u0435\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\u0445, \u043f\u0440\u0438\u0447\u0435\u043c \u043e\u043d \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e 3D-\u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u00ab\u0432\u0435\u0440\u0442\u0435\u0442\u044c\u00bb \u0438 \u0441\u043a\u0432\u043e\u0437\u044c \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u00ab\u043f\u0440\u043e\u043b\u0435\u0442\u0430\u0442\u044c\u00bb \u2014 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435 \u00ab\u043f\u0440\u0438\u043a\u043e\u0441\u043d\u043e\u0432\u0435\u043d\u0438\u044f\u00bb.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9e\/6r\/13\/9e6r13fvmv5omdnqktzjh5vncys.png\" alt=\"image\"><\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<h2>\u0421 \u0447\u0435\u0433\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c<\/h2>\n<p>  \u0412\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0432\u043d\u043e, \u0433\u0434\u0435-\u0442\u043e \u0432 2007 \u0433\u043e\u0434\u0443 \u0432 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0435 \u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441 \u0442\u0435\u043e\u0440\u0438\u0435\u0439 \u0441\u0430\u043c\u043e\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0443\u0432\u0438\u0434\u0435\u043b \u0430\u0442\u0442\u0440\u0430\u043a\u0442\u043e\u0440 \u041b\u043e\u0440\u0435\u043d\u0446\u0430, \u0435\u0433\u043e \u0447\u0435\u0440\u043d\u043e-\u0431\u0435\u043b\u0443\u044e \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u043d\u0438\u0433\u0435. \u0422\u043e\u0433\u0434\u0430 \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u043c, \u0447\u0442\u043e \u043d\u0435\u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0441\u0442\u043e\u043b\u044c \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0438. \u0415\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u043c \u043c\u043d\u0435 \u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0441\u0430\u043c\u0430 \u0438\u0434\u0435\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u043d\u0430 \u0441\u0432\u0435\u0442\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043e\u0434\u043d\u043e\u0439-\u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0435\u0439. <\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u0432\u0441\u0435 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u2014 \u043c\u043e\u0435 \u043c\u0438\u0440\u043e\u0432\u043e\u0437\u0437\u0440\u0435\u043d\u0438\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c, \u0436\u0438\u0437\u043d\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b\u0430\u0441\u044c, \u0432\u0440\u0435\u043c\u044f \u0448\u043b\u043e. \u0418 \u0432\u043e\u0442, \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u043d\u0430\u0442\u044b\u043a\u0430\u044e\u0441\u044c \u043d\u0430 <a href=\"https:\/\/chaoticatmospheres.com\/mathrules-strange-attractors\" rel=\"nofollow\">\u0441\u0441\u044b\u043b\u043a\u0443<\/a> \u0438 \u0432\u0438\u0436\u0443 \u0432\u043e\u0442 \u044d\u0442\u043e:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/un\/zb\/w4\/unzbw45em-qhauf6ey6f32jtzjc.png\" alt=\"Image from chaoticatmospheres.com\"><br \/>  <i>\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u0437\u044f\u0442\u043e \u0441 \u0441\u0430\u0439\u0442\u0430 chaoticatmospheres.com<\/i><\/p>\n<p>  \u00ab\u041a\u0440\u0430\u0441\u0438\u0432\u043e.\u00bb \u2014 \u043f\u043e\u0434\u0443\u043c\u0430\u043b \u044f. \u041c\u044b\u0441\u043b\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432 Matplotlib \u0442\u043e\u0436\u0435 \u043f\u0440\u043e\u043c\u0435\u043b\u044c\u043a\u043d\u0443\u043b\u0430, \u043d\u043e \u044f \u0443\u0436\u0435 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0437\u043d\u0430\u043b, \u0447\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u0418 \u0432\u043e\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e, \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0434\u0432\u0435 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u0430\u0434, \u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441 Plotly \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u0435\u0442 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u041f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u043b\u0430\u0441\u044c. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445 \u00ab\u0413\u0430\u043b\u0435\u0440\u0435\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u0430\u0442\u0442\u0440\u0430\u043a\u0442\u043e\u0440\u043e\u0432\u00bb \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043e\u0448\u0438\u0431\u043a\u0438. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0430\u0432\u0442\u043e\u0440 \u0433\u0430\u043b\u0435\u0440\u0435\u0438, \u0447\u0435\u0441\u0442\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0435\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u043e\u043c, \u043a\u0430\u043a \u0438 \u0430\u0432\u0442\u043e\u0440 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>  \u041d\u0435\u0434\u043e\u043b\u0433\u043e\u0435 \u00ab\u0433\u0443\u0433\u043b\u0435\u043d\u0438\u0435\u00bb \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u043e\u0442 \u044d\u0442\u043e\u0442 <a href=\"https:\/\/github.com\/mtyka\/attractor\/blob\/master\/attractor.py\" rel=\"nofollow\">\u043a\u043e\u0434<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0447\u0440\u0435\u0437\u0432\u044b\u0447\u0430\u0439\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u0435\u043d, \u0430 \u0441\u043e\u0437\u0434\u0430\u043b \u0435\u0433\u043e Michael Tyka. \u042d\u0442\u043e\u0442 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0441\u0434\u0435\u043b\u0430\u043b \u0446\u0435\u043b\u044b\u0439 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f Blender-\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 (!) 60-\u0442\u0438 \u0430\u0442\u0442\u0440\u0430\u043a\u0442\u043e\u0440\u043e\u0432. \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u043d\u0430 3D-\u043f\u0440\u0438\u043d\u0442\u0435\u0440\u0435, \u0430 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u0435\u0447\u0430\u0442\u0438 \u0432\u043e\u0441\u043a\u043e\u043c, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \u0434\u043b\u044f \u043e\u0442\u043b\u0438\u0432\u043a\u0438 \u0432 \u0431\u0440\u043e\u043d\u0437\u0435.<\/p>\n<h2>\u041a\u043e\u0434 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h2>\n<p>  \u0427\u0442\u043e \u0436, \u043f\u043e\u043c\u0438\u043c\u043e, \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u044f \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u043e\u043c-\u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u043c, \u044f \u0442\u0430\u043a \u0436\u0435 \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u043c-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c. \u0422\u0430\u043a \u0447\u0442\u043e \u043d\u0435 \u0441\u0443\u0434\u0438\u0442\u0435 \u0441\u0442\u0440\u043e\u0433\u043e \u0437\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0434\u0430.  <\/p>\n<pre><code class=\"python\">################################ ###  \u0418\u041c\u041f\u041e\u0420\u0422\u0418\u0420\u0423\u0415\u041c \u0411\u0418\u0411\u041b\u0418\u041e\u0422\u0415\u041a\u0418  ### ################################  import numpy as np from scipy.integrate import odeint import plotly.graph_objects as go   ################################## ###  \u0420\u0415\u0428\u0410\u0415\u041c \u0421\u0418\u0421\u0422\u0415\u041c\u0423 \u0423\u0420\u0410\u0412\u041d\u0415\u041d\u0418\u0419  ### ##################################  # \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def LorenzMod1(XYZ, t, alpha, beta, xi, delta):     x, y, z = XYZ     x_dt = -alpha*x + y*y - z*z + alpha*xi     y_dt = x*(y - beta*z) + delta     z_dt = -z + x*(beta*y + z)     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 0.1 beta = 4 xi = 14 delta = 0.08  x_0, y_0, z_0 = 0, 1, 0  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 100, 50000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(LorenzMod1, (x_0, y_0, z_0), t, args=(alpha, beta, xi, delta)) X, Y, Z = f.T   ####################### ###  \u0412\u0418\u0417\u0423\u0410\u041b\u0418\u0417\u0418\u0420\u0423\u0415\u041c  ### #######################  # \u041c\u0430\u0441\u0441\u0438\u0432, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u0430: c = np.linspace(0, 1, n)  # \u0413\u043e\u0442\u043e\u0432\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438: DATA = go.Scatter3d(x=X, y=Y, z=Z,                     line=dict(color= c,                               width=3,                               # \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043f\u0430\u043b\u0438\u0442\u0440\u0443:                               # Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,                               # Reds,Blues,Picnic,Rainbow,Portland,Jet,                               # Hot,Blackbody,Earth,Electric,Viridis,Cividis.                               colorscale=\"Cividis\"),                     #  \u0420\u0438\u0441\u0443\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u043d\u0438\u0438:                     mode='lines')  fig = go.Figure(data=DATA)      # \u0417\u0430\u0434\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438: fig.update_layout(width=1000, height=1000,                   margin=dict(r=10, l=10, b=10, t=10),                   # \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0446\u0432\u0435\u0442 \u0444\u043e\u043d\u0430:                   paper_bgcolor='rgb(0,0,0)',                   scene=dict(camera=dict(up=dict(x=0, y=0, z=1),                                          eye=dict(x=0, y=1, z=1)),                              # \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435                              # \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043e\u0441\u0435\u0439 \u0434\u0440\u0443\u0433 \u043a \u0434\u0440\u0443\u0433\u0443:                              aspectratio = dict(x=1, y=1, z=1),                              # \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c, \u043a\u0430\u043a \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \"aspectratio\"                              aspectmode = 'manual',                              # \u0421\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u0441\u0438:                              xaxis=dict(visible=False),                              yaxis=dict(visible=False),                              zaxis=dict(visible=False)                             )                  )  ###################### #!!  \u0412\u041e\u0421\u0422\u041e\u0420\u0413\u0410\u0415\u041c\u0421\u042f  !!# ######################  fig.show()<\/code><\/pre>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f 3D-\u043c\u043e\u0434\u0435\u043b\u044c \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u0442\u0442\u0440\u0430\u043a\u0442\u043e\u0440\u0430, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e <i>Lorenz Mod 1<\/i>:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/oz\/ht\/0g\/ozht0ga9njh0tzm_ov7cmf5cpus.png\" alt=\"image\"><\/p>\n<p>  \u041d\u0443\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0431\u044b\u043b\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <i>odeint<\/i> \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u044f SciPy, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043c\u043d\u0435 \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u043c \u0432\u044b\u0445\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u0434\u0430. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u0441\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0440\u0435\u0448\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u042d\u0439\u043b\u0435\u0440\u0430.<\/p>\n<p>  \u0414\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u043a\u043e\u0434\u0435 \u044f \u043f\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u0443\u043a\u0432 \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0445 \u0432 LaTeX-\u0435. \u0412 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u043b\u043e\u043a\u043d\u043e\u0442\u0430\u043c\u0438 Jupyter \u044d\u0442\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0431\u044b\u0432\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u0442\u0430\u043a-\u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u0434\u043e\u043c, \u0430 \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u044b.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0435 Python, \u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u0431\u044b \u043a\u043e\u0434 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0441\u044f, \u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430 Python <a href=\"https:\/\/repo.anaconda.com\/archive\/\" rel=\"nofollow\">Anaconda<\/a>, \u0430 \u043f\u0430\u043a\u0435\u0442 Plotly \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/conda.io\/en\/latest\/\" rel=\"nofollow\">conda<\/a> \u2014 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430.<\/p>\n<p>  \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u0430\u0442\u0442\u0440\u0430\u043a\u0442\u043e\u0440\u043e\u0432, \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0432\u0441\u0435, \u043c\u043d\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043b\u0438\u0448\u044c \u0441\u0430\u043c\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0438\u0437 \u0442\u0435\u0445, \u0447\u0442\u043e \u043c\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c.<\/p>\n<h4>The Chen-Lee Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def ChenLee(XYZ, t, alpha, beta, delta):     x, y, z = XYZ     x_dt = alpha*x - y*z     y_dt = beta*y + x*z     z_dt = delta*z + x*y\/3     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 5 beta = -10 delta = -0.38  x_0, y_0, z_0 = 1, 1, 1  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 200, 30000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(ChenLee, (x_0, y_0, z_0), t,            args=(alpha, beta, delta))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mj\/ar\/wr\/mjarwrgyqx7zfx57npjsfccbrj0.png\" alt=\"image\"><\/p>\n<h4>The Chua Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def ChuaAttractor(XYZ, t, alpha, beta, zeta, delta):     x, y, z = XYZ     h = zeta*x + (0.5*(delta - zeta))*(np.abs(x + 1) - np.abs(x - 1))     x_dt = alpha*(-x + y - h)     y_dt = x - y + z     z_dt = -beta*y     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 15.6 beta = 25.58 zeta = -5\/7 delta = -8\/7  x_0, y_0, z_0 = 1.8, -0.7, -2.85  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 200, 10000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(ChuaAttractor, (x_0, y_0, z_0), t,            args=(alpha, beta, zeta, delta))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vb\/ng\/ml\/vbngmlkxo6dqrpq6qjtzojvd8he.png\" alt=\"image\"><\/p>\n<h4>The Coullet Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def Coullet(XYZ, t, alpha, beta, zeta, delta):     x, y, z = XYZ     x_dt = y     y_dt = z     z_dt = alpha*x + beta*y + zeta*z + delta*x**3     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 0.8 beta = -1.1 zeta = -0.4 delta = -1  x_0, y_0, z_0 = 0.1, 0, 0  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 200, 20000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(Coullet, (x_0, y_0, z_0), t,            args=(alpha, beta, zeta, delta))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/26\/69\/jh\/2669jhilg2hl2pkco4nehrv4_sk.png\" alt=\"image\"><\/p>\n<h4>The Dadras Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def DadrasAttractor(XYZ, t, rho, sigma, tau, zeta, epsilon):     x, y, z = XYZ     x_dt = y - rho*x + sigma*y*z     y_dt = tau*y - x*z + z     z_dt = zeta*x*y - epsilon*z     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: rho = 3 sigma = 2.7 tau = 1.7 zeta = 2 epsilon = 9  x_0, y_0, z_0 = 0.1, 0.03, 0  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 220, 40000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(DadrasAttractor, (x_0, y_0, z_0), t,            args=(rho, sigma, tau, zeta, epsilon))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/v_\/4a\/df\/v_4adfzf1zrpui6yy3a-g3ahn4c.png\" alt=\"image\"><\/p>\n<h4>The Dequan Li Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def DequanLi(XYZ, t, alpha, beta, delta, epsilon, rho, xi):     x, y, z = XYZ     x_dt = alpha*(y - x) + delta*x*z     y_dt = rho*x + xi*y -x*z     z_dt = beta*z + x*y  - epsilon*x*x     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 40 beta = 1.833 delta = 0.16 epsilon = 0.65 rho = 55 xi = 20  x_0, y_0, z_0 = 0.01, 0, 0  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 50, 40000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(DequanLi, (x_0, y_0, z_0), t,            args=(alpha, beta, delta, epsilon, rho, xi))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/q_\/wu\/k5\/q_wuk5c3vuibg8ikjcilch950q4.png\" alt=\"image\"><\/p>\n<h4>The Finance Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def FinanceAttractor(XYZ, t, alpha, beta, zeta):     x, y, z = XYZ     x_dt = (1\/beta - alpha)*x + x*y + z     y_dt = -beta*y - x**2     z_dt = -x - zeta*z     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 0.001 beta = 0.2 zeta = 1.1  x_0, y_0, z_0 = 0.1, 0, 0  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 300, 40000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(FinanceAttractor, (x_0, y_0, z_0), t,            args=(alpha, beta, zeta))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fx\/bq\/le\/fxbqlek_x1qmutoznkvuw5zzeyi.png\" alt=\"image\"><\/p>\n<h4>The Four-Wing Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def FourWing(XYZ, t, alpha, beta, zeta):     x, y, z = XYZ     x_dt = alpha*x + y + y*z     y_dt = -x*z + y*z     z_dt = -z - zeta*x*y + beta     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 5 beta = 16 zeta = 2  x_0, y_0, z_0 = 1, -1, 1  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 100, 60000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(FourWing, (x_0, y_0, z_0), t,            args=(alpha, beta, zeta))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/j3\/rb\/n1\/j3rbn1bm_fy0ljinpe23id1t9r8.png\" alt=\"image\"><\/p>\n<h4>The Hadley Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def HadleyAttractor(XYZ, t, alpha, beta, xi, delta):     x, y, z = XYZ     x_dt = -y*y - z*z - alpha*x + alpha*xi     y_dt = x*y - beta*x*z - y + delta     z_dt = beta*x*y + x*z-z     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 0.2 beta = 4 xi = 8 delta = 1  x_0, y_0, z_0 = 0.39, -1, 0  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 100, 10000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(HadleyAttractor, (x_0, y_0, z_0), t,            args=(alpha, beta, xi, delta))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/oe\/ax\/xe\/oeaxxeld0j8oxf8fzhzmhzpo4ke.png\" alt=\"image\"><\/p>\n<h4>The Halvorsen Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def HalvorsenAttractor(XYZ, t, alpha):     x, y, z = XYZ     x_dt = -alpha*x - 4*y - 4*z - y*y     y_dt = -alpha*y - 4*z - 4*x - z*z     z_dt = -alpha*z - 4*x - 4*y - x*x     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 1.4  x_0, y_0, z_0 = -5, 0, 0  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 100, 10000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(HalvorsenAttractor, (x_0, y_0, z_0), t,            args=(alpha,))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/v6\/di\/5y\/v6di5ywaq_bpww31u6rfv2krggs.png\" alt=\"image\"><\/p>\n<h4>The Liu-Chen Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def LiuChen(XYZ, t, alpha, beta, sigma, delta, epsilon, xi):     x, y, z = XYZ     x_dt = alpha*y + beta*x + sigma*y*z     y_dt = delta*y - z + epsilon*x*z     z_dt = xi*z - x*y     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 2.4 beta = -3.75 sigma = 14 delta = -11 epsilon = 4 xi = 5.58  x_0, y_0, z_0 = 1, 3, 5  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 55, 50000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(LiuChen, (x_0, y_0, z_0), t,            args=(alpha, beta, sigma, delta, epsilon, xi))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/n-\/0x\/ew\/n-0xewrmiiqnb8bmizswllqgdfy.png\" alt=\"image\"><\/p>\n<h4>The Lorenz Mod 2 Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def LorenzMod2(XYZ, t, alpha, beta, xi, delta):     x, y, z = XYZ     x_dt = -alpha*x + y**2 -z**2 + alpha*xi     y_dt = x*(y - beta*z) + delta     z_dt = -z + x*(beta*y + z)     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 0.9 beta = 5 xi = 9.9 delta = 1  x_0, y_0, z_0 = 5, 5, 5  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 50, 50000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(LorenzMod2, (x_0, y_0, z_0), t,            args=(alpha, beta, xi, delta))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/2p\/hv\/6l\/2phv6lrwgi05tvlldo50msot7ns.png\" alt=\"image\"><\/p>\n<h4>The Modified Chua Chaotic Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def ChuaModified(XYZ, t, alpha, beta, gamma, delta, zeta):     x, y, z = XYZ     h = -delta*np.sin((np.pi*x)\/(2*gamma))     x_dt = alpha*(y - h)     y_dt = x - y + z     z_dt = -beta*y     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 10.82 beta = 14.286 gamma = 1.3 delta = 0.11 zeta = 7  x_0, y_0, z_0 = 1, 1, 0  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 200, 10000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(ChuaModified, (x_0, y_0, z_0), t,            args=(alpha, beta, gamma, delta, zeta))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/7r\/na\/nm\/7rnanmeemsjqzfcdmfgmsw3zq54.png\" alt=\"image\"><\/p>\n<h4>The Newton Leipnik Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def NewtonLeipnik(XYZ, t, alpha, beta):     x, y, z = XYZ     x_dt = -alpha*x + y + 10*y*z     y_dt = -x - 0.4*y + 5*x*z     z_dt = beta*z - 5*x*y     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 0.4 beta = 0.175  x_0, y_0, z_0 = 0.349, 0, -0.16  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 300, 50000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(NewtonLeipnik, (x_0, y_0, z_0), t,            args=(alpha, beta))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yj\/ca\/vc\/yjcavccjwadyw0gbdu-r9y2anxg.png\" alt=\"image\"><\/p>\n<h4>The Nose-Hoover Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def NoseHoover(XYZ, t, alpha):     x, y, z = XYZ     x_dt = y     y_dt = -x + y*z     z_dt = alpha - y*y     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 1.5  x_0, y_0, z_0 = 1, 0, 0  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 150, 10000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(NoseHoover, (x_0, y_0, z_0), t,            args=(alpha,))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/p1\/pw\/kw\/p1pwkw-onywcbxv2r21arzmiu28.png\" alt=\"image\"><\/p>\n<h4>The Roessler Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def Roessler(XYZ, t, alpha, beta, sigma):     x, y, z = XYZ     x_dt = -(y + z)     y_dt = x + alpha*y     z_dt = beta + z*(x - sigma)     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 0.2 beta = 0.2 sigma = 5.7  x_0, y_0, z_0 = 1, 1, 1  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 300, 50000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(Roessler, (x_0, y_0, z_0), t,            args=(alpha, beta, sigma))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/y7\/2c\/u3\/y72cu3rdn8t7kzuh8jshij9mism.png\" alt=\"image\"><\/p>\n<h4>The Sakarya Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def SakaryaAttractor(XYZ, t, alpha, beta):     x, y, z = XYZ     x_dt = -x + y + y*z     y_dt = -x - y + alpha*x*z     z_dt = z - beta*x*y     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 0.4 beta = 0.3  x_0, y_0, z_0 = 1, -1, 1  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 100, 10000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(SakaryaAttractor, (x_0, y_0, z_0), t,            args=(alpha, beta))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/54\/f_\/h9\/54f_h9kkpgchr0d6jo9deixgesa.png\" alt=\"image\"><\/p>\n<h4>The Thomas Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def Thomas(XYZ, t, beta):     x, y, z = XYZ     x_dt = -beta*x + np.sin(y)     y_dt = -beta*y + np.sin(z)     z_dt = -beta*z + np.sin(x)     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: beta = 0.19  x_0, y_0, z_0 = 0.1, 0, 0  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 185, 10000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(Thomas, (x_0, y_0, z_0), t,            args=(beta,))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/a9\/n6\/lw\/a9n6lw6hxs0gtxy2nljf7ekbhkc.png\" alt=\"image\"><\/p>\n<h4>The Three-Scroll Unified Chaotic System Attractor (TSUCS1)<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def TSUCS1(XYZ, t, alpha, beta, delta, epsilon, xi):     x, y, z = XYZ     x_dt = alpha*(y - x) + delta*x*z     y_dt = xi*y - x*z     z_dt = beta*z + x*y  - epsilon*x*x     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 40 beta = 0.833 delta = 0.5 epsilon = 0.65 xi = 20  x_0, y_0, z_0 = 0.01, 0, 0  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 70, 50000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(TSUCS1, (x_0, y_0, z_0), t,            args=(alpha, beta, delta, epsilon, xi))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mg\/ul\/k9\/mgulk9i0bkgfhck_4hm6cv_rd8w.png\" alt=\"image\"><\/p>\n<h4>The Wang-Sun Attractor<\/h4>\n<p>  <\/p>\n<pre><code class=\"python\"># \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439: def WangSunAttractor(XYZ, t, alpha, beta, zeta, delta, epsilon, xi):     x, y, z = XYZ     x_dt = alpha*x + zeta*y*z     y_dt = beta*x + delta*y - x*z     z_dt = epsilon*z + xi*x*y     return x_dt, y_dt, z_dt  # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f: alpha = 0.2 beta = -0.01 zeta = 1 delta = -0.4 epsilon = -1 xi = -1  x_0, y_0, z_0 = 0.5, 0.1, 0.1  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a: tmax, n = 500, 30000  # \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 # \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 t: t = np.linspace(0, tmax, n) f = odeint(WangSunAttractor, (x_0, y_0, z_0), t,            args=(alpha, beta, zeta, delta, epsilon, xi))<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ch\/z0\/jh\/chz0jhig5tjgaxwvdgomicc97su.png\" alt=\"image\"><\/p>\n<h2>\u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u041e\u0433\u043e\u043d\u044c, \u0432\u043e\u0434\u0430, \u0437\u0435\u043c\u043b\u044f, \u043d\u0435\u0431\u043e, \u0441\u043e\u043b\u043d\u0446\u0435, \u043b\u0443\u043d\u0430, \u0437\u0432\u0435\u0437\u0434\u044b \u2014 \u0432\u0441\u0435 \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0435 \u0434\u0440\u0435\u0432\u043d\u0438\u0435 \u043f\u043e\u044d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u041e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u043c\u043d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u0432 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435 \u0447\u0442\u043e-\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u0435. \u041d\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0447\u0430\u0449\u0435 \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u043a\u0430\u043a \u043e\u0431\u043e \u0432\u0441\u0435\u043c \u044d\u0442\u043e\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043d\u0430 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0438 \u044f\u0437\u044b\u043a\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u043c. \u041d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u043d\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u041d\u043e \u0432\u043e\u0442 \u0447\u0442\u043e \u044f \u043e\u0441\u043e\u0437\u043d\u0430\u043b \u043d\u0430 \u0432\u0441\u0435 100%, \u0442\u0430\u043a \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u044e\u0442 \u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u0432\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a \u0442\u043e\u043c\u0443 \u0447\u0435\u043c \u0442\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u0430\u043d\u044f\u0442, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u0442\u0435\u0431\u044f \u0438 \u043a\u0430\u043a \u0442\u0435\u0431\u0435 \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0431\u0435\u0437 \u0441\u043b\u043e\u0432.<\/p><\/div>\n<p>               <script class=\"js-mediator-script\">!function(e){function t(t,n){if(!(n in e)){for(var r,a=e.document,i=a.scripts,o=i.length;o--;)if(-1!==i[o].src.indexOf(t)){r=i[o];break}if(!r){r=a.createElement(\"script\"),r.type=\"text\/javascript\",r.async=!0,r.defer=!0,r.src=t,r.charset=\"UTF-8\";var d=function(){var e=a.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)};\"[object Opera]\"==e.opera?a.addEventListener?a.addEventListener(\"DOMContentLoaded\",d,!1):e.attachEvent(\"onload\",d):d() } } }t(\"\/\/mediator.mail.ru\/script\/2820404\/\",\"_mediator\")}(window);<\/script>      <br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/480660\/\"> https:\/\/habr.com\/ru\/post\/480660\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/480660\/\">\u041f\u043e\u044d\u0437\u0438\u044f \u2014 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439, \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0433, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0432 \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438, \u043d\u043e \u0442\u0430\u043a \u0438\u043c \u043b\u044e\u0431\u0438\u043c \u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0442\u044c\u0441\u044f. \u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0438 \u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435. \u0412 \u0444\u0438\u043b\u044c\u043c\u0435 \u00ab\u041f\u0438\u00bb \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0433\u0435\u0440\u043e\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443 \u00ab\u044f\u0437\u044b\u043a\u043e\u043c \u043f\u0440\u0438\u0440\u043e\u0434\u044b\u00bb, \u0430 \u0432 \u0444\u0438\u043b\u044c\u043c\u0435 \u00ab\u0418\u0433\u0440\u044b \u0440\u0430\u0437\u0443\u043c\u0430\u00bb \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0433\u0435\u0440\u043e\u0439 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u043d\u0435\u0439, \u043a\u0430\u043a \u043e\u0431 \u00ab\u043e\u0441\u043e\u0431\u043e\u043c \u0432\u0438\u0434\u0435 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0430\u00bb. \u041c\u044b \u0436\u0435, \u0432 \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438, \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u043f\u0440\u043e\u0447\u044c \u0437\u0430\u0431\u044b\u0442\u044c \u043e\u0431 \u044d\u0442\u043e\u043c.<\/p>\n<p>  \u041e\u0431\u043b\u0438\u043a \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u0430\u0442\u0442\u0440\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0435\u043e\u0431\u044b\u0447\u0435\u043d \u0438 \u043f\u0440\u0438\u0442\u044f\u0433\u0430\u0442\u0435\u043b\u0435\u043d \u0434\u0430\u0436\u0435 \u0432 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u043e\u043c \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0438. Plotly \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0432 \u0442\u0440\u0435\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\u0445, \u043f\u0440\u0438\u0447\u0435\u043c \u043e\u043d \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e 3D-\u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u00ab\u0432\u0435\u0440\u0442\u0435\u0442\u044c\u00bb \u0438 \u0441\u043a\u0432\u043e\u0437\u044c \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u00ab\u043f\u0440\u043e\u043b\u0435\u0442\u0430\u0442\u044c\u00bb \u2014 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435 \u00ab\u043f\u0440\u0438\u043a\u043e\u0441\u043d\u043e\u0432\u0435\u043d\u0438\u044f\u00bb.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9e\/6r\/13\/9e6r13fvmv5omdnqktzjh5vncys.png\" alt=\"image\"><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-295486","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/295486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=295486"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/295486\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=295486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=295486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=295486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}