There’s two things here, the main topic,

and the meta topic. The main topic is a neat algorithm for solving

many two-dimensional equations. That is, equations with two unknown real numbers,

or perhaps those involving a single unknown which is a complex number. So for example, if you want to find the complex

roots of a polynomial, or some of those million dollar zeros of the Riemann zeta function,

this algorithm will do it for you. This method can be super pretty, since there

is a lot of color involved, and the core underlying idea applies to all sorts of math beyond this

algorithm for solving equations, including a bit of topology, which I’ll talk about

afterwards. But what really makes this worth the 20 minutes

or so of your time is that it illustrates a lesson much more generally useful throughout

math, which is to try to define constructs which compose nicely with each other. You’ll see what I mean by that as the story

progresses. To motivate the case with functions that have

2d inputs and 2d outputs, let’s start off simpler, with functions that just take in

a real number and spit out a real number. If you want to know when one function, f(x),

equals another function, g(x), you might think of this as searching for when the graphs of

these functions intersect. Right? That tells you the input where both functions

have the same output. To take a very simple example, say f(x) is

x2, and g(x) is the constant function 2. In other words, you want to find the square

root of 2. Even if you know almost nothing about finding

square roots, you probably see quickly that 12 is less than 2 and 22 is bigger than 2,

and so you realize “Ah, there’s a solution somewhere between 1 and 2”. And then if you wanted to narrow it down further,

you might try squaring the halfway point, 1.5. This comes out at 2.25, a bit too high, so

now you focus on the region between 1 and 1.5. And so on. You can keep computing at the midpoint and

chopping your search space in half. Another way to think about this, which will

make it easier once we get up to higher dimensions, is to instead focus on the equivalent question

of when the difference between the two functions is 0. We found a region of inputs where this was

negative at one end, and positive at the other. And then we split this region in two, narrowing

our attention to a half whose outermost points again produced varying signs. We were able to keep going forever in this

way, taking each region with varying signs on its border and finding a smaller such region

among its halves, knowing that ultimately, we had to be narrowing in on a point where

we would hit exactly zero. In short, solving equations can always be

framed as finding when a certain function is 0. And to do that, use the we use the heuristic

“If f is positive at one point, and f is negative at another point, then we can find

some place in between where it’s zero (…at least, if everything changes smoothly, with

no sudden jumps)”. The amazing thing I want to show you is how

to extend this kind of thinking to two-dimensional equations; to equations between functions

whose inputs and outputs are both two-dimensional. For example, complex numbers are two-dimensional,

and the tool we develop here is perfect for finding solutions to complex equations. Since we’re going to be discussing 2d functions

so much,, let’s take a brief side-step to consider how we illustrate them. Graphing functions with 2d inputs and 2d outputs

would require 4 dimensions, which won’t work so well in our 3d world on our 2d screens,

but we still have a few good options. One is just to look at at both the input and

output space side-by-side. Each point in the input space moves to a particular

point in the output space, and I can show how moving the input point corresponds to

certain movements in the output space. All the functions we consider will be continuous,

in the sense that small changes in input cause small changes in output, without any sudden

jumps. Another option is to think of the arrow from

the origin of the output space to the output point, and attach a miniature version of that

arrow to the input point. This can give us a sense at a glance for where

a given input point goes, or where many different input points go by drawing a full vector field. (Unfortunately, this can also be a bit cluttered;

here, let me make all these arrows the same size, so we can more easily get a sense of

just the direction of the output at each point.) But perhaps the prettiest way to illustrate

2d functions, and the one we’ll use most in this video, is to associate each point

in the output space with a color. Here, we’ve used different “hues” (that

is, where the color falls along a rainbow or color wheel) to correspond to the direction

away from the origin, while we’ve used darkness or brightness to correspond to distance from

the origin. For example, focusing just on this ray of

outputs, all these points are red, but the ones closer to the origin are a little darker

and the ones further away are a little lighter. And focusing just on this ray of outputs,

all the points are green, and again, closer to the origin we get darker and further away

we get lighter. And so on, we’ve just assigned a color to

