Skip to main content

The Problem Pit: The Pit of the Generalized Takagi Function

 

The Pit of the Generalized Takagi Function: Smooth Nowhere

Some monsters in mathematics announce themselves immediately. The Mandelbrot set, with its spirals and lightning bolts, screams “fractal.” The Cantor set, built by removing the middle third forever, is obviously bizarre.

But the Takagi function whispers.

It starts quietly: just sawtooth waves stacked on top of each other. It looks like a child’s drawing of mountains. Yet when I tried to understand its smoothness, I fell into a pit — and I didn’t find my way out easily.


Step 1: Meeting the Function

The generalized Takagi function is defined as

Tα,β(x)=n=0αnτ(βnx),T_{\alpha,\beta}(x) = \sum_{n=0}^\infty \alpha^n \, \tau(\beta^n x),

where τ(x)=dist(x,Z)\tau(x) = \text{dist}(x, \mathbb{Z}) is the sawtooth function — the distance from xx to the nearest integer.

  • Each τ(βnx)\tau(\beta^n x) is a little triangular wave, oscillating faster as nn increases.

  • The coefficients αn\alpha^n dampen the size of the waves.

At first sight: this looks perfectly harmless.

I thought: surely this is continuous, and maybe even differentiable except at some rationals.

That was the first wrong step.


Step 2: The Trichotomy (A Rope Into the Pit)

The behavior depends on the product αβ\alpha \beta:

  • If αβ<1\alpha \beta < 1: The damping is strong. The series is Lipschitz continuous. Smooth enough.

  • If αβ>1\alpha \beta > 1: The oscillations outrun the damping. The function is continuous but nowhere differentiable, with difference quotients blowing up like a power law.

  • If αβ=1\alpha \beta = 1: The cliff. The balance point. What happens here?

I naively thought: maybe this is the “nice” case — a perfect balance, maybe even differentiable almost everywhere.

But the cliff was sharper than I expected.


Step 3: My Naive Differentiation

I tried to differentiate term by term:

ddxTα,β(x)=n=0αnddxτ(βnx).\frac{d}{dx} T_{\alpha,\beta}(x) = \sum_{n=0}^\infty \alpha^n \frac{d}{dx}\tau(\beta^n x).

But here’s the problem:

  • Each τ(βnx)\tau(\beta^n x) is piecewise linear with slope ±βn\pm \beta^n.

  • At integers and half-integers (scaled by βn\beta^{-n}), there are kinks.

As nn grows, the kinks get denser. In the limit, every neighborhood of every xx contains infinitely many kinks.

So the derivative series doesn’t converge anywhere.

Dead end.


Step 4: The Difference Quotient Trap

Okay, maybe I could analyze the difference quotient:

Q(x,h)=Tα,β(x+h)Tα,β(x)h.Q(x,h) = \frac{T_{\alpha,\beta}(x+h) - T_{\alpha,\beta}(x)}{h}.

For subcritical (αβ<1\alpha \beta < 1), estimates show Q(x,h)|Q(x,h)| is bounded, so the function is Lipschitz.

For supercritical (αβ>1\alpha \beta > 1), difference quotients grow like hγ|h|^{-\gamma}. No hope of differentiability.

But at the critical case (αβ=1\alpha \beta = 1), I ran into fog.

Sometimes Q(x,h)Q(x,h) seemed to stay small. Sometimes it grew. I thought: maybe it depends on xx. Maybe rationals behave differently than irrationals? Maybe “almost everywhere” it’s fine?

I plotted some difference quotients numerically. For x=0.1,h=10kx=0.1, h=10^{-k}, I got values bouncing unpredictably. For rationals with denominators powers of β\beta, they spiked.

My guesses crumbled.


Step 5: Trying Specific Examples

Take the classical Takagi function: α=12,β=2\alpha=\tfrac{1}{2}, \beta=2.

So we’re at the critical case: αβ=1\alpha \beta = 1.

Try x=0.25x=0.25. Compute

T1/2,2(x)=n=02n1τ(2nx).T_{1/2,2}(x) = \sum_{n=0}^\infty 2^{-n-1} \tau(2^n x).
  • For n=0n=0: τ(0.25)=0.25.\tau(0.25) = 0.25. Contribution: 0.250.25.

  • For n=1n=1: τ(0.5)=0.5.\tau(0.5) = 0.5. Contribution: 0.250.25.

  • For n=2n=2: τ(1)=0.\tau(1) = 0. Contribution: 0.

  • For n=3n=3: τ(2)=0.\tau(2) = 0. Contribution: 0.

  • For n=4n=4: τ(4)=0.\tau(4) = 0. Contribution: 0.

So partial sums: 0.25+0.25=0.50.25 + 0.25 = 0.5.

Seems tame. But now look at the difference quotient around x=0.25x=0.25:

Take h=0.01h=0.01.

Q(0.25,0.01)=T(0.26)T(0.25)0.01.Q(0.25,0.01) = \frac{T(0.26) - T(0.25)}{0.01}.

Numerical experiments show it’s around 4. Shrink hh to 0.001 → value jumps to ~9. Shrink further → it keeps growing. Not exploding like 1/h1/h, but creeping up like log(1/h)\log(1/h).

The tame face hides logarithmic teeth.


Step 6: The Logarithmic Monster

The actual theorem says:

