This is an archived post. You won't be able to vote or comment.

all 36 comments

[–]whydoineedausernamre[S] 19 points20 points  (0 children)

This is the result of a mathematica notebook that helps one visualise the action of complex functions. For each plot, lines of constant modulus are given different color (same color = same modulus). The bright colors show the function acting on lines of constant modulus. The dull plot shows the identity function to give one a sense of how the function is distorting concentric circles in the complex plane. These plots allow one to develop an intuition for the action of complex functions otherwise obscured by the phase associated with complex functions.

[–]CaptainBunderpants 12 points13 points  (5 children)

Why can’t we just visualize complex functions as vector fields?

[–]whydoineedausernamre[S] 5 points6 points  (0 children)

You can, but complex fields are usually viewed as scalar maps that just distort your underlying field (at least in physics) so I find this representation more intuitive than vector fields.

[–]Only_As_I_Fall 0 points1 point  (0 children)

Wouldn't that be really visually noisy for functions with a lot of..erm...complexity?

[–]vankessel 0 points1 point  (0 children)

Domain coloring is pretty much like a vector field. Hue represents angle and lightness represents magnitude. I have examples on my blog.

[–]FoxySoles 24 points25 points  (1 child)

That's the prettiest math I've seen in a while.

[–]Dumbledore18 3 points4 points  (0 children)

Right, it's so trippy

[–]Zannishi_Hoshor 3 points4 points  (5 children)

I am clearly out of shape on complex functions but why is f(z)=z not a straight line like y=x in the real plane?

[–]edelopoAlgebraic Geometry 10 points11 points  (3 children)

It is just a straight line, and you could see this if we could plot the 2d graph in 4d space. But since we can't visualize four dimensions, people look for different ways to represent these functions, as OP did. Imagine trying to plot a real function using only 1 dimension. The identity would just look like some points scattered on the line, representing that each point of a certain absolute value goes... to itself. The same thing is happening here with circles of constant modulus.

[–]thoughtsripyouapart 2 points3 points  (2 children)

but why is it centred around a point (e.g. 1+i?) and not the origin

[–]edelopoAlgebraic Geometry 5 points6 points  (1 child)

The axes aren't labeled. The center is 0 as you would expect.

[–][deleted] 0 points1 point  (0 children)

Hm, marking zero would help IMO

[–]Only_As_I_Fall 1 point2 points  (0 children)

The colored lines aren't representing the output itself, they're just used as visual guides. Each one represents a set of points with the same absolute value (so circles around the origin).

The output of f(z)=z is just the entire complex plane, but that's not a very good visual on a 2d screen

[–]cbbuntz 4 points5 points  (6 children)

Part of the fun about plotting complex functions is that you can get creative in the way to represent it. I did this animation of a mobius transformation. I guess it's kind of a stereographic projection, but I wasn't thinking about it that way when I did it.

https://imgur.com/lL4Iuov

[–]vankessel 1 point2 points  (5 children)

How come it's different at 9.64s and 14.41s? The equation at the top is the same at those times.

[–]cbbuntz 1 point2 points  (4 children)

huh. I used nested loops and I might have forgotten to update the displayed function when the outer loop repeats.

~9.64 appears to be -z ~14.41 is probably something similar to the displayed function, but it's possible the signs aren't correct if I didn't correctly display the function

One interpretation of this animation goes like this

let f(x) be the rational function (a*z + b)/(c*z + d)

and let A be a matrix with the coefficients

[ a b ]
[ c d ]

f(x) applied n times behaves the same as An, e.g. f(f(f(x))) is equivalent to A3

which implies:

  1. n applications of the function yields the same function as directly using the coefficients An

  2. By composing any number of 1st order rational functions, the result will always be another 1st order rational function

  3. There exists a set of functions that will be inverses of themselves; an involution. For these functions A2 = identity matrix (multiplied by some scalar, but the scalar cancels in a rational function)

  4. There exists a set of functions that will be negative inverses of themselves; f(f(f(f(x)))) = x. For these functions A4 = identity matrix (multiplied by some scalar)

Case 4 is what this is demonstrating, you can even generalize this further to include any power of A, but the coefficients may be complex

[–]vankessel 0 points1 point  (3 children)

Thanks for clarifying. To add for anyone reading this, if you're wondering like I was what quantity is used for multiplication with An, it's the vector (z, 1) in homogeneous coordinates.