each direction, all changing continuously. (The darkness and brightness differences here

can be quite subtle, but for this video all we will care about is the directions of outputs,

and not their magnitudes; the hue, not the brightness. The only important thing about brightness

is just that near the origin, which has no particular direction, our colors will fade

to black.) Now that we’ve decided on colors for each

output, we can visualize 2d functions by coloring each point in the input space based on the

color of the point where it lands in the output space. I like to imagine many points from the input

space hopping over to the output space, which is basically one big color wheel now, getting

painted, and then hopping back to where they came from. This gives a way, just by looking at the input

space, to understand roughly where the function takes each point. For example, this stripe of pink points on

the left tells us that all those points get mapped to the pink direction, the lower left

of the output space. Those three points which are black with lots

of colors around them are the ones that go to zero. Alright, so just like the 1d case, solving

an equation of two-dimensional equations can always be reframed as asking when a certain

function equals 0. So that’s our challenge right now: Create

an algorithm that finds which input points a given 2d function takes to 0. Now, you might point out that if you’re

looking at a color map like this, by seeing these black dots you know where the zeros

of the function are…so, does that count? Well, keep in mind that to create this diagram

we’ve had the computer compute the function at all these pixels on the plane. But part of our goal here is to find a more

efficient algorithm that only requires computing the function on as few points as possible;

only having limited view of the colors of the plane, so to speak. Also, from a more theoretical standpoint,

it’d be nice to have a general construct which gives us conditions for whether or not

a zero even exists inside a given region. Now, in 1-dimension, the main insight was

that if a continuous function is positive at one point, and negative at another, then

somewhere in between it must be 0. How do you extend to two dimensions? You need some analog of talking about signs. Well, one way to think about what signs are

is as directions; positive means pointing right along a number line, and negative means

pointing left along that number line. Two-dimensional quantities also have directions,

although for them, the options are wider: they can point anywhere along a whole circle

of possibilities. So in the same way that for 1d functions,

we were asking whether a given function was positive or negative on the boundary of a

range, which is just two points; for 2d functions we will want to look at the boundary of a

region, which will be some loop, and ask about the direction of the function’s output along

that boundary. For example, we see that on this loop around

this zero, the output goes through every possible direction, all the colors of the rainbow;

red, yellow, green, blue, back to red, and everything in between along the way. But on this loop over here, with no zeros

inside, the output doesn’t go through every color; it only goes through some orangish

colors, but never, say, green or blue. This is promising; it looks a lot like how

things worked in 1d. Maybe, in the same way that if a 1d function

takes both possible signs on the boundary of a 1d region, there’s a zero somewhere

between, we might hypothesize that if a 2d function hits outputs of all possible directions,

all possible colors, on the boundary of a 2d region, somewhere inside that region it

must go to zero. Here, take a moment to really think about

if this should be true, and if so, why. If we start by thinking about a tiny loop

around some input point, we know, since everything is continuous, that our function takes it

to some tiny loop near the corresponding output. But look: most tiny loops of outputs barely

vary in color. If you pick any output point other than zero,

and draw a sufficiently tight loop near it, the loop’s colors will all be about the

same as the color of that point. A tight loop here will be all blue-ish; a

tight loop here will be all yellow-ish, etc. You certainly won’t get every color of the

rainbow. The only point you can tighten loops around

while still going through all the colors of the rainbow is the colorless origin: zero

itself. So it is indeed the case that if you have

loops going through every color of the rainbow, tightening and tightening and narrowing in

on a point, then that point must in fact be a zero. …And so we can set up our 2d equation solver

just like our 1d equation solver: when we find a large region whose border goes through

every color, split it in two, and look at the colors on the boundary on each half. In the example shown here, the border of the

left half doesn’t go through all colors; there are no points that map to the orange

and yellow directions, so we grey this area out as a way of saying we don’t want to

search it further. The right half does go through all colors,

spending a lot of time in the green direction, then passing yellow-orange-red, as well as

blue-violet. Remember, that means points of this boundary

get mapped to outputs of all possible directions, so we’ll explore it further, subdividing

again and checking the boundary colors of each subregion. The boundary of that top right is all green,

so we’ll stop searching there, but the bottom is colorful enough to deserve a subdivision. And just continue like this! Check which subregion has a boundary covering