At αβ=1\alpha \beta = 1, the Takagi function is continuous but nowhere differentiable. And the difference quotient satisfies

Q(x,h)Clogh|Q(x,h)| \geq C |\log h|

along infinitely many scales.

That’s the secret: the growth is logarithmic. Slower than supercritical chaos, but enough to kill every chance of differentiability.

It’s not smooth anywhere.


Step 7: Digit Combinatorics — Why It Fails

Why logarithmic? The answer lies in base-β\beta expansions.

Write xx in base β\beta. Whether a difference quotient at scale h=βmh = \beta^{-m} grows depends on whether the digits line up to create “bad scales.”

  • If you hit long runs of the same digit, you get spikes.

  • These spikes are rare, but they happen infinitely often.

So no matter which xx you pick, infinitely many “bad scales” ruin differentiability.

It’s like trying to walk across a floor with random nails sticking up. You’ll always step on one eventually.


Step 8: Comparing to Other Monsters

At this point, I tried to compare:

  • Weierstrass function:

    W(x)=n=0ancos(bnπx).W(x) = \sum_{n=0}^\infty a^n \cos(b^n \pi x).

    Its differentiability depends on abab. At the critical line, it’s power-law bad. The Takagi function is different — its oscillations are piecewise linear, so at criticality we get logarithmic failure instead of power-law.

  • Cantor function: continuous but flat almost everywhere. Opposite problem: too differentiable (derivative 0 almost everywhere). Takagi is never differentiable.

The Takagi sits in between, carving out its own pit.


Step 9: The Open Abyss

Even after understanding the logarithmic failure, the pit doesn’t end.

  • Exact constants: What is the best possible CC in Q(x,h)Clog(1/h)|Q(x,h)| \geq C \log(1/h)? Does it depend delicately on β\beta?

  • Fractal dimension: What is the Hausdorff dimension of the graph at criticality? Does the logarithmic failure affect it?

  • Multifractal analysis: How do the Hölder exponents distribute across points?

  • Randomized versions: If we add randomness to coefficients, does the critical logarithmic behavior survive?

  • Higher dimensions: What happens if we define Takagi-like functions on Rd\mathbb{R}^d?

The function refuses to give a complete picture.


Step 10: Climbing Out (Barely)

By the end of my journey, I knew this:

  • The generalized Takagi function at αβ=1\alpha\beta=1 is continuous but nowhere differentiable.

  • Its difference quotients grow logarithmically.

  • Its graph is a fractal coast — never smooth, always jagged.

  • It hides combinatorics of base-β\beta digits, and connects to questions still open in fractal geometry.

I went in expecting a mountain of sawteeth. I came out knowing I had been staring into a razor’s edge fractal.

That’s The Problem Pit: what seems playful becomes unfathomably strange the deeper you dig.



Comments

Popular posts from this blog

Sharp Extremal Bounds for Angular Occupancy (Behind the Curtains)

you can find the full paper here First Attempts, and the Limits of Energy When I first began thinking about angular occupancy, I wasn’t looking for a brand-new problem. I was chasing a theme that has long fascinated me in discrete geometry: how do we measure the geometric richness of a finite set of points? This fascination is not unique to me. Erdős, way back in 1946, posed the distinct distances problem : given n points in the plane, how many distinct distances can they determine? That question alone gave birth to entire decades of work in combinatorial geometry. Later, Fishburn and Füredi asked about distinct angles , while Pach and Sharir studied repeated angles . Each time, the same underlying itch was being scratched: when you place points in the plane, what kinds of diversity can they generate? Why angles, why bins? It was natural to think of angles — after all, distances and directions had already been well studied. But if you go straight for “distinct angles,” you run in...

The Art of Goodbye

  The Art of Goodbye: How Relationships End and Why It Matters The friendship had been slowly dissolving for months. What used to be weekly coffee dates became monthly check-ins, then sporadic text messages, then silence. No fight precipitated the ending, no dramatic confrontation or betrayal. It simply... faded. One day you realized you hadn't spoken to someone who was once central to your life, and you weren't sure when the relationship had officially ended or even if it had. This ambiguous loss left you with a peculiar grief – mourning someone still alive, still accessible, but no longer present in your world. This experience is incredibly common yet rarely discussed. While we have cultural scripts for how relationships begin – meet-cutes, first dates, friendship origin stories – we have few models for how they end. We talk extensively about building connections but rarely about gracefully releasing them. This gap in our social understanding leaves many people unprepared ...

Getting Stuck: When Dijkstra Meets Negative Edges

  Getting Stuck: When Dijkstra Meets Negative Edges One of the joys (and pains) of computer science is when you take a tool you know, confidently apply it, and then watch everything break down in surprising ways. This happened to me recently when I decided to revisit shortest path algorithms — specifically, Dijkstra’s algorithm — only to get stuck in a swamp of negative edges. Setting the Scene The problem was classic: Given a directed, weighted graph and a source vertex, find the shortest path to all other vertices. This is the kind of problem that every CS student learns early, usually with Dijkstra’s algorithm. I already knew Dijkstra like an old friend: Keep a priority queue of distances. Always expand the node with the current smallest distance. Relax its edges. Simple, elegant, efficient ( O((V + E) log V) with a binary heap). So when I started coding a graph utility for my project — a tool to analyze transportation networks — I confidently plugged in D...