Finding Strange Attractors

  Рет қаралды 12,702

very much tom

very much tom

Күн бұрын

Пікірлер: 57
@dmitry-diehl
@dmitry-diehl Жыл бұрын
Thank you for the video. I tried to find information on generating strange attractors six months ago, but couldn't. Thank you KZbin algorithms for bringing me here
@verymuchtom
@verymuchtom Жыл бұрын
Thanks dude! Yeah the KZbin algorithm truly works in mysterious ways sometimes 😂
@Pingu_astrocat21
@Pingu_astrocat21 5 ай бұрын
Your channel is so awesome!! Learning about all this :) Thank you
@negativebudgetproductions4908
@negativebudgetproductions4908 Жыл бұрын
Very cool video! I have played around with strange attractors a long time ago (question 2872160 on math stackexchange) with a different function having only 4 parameters. As I wanted to make a Lyapunov map of the entire parameter space it was a bit annoying to have so many parameters, and this function here has 12 parameters now, so I guess you can only take very limited slices of the parameter space if you want to make a Lyapunov map. It would be interesting to see if this system here exhibits similar behaviour to the one I looked at, that is are there regions in the 2D plane that converge to different parts of the attractor. It can happen that a point can either land in a chaotic region and stay within it or land in a convergent cycle region and stay there, there can be multiple of these behaviours coexisting. (This is another added difficulty of drawing the Lyapunov map, it may look a bit different depending on if you use a constant or a random starting point.) A crude way to make a bifurcation diagram for these is to render the fractal instead of the x,y plane instead in the x,time or y,time plane and overlay the trajectory of many starting points. Another thing I noticed is that your map contains the mandelbrot set, in a way. If a3 = 1 and a5 = -1 and b4 = 2 and the rest zero , then a1 becomes the real component of c in the mandelbrot set and b1 the imaginary component. The equation then is equivalent to the mandelbrot set which can easily be seen by setting z = a + ib and multiplying out the equation, of course. In summary a very nice video!
@verymuchtom
@verymuchtom Жыл бұрын
Thank you for that comment, I really appreciate it! :) Making a Lyapunov map is definietly something that has been on my mind as well for some time now. A few months ago, I've played a bit with those, after watching the amazing video by Desdenova on the topic (coinicidentally my fractals, using sine functions as well, looked very similar to the ones in your post). So that's something that I want to tackle again when I find the time to do so, although maybe on a set of equations with less parameters, perhaps the Danca fractal :D Also that the mandelbrot set is included is definetly a cool bonus, i haven't even thought about that.
@Ucodia
@Ucodia 10 ай бұрын
What a fantastic video and exploration. I was myself wondering for a while how does one can discover new chaotic attractor systems and you sure have answered this. Thanks to the reference to Paul Bourke's website I was able to create my own JavaScript implementation and I am having so much fun exploring it :) I wish to see more of videos like this one, thank you!
@verymuchtom
@verymuchtom 10 ай бұрын
Thank you for the kind message! Yeah i’ve also spend a weekend or two exploring all of the different fractals presented on his website, it’s an amazing resource!
@magran17
@magran17 Жыл бұрын
Instant new subscriber! Great work..
@verymuchtom
@verymuchtom Жыл бұрын
thank you so much, i’m glad you liked the video :)
@cybermonkmusic
@cybermonkmusic Жыл бұрын
hmm this might help me find the long side of my blanket
@captainchicky3744
@captainchicky3744 Жыл бұрын
Very nicely made!
@verymuchtom
@verymuchtom Жыл бұрын
Thank you! :)
@ninjajakee
@ninjajakee Жыл бұрын
Such a cool video, would love to see more! I‘ve been experimenting with particle simulations recently and have been wondering if there‘s ways to find a mathematic formula for the path of a particle and this seems to be quiet similar!
@Andres186000
@Andres186000 Жыл бұрын
In general there is no so-called "closed form solution" to particle trajectories/paths, that is to say that you can't write some formula that you evaluate for whatever time you want to know the location of the particle at and get back such a location. There are however methods to approximate the location of particles experiencing forces, and those are called ODE (ordinary differential equation) solvers or partial differential equation solvers for more complicated systems. It can actually be quite easy to get started making such simulations if you are comfortable coding and using packages like scipy for python, using the ode45 or ode15s functions in MATLAB if you have access to MATLAB, or DifferentialEquations.jl if you are fine with Julia.
@loganhoward2398
@loganhoward2398 Жыл бұрын
Really cool video and great visulisations, by any chance do you have any of the values for the equations that result in the caotic systems, as aposed to ones that converge/go to infinity or repeat?
@verymuchtom
@verymuchtom Жыл бұрын
Hi, I'm glad you liked the video! :) Here's a set of values that will result in chaotic behavior, the first array contains the a values, the second the b values [1.06523, 0.75537, -1.58331, -0.91507, 0.78673, 1.06912] [0.01703, -1.15372, 0.32726, -0.38913, 0.02824, 1.20794]
@shadamethyst1258
@shadamethyst1258 Жыл бұрын
I made a little attractor visualization tools a few weeks ago, I'll make sure to add this as a feature :p I wonder how the lyapunov term can be calculated for continuous attractors. Would it be the integral of the log of the derivative of the position difference between two arbitrary points evolving on the attractor?
@verymuchtom
@verymuchtom Жыл бұрын
Oh wow, that sounds really cool, please let me know when you've added it, I'd love to see the results :) For continuous systems I'm honestly not certain how the lyapunov exponent would be calculated. I searched for "time continuous lyapunov exponent" and got some papers but they are a bit beyond my understanding :D I'd be way cruder and just compare start with two almost identical points and just measure their distance after e.g. every millisecond.
@ivanrodionov9724
@ivanrodionov9724 Жыл бұрын
Very cool!
@HouseMusicLover001
@HouseMusicLover001 Жыл бұрын
The oscillation/jumping between states reminds me of quantum spin
@JoeCoup1
@JoeCoup1 2 ай бұрын
This is beautiful! What did you use to make the visuals?
@verymuchtom
@verymuchtom 2 ай бұрын
Thank you! For the visuals I wrote a bit of code in the programming language Julia with which creates the images. You can play with it yourself downloading the files from here drive.google.com/drive/folders/12HifiiRnZ0p6QYpO8BblNdb1r4AlLK0W?usp=sharing The animations were created much the same way, exporting them as images one by one and importing that as an image sequence into davinci resolve.
@JoeCoup1
@JoeCoup1 2 ай бұрын
@@verymuchtom Damn! That's crazy I looked at the files and was expecting a lot more code than there is. At first I thought you were using manim but I don't think you can make manim do what you did. Julia looks cool, I might have to give it a shot some day, crazy you can get those images with just that code and a library
@kayatreichler65
@kayatreichler65 3 ай бұрын
Man I love math
@yuli5524
@yuli5524 Жыл бұрын
Super new to higher math concepts but I've been exploring in my free time. What did you use to render your models, and how much computational time does a render take?
@verymuchtom
@verymuchtom Жыл бұрын
Hi dude! To render my models, so those showing the distances and so on, I am using Blender (free program). The render times for the scenes in the video were relatively short because there weren’t that many elements. The animations had around 480 frames each and took around a minute or two to render on the GPU in 4k and using the Eevee render engine :)
@CEOofGameDev
@CEOofGameDev 10 ай бұрын
I wonder if one could figure out if there is an equation for determining all the possible sets of constants that result in chaotic behavior for that equation. If there is, I'm willing to bet it has something to do with the golden ratio.
@verymuchtom
@verymuchtom 10 ай бұрын
I thought about that a little bit as well, the problem can be limited to only varying one parameter and keeping the others constant. In that case it should be very similar to a bifurcation diagram but with an x,y and r component. In that case the relationship between when the system is chaotic vs when not should be closely related to the Feigenbaum constant. For all parameters.. honestly who knows 😅
@polymorphic59
@polymorphic59 Жыл бұрын
Will you post some of the colored graphs as images or prints?
@verymuchtom
@verymuchtom Жыл бұрын
Hi, sure thing :) You can download the images in full quality here: drive.google.com/drive/folders/12HifiiRnZ0p6QYpO8BblNdb1r4AlLK0W?usp=sharing I also have an Inprnt store if you'd like to buy a print, but I also have no problem with you just printing it yourself www.inprnt.com/gallery/nottom/
@halihammer
@halihammer Жыл бұрын
Hey, very cool video! I appreciate the short but concise explanation. I wonder if you have experience with languages like Matlab or Python and if you can tell me if it is worth switching to Julia for faster and more efficient code?
@verymuchtom
@verymuchtom Жыл бұрын
Hi, glad you enjoyed the video :) I use both Python and Julia in my day to day work, but I learned Julia first and Python second, which might sway my judgement, Matlab I never really got into, so I can't really say much about that. In my opinion Julia is the nicer programming language, specifically for my usecases, which are data analysis and well stuff like done in this video. Whenever large amounts of calcuations have to be performed the substancial difference in efficiency really adds up, especially because Julia is incredibly simple to multithread, giving an extra performance boost (I know stuff like Numba exists for Python which will also increase performance but I never really looked into it). But in fairness in a lot of usecases the performance difference is not even noticable. More over you can use a lot of Python libraries in Julia via the PyCall and PyPlot packages. What also has to be said is that the syntax of Julia and Python are incredibly similar, so if you're already familiar with Python I bet you'll get the hang of Julia quickly and could just give it a try. A few things are different, like indexing starting with 1 and the syntax for array operations but other than that it feels like almost the same language. Really the only reason for me to even learn Python is that it's the standard and my colleagues wanted me to write in a language that they can read, for when I inevitably needed their help debugging my code :D
@halihammer
@halihammer Жыл бұрын
@@verymuchtom Thx for the quick answer! I will definitely look into Julia in the near future, as I especially need the fast calculation speed.
@raiinaii
@raiinaii Жыл бұрын
Cool video
@lucianchauvin8587
@lucianchauvin8587 Жыл бұрын
What are you using to create these visualizations?
@lucianchauvin8587
@lucianchauvin8587 Жыл бұрын
Specifically the coloring
@lucianchauvin8587
@lucianchauvin8587 Жыл бұрын
Like when it curves a lot do you just increase the brightness of the color?
@verymuchtom
@verymuchtom Жыл бұрын
There a different ways of coloring, what is used in most of these visualisations is false coloring using one color for high intensity regions e.g. yellow or orange and another color for low intensity regions e.g. blue, this can be done in DaVinci resolve (free to use software) for animations or GIMP (also free) for images. The output images of produced by the code in that case are grayscale. Alternatively you can take the distance between to subsequent points as the color value. To implement that you need to produce an RGB image to begin with. I work in Julia, using the Image.jl library. In that the mapping I use looks as follows: RGB.(sqrt.(canvas/findmax(canvas)[1]),0.,tanh.(canvas2/findmax(canvas2)[1])/3) canvas is the intensity matrix, and canvas2 is the avergage speeds at those points in the matrix. The matrices themselves are discrete representations of the xy-plane.
@lucianchauvin8587
@lucianchauvin8587 Жыл бұрын
@@verymuchtom Ah okay thank you. Really amazing video man. I've done a bunch of stuff with strange attractors and made a whole visualizer on my website for them. With mine I graphed the solution curves of the SA that are described with autonomous differential equations rather than iterative map. This looks better though cause you dont just get a line haha.
@javierguallart8250
@javierguallart8250 Жыл бұрын
Really nice video, congratulations! Would you mind sharing your implementation? I mean the code you show on 4:24.
@verymuchtom
@verymuchtom Жыл бұрын
Thanks dude! You can download the Julia code from this Google Drive folder: drive.google.com/drive/folders/12HifiiRnZ0p6QYpO8BblNdb1r4AlLK0W?usp=sharing There are two jl files one for randomly searching for good parameters and a second one for creating animations from an input set of parameters :) Just keep in mind the code isn't what one might call optimized :D
@javierguallart8250
@javierguallart8250 Жыл бұрын
@@verymuchtom thank you very much! :D
@polymorphic59
@polymorphic59 Жыл бұрын
Would love to have 4:46 as a wallpaper lol
@philipm3173
@philipm3173 11 ай бұрын
Brilliant! Can you share the function for the one displayed at 4:47?
@verymuchtom
@verymuchtom 11 ай бұрын
Hi, I’d love to, but sadly my bookkeeping is horrible and I did not save the values for the parameters anywhere :(
@philipm3173
@philipm3173 10 ай бұрын
@@verymuchtom alas
@Hexer1985
@Hexer1985 Жыл бұрын
Das allgemeine Prinzip dahinter ist soweit klar. Aber ich wüsste nicht mal, in welcher Programmiersprache man so etwas schreiben könnte oder müsste, damit das so aussieht.
@verymuchtom
@verymuchtom Жыл бұрын
Hi, also ich hab meinen Code in Julia geschrieben, einfach weil ich mit der Programmiersprache am meisten vertraut bin. Aber an sich sollte so ziemlich jede Sprache, die in der Lage ist ein Bild zu speichern einen äquivalentes Resultat liefern können. Letztendlich sind die eigentlichen mathematischen Operationen, die der Computer ausführen muss, nicht sonderlich komplex :)
@noNdeSCRIpt732
@noNdeSCRIpt732 Ай бұрын
Thoughts are a product of arriving at/with an 'attractor' rather than the assumed authorization of the ego/self; Meaning, origination is informed, in large part, by the specificity of individuated 'objects' attended to in congruence and in cohesion with the transcendent 'object' that is self, balanced in an ever changing narrative, that iz being extracted or pulled from, rather than deliberated or pushed into existence. In the loop everything always will, what.. be. Free will is choice, but not anything like the biblical conception. We can only attend to whT is 'available' to us in each moment and what is spirited available, is a fluctuating set, per the unique quantization of experience afforded the individual. Did thatt sound smart? I thought it did.
@Blahblahdust
@Blahblahdust 8 ай бұрын
Is there anywhere online I can download your code from? I'd love to play around with it myself :).
@verymuchtom
@verymuchtom 8 ай бұрын
Yeah, the code and the images are available on my Google drive: drive.google.com/drive/folders/12HifiiRnZ0p6QYpO8BblNdb1r4AlLK0W?usp=sharing Have fun tinkering around :)
@Blahblahdust
@Blahblahdust 8 ай бұрын
@@verymuchtom Hey thanks a lot this is really cool! I'm new to Julia and was having a hard time getting any animations done. So I'm curious to see how you did it. Thanks so much for uploading this video and sharing your code! :D
@verymuchtom
@verymuchtom 5 ай бұрын
Late answer, sorry bout that 😅 In case that’s still an open question: The way I did it in this code is certainly not the ideal way, in most cases you’d probably want to use an already existing graphics package like makie or plots. They come with their own quite capable animation suite which you can read up on in their documentation (i know they might be a bit overwhelming for beginners but don’t thread, it takes some practice). In my code I wrote up everything from scratch using a package that can convert matrices to images, mainly for the challenge, fun but maybe not ideal
@fredolivier1431
@fredolivier1431 Жыл бұрын
this is an incredible video. amazing animations and mathematical explanation. Could be useful for Neural Network Profiling...
@verymuchtom
@verymuchtom Жыл бұрын
Hey dude thank you so much for the kind words, I’m glad you enjoyed the video! :) Gotta be honest I don’t know much about neural networks but it’s cool to know how many different fields of applications for one topic exist!
@FunkyTurtle
@FunkyTurtle Жыл бұрын
can you detail a bit further? i know a bit about NNs but can't see the relation here
@fredolivier1431
@fredolivier1431 Жыл бұрын
@@FunkyTurtle the possible avenues for dealing with the interpretability problem arising large neural networks are few. The systems as you know are not deterministic. How can we describe the character of a neural network? The patterns it's finding in deeper layers are so difficult - they cant really be explained. But the system is not fully chaotic there might be a possibility of reaching some degree of explicability. We just need a way to think about them - not as truly understandable systems nor as chaos. Gary Wang does a good video on this in a podcast. I think there is a parallel between models/networks that are stable and systems that Dont explode as of the video - although we cannot give much 'semantic meaning' to mathematical attractors, there are famous ones and they exist, perhaps we could also use them to describe deeply complex systems like NN's at a 'profiling level'. Some networks might display more evidence of one attractor on a given task. TLDR: NNs can function like the videos 'changing parameters over time' - Although the networks function on higher dimensions, we want to, like in the video, map a non deterministic system that has an attractor. In the case of NN's the attractor is being correct. In the case of the video the attractor is the changing variable.
Physics 2212 Lab 5
5:17
Jack Hogan
Рет қаралды 24
What does a complex function look like? #SoME3
20:38
mathematimpa
Рет қаралды 125 М.
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 60 МЛН
Why no RONALDO?! 🤔⚽️
00:28
Celine Dept
Рет қаралды 84 МЛН
Chaos Theory: the language of (in)stability
12:37
Gonkee
Рет қаралды 572 М.
Finding strange attractors - Part 1
21:17
Coding Cassowary
Рет қаралды 4,9 М.
The 4D Julia Set
42:09
very much tom
Рет қаралды 27 М.
Chaos: The Science of the Butterfly Effect
12:51
Veritasium
Рет қаралды 7 МЛН
The Mandelbrot Fractals Weird Cousins
10:37
very much tom
Рет қаралды 1,4 М.
Rethinking the real line #SoME3
14:54
Proof of Concept
Рет қаралды 99 М.
Is the Logistic Map hiding in the Mandelbrot Set? | #SoME3
12:14
Grains of Sand
31:16
very much tom
Рет қаралды 502
Program a Chaotic Strange Attractor
20:55
Programming Chaos
Рет қаралды 1 М.
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 60 МЛН