all colors, meaning points of that boundary get mapped to all possible directions, and

keep chopping those subregions in half like we did in the 1d case. …Except…wait a minute…what happened

here? Neither of those last subdivisions on the

bottom right passes through all colors…so our algorithm stopped without having found

a zero… So being wrong is a regular part of doing

math. We had this hypothesis that led us to a proposed

algorithm, and clearly we were mistaken somewhere. Being good at math is not about being right

the first time, it’s about having the resilience to carefully look back and understand our

mistakes, and how to fix them. The problem here was that we had a region

whose border went through every color, but when we split it down the middle, neither

subregion’s border went through every color. We had no options for where to keep searching

next, breaking our zero-finder. In 1d, this sort of thing never happened:

any time you had an interval whose endpoints had different signs, when you split it, you

knew you were guaranteed to get some sub-interval whose endpoints still had different-signs. Put another way, any time you have two intervals

whose endpoints don’t change sign, when you combine them, you get a bigger interval

whose endpoints don’t change sign. But in 2d, you can take two regions whose

borders don’t contain every color, and combine them into a region whose border DOES contain

every color. And in just this way, our proposed zero-finder

can break down. In fact, you can have a big loop whose border

goes through every color, without there being any zeros inside We weren’t wrong in our claims about tiny

loops; when we said that forever-narrowing loops that go through every color had to be

narrowing in on a zero. But what made a mess for us is that, the “Does

my border go through every color or not?” property doesn’t combine in a nice, predictable

way when you combine regions. But don’t worry! It turns out, we can modify this slightly,

to a more sophisticated property that DOES combine nicely, giving us what we want. Instead of simply asking whether we find every

color at some point along a loop, let’s keep track more carefully of how those colors

change as as we walk along the loop. Let me show what you I mean with some examples. I’ll keep a little color wheel here in the

corner to help us keep track. When colors along a path of inputs move through

the rainbow from red to yellow, or yellow to green, green to blue, or blue to red, the

output is swinging clockwise. On the other hand, when the colors move the

other way through the rainbow, from blue to green, green to yellow, yellow to red, or

red to blue, the output is swinging counterclockwise. So walking along this short path here, the

colors wind a fifth of the way clockwise through the color wheel. And walking along this path here, the colors

wind another fifth of the way clockwise through the color wheel. Of course, this means that if we go through

both paths, one after another, the colors wind a total of two-fifths of a full turn

clockwise. The total amount of winding just adds up;

this is the kind of straightforward combining that will be useful to us. When I say “total amount of winding”,

I want you to imagine an old-fashioned odometer that ticks forward as the arrow spins clockwise,

but ticks backward as the arrow spins counterclockwise. So counterclockwise winding counts as negative

clockwise winding. The output may turn and turn a lot, but if

some of that turning is in opposite directions, it cancels out. For example, if you move forward along a path,

and then move backward along that same path, the total winding number will end up being

zero: the backwards movement will literally “re-wind” through all the previously seen

colors, reversing all the previous winding and returning the odometer to where it started. We can look at winding along loops, too. For example, if we walk around this entire

loop clockwise, the outputs we come across wind around a total of three full turns clockwise:

the colors swung through the rainbow, in ROYGBIV order, from red to red again… and then again…

and again. In the jargon mathematicians use, we say that

along this loop, the total “winding number” is three. In the case of this loop, the winding number

was three. For other loops it could be any other whole

number. Large ones, if the output swings around many

times as the input walks along a loop. Smaller ones, if the output only swings around

once or twice. Or the winding number could even be a negative

integer, if the output loops around counterclockwise as we walk clockwise around the loop. But along any loop, it will be a whole number,

because by the time we return to where we started, we have to get back to the same output

we started with. (Along paths that don’t end back where they

start, we can get fractions of turns, as we saw earlier, but whenever you combine these

into a loop, the total will be a whole number) Incidentally, if a path actually contains

a point where the output is precisely zero, then we can’t define the winding number

along it, since the output has no particular direction anymore. This won’t be a problem for us, though. Our whole goal is to find zeros, so if this

ever comes up, we’ve just lucked out early. Alright, so winding numbers add up nicely

when you combine paths into bigger paths, but what we really want is for winding numbers