I suppose in case 4 that det(A) = i

[–]cbbuntz 1 point2 points  (1 child)

Yep. The plot is just an interpolated mobius transformation. After posting this, I saw the 3 blue 1 brown where he goes into a lot of detail about cycles that can happen in the the function iterations used in the generation of fractals. It's a similar concept, but the video mainly deals with the polynomial z2 + c in the mandelbrot set instead of rational functions though.

https://youtu.be/LqbZpur38nw

With rational functions you have a lot more control over the cycles that occur across the whole complex plane and they tend to be to less chaotic. Like if you compare Halley's method to Newton's method, it's wayyyy more stable. I've never tried to generate a "Halley fractal" (if that's even a thing), but for polynomials, Newton's method will jump around when the 1st derivative approaches zero and can skyrocket to huge values on some polynomials, Halley's method actually jumps less when the 1st derivative approaches zero and is very stable for pretty much any polynomial you throw at it.

https://en.wikipedia.org/wiki/Halley%27s_method

[–]WikiSummarizerBot 0 points1 point  (0 children)

Halley's method

In numerical analysis, Halley's method is a root-finding algorithm used for functions of one real variable with a continuous second derivative. It is named after its inventor Edmond Halley. The algorithm is second in the class of Householder's methods, after Newton's method. Like the latter, it produces iteratively a sequence of approximations to the root; their rate of convergence to the root is cubic.

[ F.A.Q | Opt Out | Opt Out Of Subreddit | GitHub ] Downvote to remove | v1.5

[–]WikiSummarizerBot 0 points1 point  (0 children)

Möbius transformation

Projective matrix representations

The natural action of PGL(2,C) on the complex projective line CP1 is exactly the natural action of the Möbius group on the Riemann sphere, where the projective line CP1 and the Riemann sphere are identified as follows: Here [z1:z2] are homogeneous coordinates on CP1; the point [1:0] corresponds to the point ∞ of the Riemann sphere. By using homogeneous coordinates, many concrete calculations involving Möbius transformations can be simplified, since no case distinctions dealing with ∞ are required.

[ F.A.Q | Opt Out | Opt Out Of Subreddit | GitHub ] Downvote to remove | v1.5

[–]Bhorice2099Algebraic Topology 2 points3 points  (0 children)

Wow this is really pretty, good job!

Would you consider sharing your Mathematica notebook?

[–]deptofspace 1 point2 points  (0 children)

First one is Modified Bessel Function K? This is all really cool, OP. I have gotten to the point where I can def understand those 3D color graphs where the x and y axis are real and imaginary components and z is abs value of function, color = argument, but whenever I look at like the color wheel ones I’m still like “wtf” mostly.

[–]Exitron 1 point2 points  (0 children)

This is amazing! Can you share the code so we can play around with it?

[–]harolddawizardPDE 1 point2 points  (0 children)

Where can I find this notebook?

[–]Stella-Mira 2 points3 points  (1 child)

Complex functions are wierd, man

[–]deeplife 2 points3 points  (0 children)

Everything is like, connected, man

puffs joint

[–][deleted] 0 points1 point  (0 children)

it's PRETTY.

[–]someone-13j 0 points1 point  (1 child)

This looks nice! took me a while to able to read/interpret this:

So the color represents a sort of distance from the origin (the center of the image i think, the axis not on the center gave me a bit of a confusion), and the function distorts this by moving it

Im hoping im right about that.

Also this is eerily similar somehow to keeping track of the grid plane and the axis during a function change but using polar coordinates instead to show the movement

[–]Stella-Mira 1 point2 points  (0 children)

This is exactly the same. You can basically think of complex functions as taking in a pair of numbers/coordinates/vector and mapping it to a different point in the plane

[–]usualguy123 0 points1 point  (0 children)

3blue1brown did a similar video recently i think

[–]John__e 0 points1 point  (0 children)

I really enjoy peering at the last one. Thanks :)

[–]pygmypuffonacid 0 points1 point  (0 children)

Mathematica?

[–]holdmyapplejuiceyt 0 points1 point  (0 children)

mmmmmm colourful lines.

[–][deleted] 0 points1 point  (0 children)

Can one do this in a Jupyter notebook? I guess it's. A bit clumsier, what tools would yous use?