around the borders of regions to add up nicely when you combine regions into bigger regions. Do we have this property? Well, take a look! The winding number as we go clockwise around

this region is the sum of the winding numbers from these paths. And the winding as we go clockwise around

this region is the sum of the winding numbers from these paths. When we combine those two regions into this

bigger region, most of those paths become part of the clockwise border of the bigger

region. And as for the parts that don’t? They cancel out; one is just the other in

reverse, the “re-winding” of the other, as we saw before. So winding numbers along borders of regions

add up just the way we want them to! (As a side note, this reasoning about borders

adding up this way comes up a lot in mathematics, and is often called “Stokes’ Theorem”;

those of you who have studied multivariable calculus may recognize it from that context…) And now, finally, with winding numbers in

hand, we can get back to our equation solving goals. The problem with the region we saw earlier

is that even though its border passed through all colors, the winding number was 0. The outputs wound around halfway, through

yellow to red, then started going counterclockwise back through blue and hitting red from the

other direction, then wound clockwise again in such a way that the total winding netted

out to be zero. But if you find any loop with a nonzero winding

number and split it in half, at least one of the halves is guaranteed to have a nonzero

winding number, since things add up nicely. And in this way, we can keep going, narrowing

in further and further on a point… As we narrow in on that point, we’ll be

doing so using tiny loops with nonzero winding number, which must be tiny loops which go

through every color, and therefore, as we discussed before, that point must be a zero. And that’s it! We have now created our 2d equation solver,

and this time, I promise, there are no bugs. “Winding numbers” are precisely the tool

we needed to make this work. We can now solve equations “Where does f(x)

=g(x)?” in 2d just by considering how the difference between f and g winds around. Whenever we have a loop whose winding number

isn’t zero, we can run this algorithm on it, and are guaranteed to find a solution

somewhere within it. And what’s more, just as in 1d, our equation

solver is remarkably efficient; we keep narrowing in to half the size of our region each round,

thus quickly narrowing in on our zeros, and all the while, we only have to check the value

of the function along points of these loops, rather than checking it on all the many, many

points inside. So in some sense the overall “work” we

do is proportional only to our search space’s perimeter, not its area. Which is amazing! It is weirdly mesmerizing to watch this in

action; just giving it some function and letting search for zeros. Like I said before, complex numbers are 2d,

so we can apply this algorithm to equations between functions from complex numbers to

complex numbers. For example, here’s our algorithm finding

all the zeros of the function x5 – x – 1 over the complex numbers, starting by considering

a very large region around the origin. Each time you find a loop with nonzero winding

number, you split it in half, and figure out the winding numbers of the two smaller loops. Either one or both of the smaller loops will

have nonzero winding number; when you see this, you know there is a zero to be found

in that loop, and so you keep going in the same way in that smaller search space. As for loops whose winding number is zero,

you don’t explore those further inside. (We also stop exploring a region when we stumble

directly across a zero point inside it, right on the nose, as happened once on the right

half here; these rare occurrences interfere with our ability to compute winding numbers,

but hey, we get a zero!). And letting our equation solver continue in

this same way, it eventually converges on lots of zeros of this polynomial. Incidentally, it’s no coincidence that the

overall winding number came out to 5 in this example. With complex numbers, the operation xn directly

corresponds to winding around n times as we loop around the origin, and for large enough

inputs, every term in a polynomial other than the leading term becomes insignificant in

comparison. So any complex polynomial of degree n has

a winding number of n around a large enough loop. In this way, our winding number technology

actually guarantees us that every complex polynomial has a zero; mathematicians call

this the Fundamental Theorem of Algebra. Having an algorithm for finding numerical

solutions to equations like this is extremely practical, but I should say that we’ve left

out a few details on how you’d implement it. For example, to know how frequently you should

sample points, you’d want to know how quickly the direction of the output changes, we’ve

left some more details in the description. But the fundamental theorem of algebra is

a good example of how these winding numbers are also quite useful on a theoretical level,

guaranteeing the existence of a zero for a broad class of functions under suitable conditions. We’ll see a few more amazing applications

of this in a follow-up video, including correcting a mistake from an old 3blue1brown video! (Which one? Rewatch all of our videos, everything we’ve

ever made, and see if you can spot the error first!) The primary author of this video is one of

the newest 3blue1brown team members, Sridhar Ramesh, and with the last video on the Basel

problem you’ve already seen the work of the other new addition Ben Hambrecht. I did a little Q&A session with both of them,

which you can find on the Patreon page, and where you can have fun laughing at how bad

we are with live action filming and lighting. Sridhar and Ben are both incredibly smart

and talented, and additions like these will be crucial for covering all the topics I’d

like to with this channel. The fact is, a lot of time and care goes into

each of these videos. There’s taking the time to explore which

topics have are most likely to deepen people’s relationship with math; and even once you

have that, any of you who write know how many iterations can go into putting together clear

and engaging storyline for a given topic. Obviously creating the visuals to best clarify

an idea in math takes serious time, and quite often involves writing the more general code

for fundamentally different types of visuals. What’s neat is that unlike similar products,

such as movies or college courses, we’re able to offer these stories and lessons for

free. What makes that possible is that a little

less than half a percent of subscribers to this channel have decided this is content

worth paying for, in the form of Patreon pledges, which is amazing! So thank you. And if you’re not in a position to support,

just, don’t worry about it, that’s exactly why the content is free. Just sit back enjoy, and if you really want

to help out, share it with others.

What about four zeroes in a square pattern? Then the winding number around the whole large border is zero, but THERE ARE SOLUTIONS! THERE IS A BUG!

Hello!

Thank you for the informative videos.

Please tell me what program you use for visualization?

Try watching at 0.5 x

top dollar value..

If winding number is greater than 1 and we find a zero by stepping on it does it rule out whole region?

This is insane. Hell yeah.

someones been gettin inspired by w0rthy i see

It's important to know that this algorithm has the same problem as its linear counterpart.

If there are an even number of zeroes inside the checked edges, the algorithm doesn't know if there are zeroes inside or not.

For that reason, and because this algorithm relies on random initial inputs, it's possible for this algorithm to fail to find any zeroes at all even if there are zeroes in the equation it's checking.

Hot pink is my favorite rainbow color

I actually felt unsatisfied when the "to be continued" popped up.

Brought to me… By me!

I'm welcome.

WTF dude i'm color blind….

LAPLACE TRANSFORM MANNNNNNNNN

Why does this seem familiar to the famous fibonacci series spiral. If there is any connection, can anyone point it out? I only seem to connect calculating zeros or perhaps maxima/minima using this algorithm and the fibonacci series representing a sort of an optimum often found in nature.

does the audio bug out and go muffeled around 8:05

Isn't it binary search?

That bit around 4:10 gave me some intuition about vector fields, thank you so much. That has been one of the most difficult concepts for me to grasp while reading up for my physics studies that start later this year.

i got a 5 hour long ad that is just a catchy song

OMG!!! Thank you!!! This video was truly along the lines of what I've been considering the past couple days. I've been a supporter and will be again assuming my escrow closes and I finally have a home to go home to.

I've been considering the ortho normal of a mobius strip and recognized it creates a sphere. Just an observation and idea for a possible future vedio.

I love experimental physics because I like evidence. But philosophy, logic and mathematics are keys to reality.

Your clips on the Quartions is awsome. Sincerely I can thank you enough for the education. I've made half a dozen discoveries in physics, mathematics, geometry and topology. My major area of study is in magnetic field physics. Mathologer is another favorite of mine. You both teach me a lot.

Thanks again,

William G Russell

Bakersfield California

15:19 it's rewind time

I love how he was talking about how this function works until it finds a zero… hm… Well. What happened here?

I think I found another flaw in your equation solver. If a winding number for a particular region is undefined, treat it as though it had a non-zero winding number, or you will miss some of the roots you are looking for, as was the case with z⁵ – z – 1 = 0.

Is there a region with winding number 0 which can be splitted into two regions with winding numbers +1 and -1? If so, the algorith cannot be used, right?

this channel is so classy

videos are usually very good but for this one you had not prepared properly with mistakes which unfortunately are confusing.

I remember winding numbers from the video about turning a sphere inside out

Wouldn't this also find points at infinity? Or would including those disqualify a function from being continuous?

Also I wonder if anyone's had luck deriving complex polynomials from a vector image outline, similar to Mathologer's epicycles, as a compression method?

Couldn't the point also be an infinite pole instead of a zero? Or would an infinite pole simply get super bright, then dim again while remaining of the appropriate hue?

I have recently learnt index theory in dynamical systems. It is awesome that it also can be used to evaluate the existence of limit cycles.

which function was used?

Here’s a pi approximation

2+e – the golden ratio

Vector fields.

This is the first explanation of color graphs that actually made any sense to me.

Beautiful! Whenever topology or geometry shows up in unexpected places, it's so satisfying. Personally the colors confused me and just using vector fields (arrows) on the boundary would have driven home the point of winding number quicker, but this is a wonderful concept for a video! Hopefully this excites me people about mathematics.

Hey your style of searching is similar to binary search

There's still the problem of a boundary that has total winding of 0 but contains regions with winding of n and -n

"To be continued"…. patiently waiting for a video that explains a practical method for comparing two 8th order polynomials. Thanks for the info.

It's rewind time

No idea this was about the fundamental theorem of algebra! I understand it way better than the first time i heard it defined wow thanks

I’ve used this kind of thing for figuring out UV mapping on 3D models

At 13:50, the zero has a winding number of 2. I read in the comments that a zero has a winding number of either -1 or 1, hence explaining that you can find an even number of zeroes when the winding number is 0. Does this hold only for complex numbers, as would this not imply that a zero with a winding number of two can't exist (its two zeroes close together for example)? I can't see intuitively why a zero must have a winding number of 1 or -1. And if not, then a zero winding number can imply an odd number of zeroes too.

First of all, your algorithm missed two black spots in the graph.

Second: We know that if the winding number along a given shape is positive, it means there's a solution to the equation inside of it. But what if the winding number is negative?

I'm crying 😂.

I'm so stupid.

You also missed explaining that if you divide a region in half you don't need to compute the winding values for both sides. Because you already know the winding value of the whole region, all you need to do is examine one half of the subregion and you automatically know the winding numbers for BOTH subregions: x+y = w. If w is 5 and x is 3, then w

mustbe 2. If w is 2 and x is 2, then ymustbe 0. I'm sure you could do this simply by looking at only the winding value of the boundary line, but I'm not 100% sure about that.the thumbnail looks like rainbow gui of Minecraft hacked client

Someone needs to code an interactive version!

Great video! Are these winding numbers essentially lgorithimic spirals? Also I have an interesting idea about using polygons and a lattice to solve something like this.

3Blue1Yellow

Amazing! Are there ways to generalize this to higher dimensions?

what would happen if there were two zeroes?

I nearly left the video looking for the next part when there was none

At 11:06 I saw the problem incoming, and I wondered how you would tackle it. At 11:22, you did not disappoint.

Beautiful.

the opening scene where you said we can find a root between two inputs where the outputs have varying signs hit me with nostalgia because that's the method I used to make my first root finding program 😛

What does it look like to have a non-integer winding number? Would not that mean that there was no zero there because it would not pass through all of the colors?

@3Blue1Brown Do you use python at 23:46 for your magnificient animations? Are there additional libraries needed?

i often feel like skipping throught videos that are longer than 20 mins but i never skipped throght a 3b1b video once its more like this could go on for 20 more mins 🙂 keep up the amazing work

"Great. Now do it for three variables. And four. What about five? Six? And while you're at it, do it for n variables."

Question is: WHO asks this? A fellow mathematician? One's own hunger for knowing all, defying Gödel's incompletedness theorems?

Or maybe… Is it the problem ITSELF that is calling out, crying to be solved?

Whenever I want to sleep. I play your video. It's so soothing.

We extended such idea of dualizing the dataset and published a paper on a visualization conference. We didn't find this video when we did the project. But when I find it, I like very much. It is very interesting. If you want, you could also read our paper: visualization of equivalence in 2d bivariate fields.

Thank you for such great video.

1. Can this be generalized to n dimensions?

2. In reality, we can't evaluate the function at the infinitely many points on a curve. Maybe we would evaluate only at a "grid" of points on the line and use derivatives to judge the risk of missing an unexpected winding in between two grid points? (e.g. if it seems that the curve winds by 0.1 between two grid points, it is possible that it actually winds by 1.1 instead.)

3B1Y

Thanks! only halfway through the video and I realise this technique could be used to compute limits to high precision.

newton's method I see

|x|/x=0

Boom roasted

3Blue1Brown is not a human. Only supernatural being or a God can make such things.

if only this was standard education

he is such a great educator

Would it not be more efficent to only check one of the to halfs and only checking half of the other if the winding number was 0 or less then before, this way you dont have to check everything while still finding all zeros, or am I missing something here?

What happens if the loop encases two zero points? surely this means the winding point wouldn't be an integer so the algorithm would ignore it, but there are two solutions within the loop… just me thinking out loud as this is a year old video and i doubt i'll get a responce

Ha i knew your first hypothesis about the 2d 0 finding algorithm was incorrect

For those of us who don't have exorbitant amounts of time to waste on a wild goose chase, what exactly is the error?

I'm pretty sure that "contains a zero in a region" <=> "takes all colors on a contour around it" corresponds to the Cauchy integral formula (integral around simple pole vs no pole)! Very cool.

I lost you at input

and function

I'm a child with no idea what the frick you're talking about but I'm interested anyway

Tbh this video is a little slow. I knew the problem with your first hypothesis about a minute after you had introduced it. But you went on with it for 6 minutes or so until i could get confirmation that indeed i could let go of that hypothesis without possibly skipping important insight. Great for killing time, but not so great for efficient learning.

This video had my mind blown. I could never had imagined that mathematics could be so beautiful (and colourful)! I started watching your videos from a year ago, and I must say that my perspective on math has drastically changed, thanks to you. Being a junior college student, comprehending your videos is difficult for me, but nonetheless, I enjoy learning the ways in which mathematics can surprise me and make me think harder than I had ever imagined.

Hats Off for youKeep enlightening us!For those who are interested, the Berezinski Kosterlitz Thouless theory, whose auhors have recently received the Nobel prize in physics, has many similarities with the topic of this video

What happens if you encircle two zeros? Winding will be zero, wouldn't it?

watches the video

Laughs in colorblindness

I just love how he explains these concepts that are so complicated, but you still know it can’t be explained better

This was a joy to watch. I took all of complex calculus without understanding what I was doing… now

thisis what math is all about!!That thumbnail would make a sexy desktop background

Why does your algorithm check both subdivisions when checking one will automatically yield the winding number of the other?

Does this type of color plot for complex functions have name ? And is the any software that already have this plot functionality ?

"what really makes this worth 20 minutes or so of your time"

@3Blue1Brown, you really don't need to justify our watching these videos

Absoooooolutelyyyyyy love this channel. Will be contributing soon via patreon. Thanks a lot for your free content.

Isn't it possible to splits an area with zero winding number into two area which have n and -n winding number for each?

This is like being drunk at 11 in the morning

11:44 No! If it's wrong, then you should be sad forever! Just give up! Even if you got it right the VERY next time, you still failed, so you're still sad anyway, and trying again just gives you an opportunity to fail even MORE times!

This seems related to gradient and curl 🤔

But…. He's not Brown, he's YELLOW! 😠

21:08 hang on if the winding number is 0 then there cant be a solution inside. Beacause we assumed that the function was continuous.

Please do statistics and probablity

5:40 If I look at the screen from different angles, the palette changes a bit but more than that, I'm red-green color-dimmed, I see them, just not as bright. Looking straight-on, I don't see much red there. But with one eye, pressing gently at the bottom of my eyeball through the eyelid, a red region pops out, suddenly there. Now all I need is a pressure-insert in my eye socket to see color like most of you–uhhh, ok look, the light bulb wasn't invented on the first try either 🙂

I came here to find a new way to solve equations and ended up finding an intuitive explanation for the fundamental theorem of algebra.

Best 24:44 of my life

The conclusion here sounds something like the Holographic Principle of the universe. All the information is contained at the perimeter (surface), and interior to the surface can be ignored.

This is the first and the only 3b1B video I couldn't enjoy.

22:11 ah that is why they did not prove it in linear algebra 1 🙂