From 097431afdca147b0b7181b0eb7646cb801e0aa6b Mon Sep 17 00:00:00 2001 From: queue-miscreant Date: Tue, 22 Jul 2025 03:31:59 -0500 Subject: [PATCH] add stereo index --- .../stereo/2/index/execute-results/html.json | 12 ++++++++++++ .../2/index/figure-html/cell-5-output-1.png | Bin 0 -> 15018 bytes .../2/index/figure-html/cell-6-output-1.png | Bin 0 -> 11162 bytes .../2/index/figure-html/cell-7-output-1.png | Bin 0 -> 19508 bytes index.qmd | 1 + posts/stereo/2/index.qmd | 2 +- posts/stereo/_metadata.yml | 5 +++++ posts/stereo/index.qmd | 8 ++++++++ 8 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 _freeze/posts/stereo/2/index/execute-results/html.json create mode 100644 _freeze/posts/stereo/2/index/figure-html/cell-5-output-1.png create mode 100644 _freeze/posts/stereo/2/index/figure-html/cell-6-output-1.png create mode 100644 _freeze/posts/stereo/2/index/figure-html/cell-7-output-1.png create mode 100644 posts/stereo/_metadata.yml create mode 100644 posts/stereo/index.qmd diff --git a/_freeze/posts/stereo/2/index/execute-results/html.json b/_freeze/posts/stereo/2/index/execute-results/html.json new file mode 100644 index 0000000..c657e0f --- /dev/null +++ b/_freeze/posts/stereo/2/index/execute-results/html.json @@ -0,0 +1,12 @@ +{ + "hash": "e723e799442b3e52f9543809a686e1f9", + "result": { + "engine": "jupyter", + "markdown": "---\ntitle: \"Further Notes on Algebraic Stereography\"\ndescription: |\n How do you rotate in 2D and 3D without standard trigonometry?\nformat:\n html:\n html-math-method: katex\njupyter: python3\ndate: \"2021-10-10\"\ndate-modified: \"2025-06-30\"\ncategories:\n - algebra\n - complex analysis\n - polar roses\n - generating functions\n---\n\n\n\n\n\nIn my previous post, I discussed the stereographic projection of a circle as it pertains\n to complex numbers, as well as its applications in 2D and 3D rotation.\nIn an effort to document more interesting facts about this mathematical object\n (of which scarce information is immediately available online),\n I will now elaborate on more of its properties.\n\n\nChebyshev Polynomials\n---------------------\n\n[Previously](/posts/chebyshev/1), I derived the\n [Chebyshev polynomials](https://en.wikipedia.org/wiki/Chebyshev_polynomials)\n with the archetypal complex exponential.\nThese polynomials express the sines and cosines of a multiple of an angle from\n the sine and cosine of the base angle.\nWhere $T_n(t)$ are Chebyshev polynomials of the first kind and $U_n(t)$ are those of the second kind,\n\n$$\n\\begin{gather*}\n \\cos(n \\theta) = T_n(\\cos(\\theta))\n \\\\\n \\sin(n \\theta) = U_{n - 1}(\\cos(\\theta)) \\sin(\\theta)\n\\end{gather*}\n$$\n\nThe complex exponential derivation begins by squaring and developing a second-order recurrence.\n\n$$\n\\begin{align*}\n (e^{i\\theta})^2 &= (\\cos + i\\sin)^2\n \\\\\n &= \\cos^2 + 2i\\cos \\cdot \\sin - \\sin^2 + (0 = \\cos^2 + \\sin^2 - 1)\n \\\\\n &= 2\\cos^2 + 2i\\cos \\cdot \\sin - 1\n \\\\\n &= 2\\cos \\cdot (\\cos + i\\sin) - 1\n \\\\\n &= 2\\cos(\\theta)e^{i\\theta} - 1\n \\\\\n (e^{i\\theta})^{n+2} &= 2\\cos(\\theta)(e^{i\\theta})^{n+1} - (e^{i\\theta})^n\n\\end{align*}\n$$\n\nThis recurrence relation can then be used to obtain the Chebyshev polynomials, and hence,\n the expressions using sine and cosine above.\nPresented this way with such a simple derivation, it appears as though these relationships\n are inherently trigonometric.\n\nHowever, these polynomials actually have *nothing* to do with sine and cosine on their own.\nFor one, [they appear in graph theory](/posts/chebyshev/2), and for two,\n the importance of the complex exponential is overstated.\n$e^{i\\theta}$ really just specifies a point on the complex unit circle.\nThis property is used on the second line to coax the equation into a quadratic in $e^{i\\theta}$.\nThis is also the *only* property upon which the recurrence depends; all else is algebraic manipulation.\n\n\n### Back to the Stereograph\n\nKnowing this, let's start over with the stereographic projection of the circle:\n\n$$\no_1(t) = {1 + it \\over 1 - it}\n = {1 - t^2 \\over 1 + t^2} + i {2t \\over 1 + t^2}\n = \\text{c}_1 + i\\text{s}_1\n$$\n\nThe subscript \"1\" is because as *t* ranges over $(-\\infty, \\infty)$, the function loops once\n around the unit circle.\nTaking this to higher powers keeps points on the circle since all points on the circle\n have a norm of 1.\nIt also makes more loops around the circle, which we can denote by larger subscripts:\n\n$$\n\\begin{align*}\n o_n &= (o_1)^n\n = \\left( {1 + it \\over 1 - it} \\right)^n\n \\\\\n \\text{c}_n + i\\text{s}_n\n &= (\\text{c}_1 + i\\text{s}_1)^n\n\\end{align*}\n$$\n\nThis mirrors raising the complex exponential to a power\n (which loops over the range $(-\\pi, \\pi)$ instead).\nThe final line is analogous to de Moivre's formula, but in a form where everything is\n a ratio of polynomials in *t*.\nThis means that the Chebyshev polynomials can be obtained directly from these rational expressions:\n\n$$\n\\begin{align*}\n o_2 = (o_1)^2 &= (\\text{c}_1 + i\\text{s}_1)^2\n \\\\\n &= \\text{c}_1^2 + 2i\\text{c}_1\\text{s}_1 - \\text{s}_1^2\n + (0 = \\text{c}_1^2 + \\text{s}_1^2 - 1)\n \\\\\n &= 2\\text{c}_1^2 + 2i\\text{c}_1\\text{s}_1 - 1\n \\\\\n &= 2\\text{c}_1(\\text{c}_1 + i\\text{s}_1) - 1\n \\\\\n &= 2\\text{c}_1 o_1 - 1\n \\\\\n o_2 \\cdot (o_1)^n &= 2\\text{c}_1 o_1 \\cdot (o_1)^n - (o_1)^n\n \\\\\n o_{n+2} &= 2\\text{c}_1 o_{n+1} - o_n\n\\end{align*}\n$$\n\nThis matches the earlier recurrence relation with the complex exponential and therefore\n the recurrence relation of the Chebyshev polynomials.\nIt also means that the the rational functions obey the same relationship as sine and cosine:\n\n$$\n\\begin{matrix}\n \\begin{gather*}\n \\text{c}_n = T_n(\\text{c}_1)\n \\\\\n \\text{s}_n = U_{n-1}(\\text{c}_1) \\text{s}_1\n \\end{gather*}\n & \\text{where }\n \\text{c}_1 = {1 - t^2 \\over 1 + t^2}, &\n \\text{s}_1 = {2t \\over 1 + t^2}\n\\end{matrix}\n$$\n\nThus, the Chebyshev polynomials are tied to (coordinates on) circles,\n rather than explicitly to the trigonometric functions.\nIt is a bit strange that these polynomials are in terms of rational functions, but no stranger\n than them being in terms of *ir*rational functions like sine and cosine.\n\n\nCalculus\n--------\n\nSince these functions behave similarly to sine and cosine, one might wonder about\n the nature of these expressions in the context of calculus.\n\nFor comparison, the complex exponential (as it is a parallel construction) has a simple derivative[^1].\nSince the exponential function is its own derivative, the expression acquires\n an imaginary coefficient through the chain rule.\n\n[^1]: This is forgoing the fact that complex derivatives require more care than their real counterparts.\n It matters slightly less in this case since this function is complex-valued, but has a real parameter.\n\n$$\n\\begin{align*}\n e^{it} &= \\cos(t) + i\\sin(t)\n \\\\\n {d \\over dt} e^{it}\n &= {d \\over dt} \\cos(t) + {d \\over dt} i\\sin(t)\n \\\\\n i e^{it} &= -\\sin(t) + i\\cos(t)\n \\\\\n i[\\cos(t) + i\\sin(t)]\n &\\stackrel{\\checkmark}{=} -\\sin(t) + i\\cos(t)\n\\end{align*}\n$$\n\nMeanwhile, the complex stereograph has derivative\n\n$$\n\\begin{align*}\n {d \\over dt} o_1(t) &= {d \\over dt} {1 + it \\over 1 - it}\n = {i(1 - it) + i(1 + it) \\over (1 - it)^2}\n \\\\\n &= {2i \\over (1 - it)^2}\n = {2i(1 + it)^2 \\over (1 + t^2)^2}\n = {2i(1 - t^2 + 2it) \\over (1 + t^2)^2}\n \\\\\n &= {-4t \\over (1 + t^2)^2} + i {2(1 - t^2) \\over (1 + t^2)^2}\n \\\\\n &= {-2 \\over 1 + t^2}s_1 + i {2 \\over 1 + t^2}c_1\n \\\\\n &= -(1 + c_1)s_1 + i(1 + c_1)c_1\n \\\\\n &= i(1 + c_1)o_1\n\\end{align*}\n$$\n\nJust like the complex exponential, an imaginary coefficient falls out.\nHowever, the expression also accrues a $1 + c_1$ term, almost like an adjustment factor\n for its failure to be the complex exponential.\nSine and cosine obey a simpler relationship with respect to the derivative,\n and thus need no adjustment.\n\n\n### Complex Analysis\n\nSince $o_n$ is a curve which loops around the unit circle *n* times, that possibly suits it\n to showing a simple result from complex analysis.\nIntegrating along a contour which wraps around a sufficiently nice function's pole\n (i.e., where its magnitude grows without bound) yields a familiar value.\nThis is easiest to see with $f(z) = 1 / z$:\n\n$$\n\\oint_\\Gamma {1 \\over z} dz\n = \\int_a^b {\\gamma'(t) \\over \\gamma(t)} dt\n = 2\\pi i\n$$\n\nIn this example, Γ is a counterclockwise curve parametrized by γ which loops once around\n the pole at *z* = 0.\nMore loops will scale this by a factor according to the number of loops.\n\nNormally this equality is demonstrated with the complex exponential, but will $o_1$ work just as well?\nIf Γ is the unit circle, the integral is:\n\n$$\n\\oint_\\Gamma {1 \\over z} dz\n = \\int_{-\\infty}^\\infty {o_1'(t) \\over o_1(t)} dt\n = \\int_{-\\infty}^\\infty i(1 + c_1(t)) dt\n = 2i\\int_{-\\infty}^\\infty {1 \\over 1 + t^2} dt\n$$\n\nIf one has studied their integral identities, the indefinite version of the final integral\n will be obvious as $\\arctan(t)$, which has horizontal asymptotes of $\\pi / 2$ and $-\\pi / 2$.\nTherefore, the value of the integral is indeed $2\\pi i$.\n\nIf there are *n* loops, then naturally there are *n* of these $2\\pi i$s.\nSince powers of *o* are more loops around the circle, the chain and power rules show:\n\n$$\n\\begin{gather*}\n {d \\over dt} (o_1)^n = n(o_1)^{n-1} {d \\over dt} o_1\n \\\\[14pt]\n \\oint_\\Gamma {1 \\over z} dz\n = \\int_{-\\infty}^\\infty {n o_1(t)^{n-1} o_1'(t) \\over o_1(t)^n} dt\n = n \\int_{-\\infty}^\\infty {o_1'(t) \\over o_1(t)} dt\n = 2 \\pi i n\n\\end{gather*}\n$$\n\nIt is certainly possible to perform these contour integrals along straight lines;\n in fact, integrating along lines from 1 to *i* to -1 to -*i* deals with a\n similar integral involving arctangent.\nHowever, the best one can do to construct more loops with lines is to count each line\n multiple times, which isn't extraordinarily convincing.\n\nPerhaps the use of $\\infty$ in the integral bounds is also unconvincing.\nThe integral can be shifted back into the realm of plausibility by considering simpler bounds on $o_2$:\n\n$$\n\\begin{align*}\n \\oint_\\Gamma {1 \\over z} dz\n &= \\int_{-1}^1 {2 o_1(t) o_1'(t) \\over o_1(t)^2} dt\n \\\\\n &= 2 \\int_{-1}^1 {o_1'(t) \\over o_1(t)} dt\n \\\\\n &= 2(2i\\arctan(1) - 2i\\arctan(-1))\n \\\\\n &= 2\\pi i\n\\end{align*}\n$$\n\nThis has an additional benefit: using the series form of $1 / (1 + t^2)$ and integrating,\n one obtains the series form of the arctangent.\nThis series converges for $-1 \\le t \\le 1$, which happens to match the bounds of integration.\nThe convergence of this series is fairly important, since it is tied to formulas for π,\n in particular [Leibniz's formula](https://en.wikipedia.org/wiki/Leibniz_formula_for_%CF%80).\n\nWere one to integrate with the complex exponential, we would instead use the bounds $(0, 2\\pi)$,\n since at this point a full loop has been made.\nBut think to yourself -- how do you know the period of the complex exponential?\nHow do you know that 2π radians is equivalent to 0 radians?\nThe result using stereography relies on neither of these prior results and is directly pinned\n to a formula for π instead an apparent detour through the number *e*.\n\n\nPolar Curves\n------------\n\nPolar coordinates are useful for expressing for which the distance from the origin is\n a function of the angle with respect to the positive *x*-axis.\nThey can also be readily converted to parametric forms:\n\n$$\n\\begin{gather*}\n r(\\theta) &\\Longleftrightarrow&\n \\begin{matrix}\n x(\\theta) = r \\cos(\\theta) \\\\\n y(\\theta) = r \\sin(\\theta)\n \\end{matrix}\n\\end{gather*}\n$$\n\nPolar curves frequently loop in on themselves, and so it is necessary to choose appropriate bounds\n for θ (usually as multiples of π) when plotting.\nEvidently, this is due to the use of sine and cosine in the above parametrization.\nFortunately, $s_n$ and $c_n$ (as shown by the calculus above) have much simpler bounds.\nSo what happens when one substitutes the rational functions in place of the trig ones?\n\n\n### Polar Roses\n\n[Polar roses](https://en.wikipedia.org/wiki/Rose_(mathematics)) are beautiful shapes which have\n a simple form when expressed in polar coordinates.\n\n$$\nr(\\theta) = \\cos \\left( {p \\over q} \\cdot \\theta \\right)\n$$\n\nThe ratio $p/q$ in least terms uniquely determines the shape of the curve.\n\nIf you weren't reading this post, you might assume this curve is transcendental since it uses cosine,\n but you probably know better at this point.\nThe Chebyshev examples above demonstrate the resemblance between $c_n$ and $\\cos(n\\theta)$.\nThe subscript of $c$ is easiest to work with as an integer, so let $q = 1$.\n\n$$\nx(t) = c_p(t) c_1(t) \\qquad y(t) = c_p(t) s_1(t)\n$$\n\nwill plot a $p/1$ polar rose as t ranges over $(-\\infty, \\infty)$.\n\n\n\n::: {#fig-polar-roses-1}\n{{< video \"./polar_roses_1.mp4\" >}}\n\np/1 polar roses as rational curves.\nSince *t* never reaches infinity, a bite appears to be taken out of the graphs near (-1, 0).\"\n:::\n\n$q = 1$ happens to match the subscript *c* term of *x* and *s* term of *y*, so one might wonder\n whether the other polar curves can be obtained by allowing it to vary as well.\nAnd you'd be right.\n\n$$\nx(t) = c_p(t) c_q(t) \\qquad y(t) = c_p(t) s_q(t)\n$$\n\nwill plot a $p/q$ polar rose as t ranges over $(-\\infty, \\infty)$.\n\n\n\n::: {#fig-polar-roses-2}\n{{< video \"./polar_roses_2.mp4\" >}}\n\np/q polar roses as rational curves\n:::\n\nJust as with the prior calculus examples, doubling all subscripts of *c* and *s* will\n only require *t* to range over $(-1, 1)$, which removes the ugly bite mark.\nPerhaps it is also slightly less satisfying, since the fraction $p/q$ directly appears in the\n typical polar incarnation with cosine.\nOn the other hand, it exposes an important property of these curves: they are all rational.\n\nThis approach lends additional precision to a prospective pseudo-polar coordinate system.\nIn the next few examples, I will be using the following notation for compactness:\n\n$$\n \\begin{gather*}\n R_n(t) = f(t) &\\Longleftrightarrow&\n \\begin{matrix}\n x(t) = f(t) c_n(t) \\\\\n y(t) = f(t) s_n(t)\n \\end{matrix}\n\\end{gather*}\n$$\n\n\n### Conic Sections\n\nThe polar equation for a conic section (with a particular unit length occurring somewhere)\n in terms of its eccentricity $\\varepsilon$ is:\n\n$$\nr(\\theta) = {1 \\over 1 - \\varepsilon \\cos(\\theta)}\n$$\n\nCorrespondingly, the rational polar form can be expressed as\n\n$$\nR_1(t) = {1 \\over 1 - \\varepsilon c_1}\n$$\n\nSince polynomial arithmetic is easier to work with than trigonometric identities,\n it is a matter of pencil-and-paper algebra to recover the implicit form from a parametric one.\n\n\n#### Parabola ($|\\varepsilon| = 1$)\n\nThe conic section with the simplest implicit equation is the parabola.\nSince $c_n$ is a simple ratio of polynomials in *t*, it is much simpler to recover the implicit equation.\nFor $\\varepsilon = 1$,\n\n:::: {layout-ncol=\"2\"}\n\n::: {#39eea2a2 .cell execution_count=5}\n\n::: {.cell-output .cell-output-display}\n![$x = {c_1 \\over 1 - c_1} \\quad y = {s_1 \\over 1 - c_1}$](index_files/figure-html/cell-5-output-1.png){}\n:::\n:::\n\n\n::: {}\n$$\n\\begin{align*}\n 1 - c_1 &= 1 - {1 - t^2 \\over 1 + t^2}\n = {2 t^2 \\over 1 + t^2}\n \\\\\n y &= {s_1 \\over 1 - c_1}\n = {2t \\over 1 + t^2} {1 + t^2 \\over 2 t^2}\n = {1 \\over t}\n \\\\\n x &= {c_1 \\over 1 - c_1}\n = {1 - t^2 \\over 1 + t^2} \\cdot {1 + t^2 \\over 2 t^2}\n = {1 - t^2 \\over 2t^2}\n \\\\\n &= {1 \\over 2t^2} - {1 \\over 2}\n = {y^2 \\over 2} - {1 \\over 2}\n\\end{align*}\n$$\n:::\n::::\n\n*x* is a quadratic polynomial in *y*, so trivially the figure formed is a parabola.\nTechnically it is missing the point where $y = 0 ~ (t = \\infty)$, and this is not a circumstance\n where using a higher $c_n$ would help.\nIt is however, similar to the situation where we allow $o_1(\\infty) = -1$, and an argument\n can be made to waive away any concerns one might have.\n\n\n#### Ellipse ($|\\varepsilon| < 1$)\n\nEllipses are next.\nThe simplest fraction between zero and one is 1/2, so for $\\varepsilon = 1/2$,\n\n:::: {layout-ncol = \"2\"}\n\n::: {#f9484e49 .cell execution_count=6}\n\n::: {.cell-output .cell-output-display}\n![$x = {c_1 \\over 1 - c_1 / 2} \\quad y = {s_1 \\over 1 - c_1 / 2}$](index_files/figure-html/cell-6-output-1.png){}\n:::\n:::\n\n\n::: {}\n$$\n\\begin{align*}\n 1 - {1 \\over 2}c_1 &= 1 - {1 \\over 2} \\cdot {1 - t^2 \\over 1 + t^2}\n = {3 t^2 + 1 \\over 2 + 2t^2}\n \\\\\n y &= {s_1 \\over 1 - {1 \\over 2}c_1}\n = {4t \\over 3t^2 + 1}\n \\\\\n x &= {c_1 \\over 1 - {1 \\over 2}c_1}\n = {2 - 2t^2 \\over 3t^2 + 1}\n\\end{align*}\n$$\n:::\n::::\n\nThere isn't an obvious way to combine products of *x* and *y* into a single equation.\nThe general form of a conic section is $Ax^2 + Bxy + Cy^2 + Dx + Ey + F = 0$, so\n we know that the implicit equation for the curve almost certainly involves $x^2$ and $y^2$.\n\n$$\nx^2 = {4 - 8t^2 + 4t^4 \\over (3t^2 + 1)^2} \\qquad\n y^2 = {16t^2 \\over (3t^2 + 1)^2}\n$$\n\nSquaring produces some $t^4$ terms which cannot exist outside of these terms and *xy*.\nA linear combination of $x^2$ and $y^2$ never includes any cubic terms in the numerator\n which would appear in *xy*, so $B = 0$.\nSince all remaining terms are linear in *x* and *y*, their denominator must appear as a factor\n in the numerator of $Ax^2 + Cy^2$, whatever *A* and *C* are.\n\nSince the coefficient of $t^4$ in $x^2$ is 4, *A* must be multiple of 3.\nThrough trial and error, $A = 3, C = 4$ gives:\n\n$$\n\\begin{align*}\n 3x^2 + 4y^2\n &= {12 - 24t^2 + 12t^4 + 64t^2 \\over (3t^2 + 1)^2}\n \\\\\n &= {12 - 40t^2 + 12t^4 \\over (3t^2 + 1)^2}\n \\\\\n &= {(4t^2 + 12) (3t^2 + 1) \\over (3t^2 + 1)^2}\n \\\\\n &= {4t^2 + 12 \\over 3t^2 + 1}\n\\end{align*}\n$$\n\nSince the numerator of *y* has a *t*, this is clearly some combination of *x* and a constant.\nBy the previous line of thought, the constant term must be a multiple of 4, and picking the smallest\n option finally results in the implicit form:\n\n$$\n\\begin{align*}\n 4 &= {4(3t^2 + 1) \\over 3t^2 + 1}\n = {12t^2 + 4 \\over 3t^2 + 1}\n \\\\\n {4t^2 + 12 \\over 3t^2 + 1} - 4\n &= {8 - 8t^2 \\over 3t^2 + 1} = 4x\n \\\\[14pt]\n 3x^2 + 4y^2 &= 4x + 4\n \\\\\n 3x^2 + 4y^2 - 4x - 4 &= 0\n\\end{align*}\n$$\n\nNotably, the coefficients of *x* and *y* are 3 and 4.\nSimultaneously, $o_1(\\varepsilon) = o_1(1/2) = {3 \\over 5} + i{4 \\over 5}$.\nThis binds together three concepts: the simplest case of the Pythagorean theorem,\n the 3-4-5 right triangle; the coefficients of the implicit form; and the role of eccentricity\n with respect to stereography.\n\n\n#### Hyperbola ($|\\varepsilon| > 1$)\n\nAs evidenced by the bound on the eccentricity above, hyperbolae are in some way the inverses of ellipses.\nSince $o_1(2)$ is a reflection of $o_1(1/2)$, you might think the implicit equation for\n $\\varepsilon = 2$ to be the same, but with a flipped sign or two.\nUnfortunately, you'd be wrong.\n\n:::: {layout-ncol=\"2\"}\n\n::: {#226c9935 .cell execution_count=7}\n\n::: {.cell-output .cell-output-display}\n![$x = {c_1 \\over 1 - 2c_1} \\quad y = {s_1 \\over 1 - 2c_1}$](index_files/figure-html/cell-7-output-1.png){}\n:::\n:::\n\n\n::: {}\n$$\n\\begin{gather*}\n \\begin{align*}\n x &= {c_1 \\over 1 - 2c_1} = {1 - t^2 \\over 3t^2 - 1}\n \\\\\n y &= {s_1 \\over 1 - 2c_1} = {2t \\over 3t^2 - 1}\n \\\\[14pt]\n 3x^2 - y^2 &= {3 - 6t^2 + 3t^4 - 4t^2 \\over 3t^2 - 1}\n \\\\\n &= {(t^2 - 3)(3t^2 - 1) \\over (3t^2 - 1)^2 }\n \\\\\n &= {t^2 - 3 \\over 3t^2 - 1 }\n = ... = -4x - 1\n \\end{align*}\n \\\\[14pt]\n 3x^2 - y^2 + 4x + 1 = 0\n\\end{gather*}\n$$\n:::\n::::\n\nAt the very least, the occurrences of 1 in the place of 4 have a simple explanation: 1 = 4 - 3.\n\n\n### Archimedean Spiral\n\nArguably the simplest (non-circular) polar curve is $r(\\theta) = \\theta$, the unit\n [Archimedean spiral](https://en.wikipedia.org/wiki/Archimedean_spiral).\nSince the curve is defined by a constant turning, this is a natural application of the properties\n of sine and cosine.\nThe closest equivalent in rational polar coordinates is $R_1(t) = t$.\nBut this can be converted to an implicit form:\n\n$$\n\\begin{gather*}\n x = tc_1 \\qquad y = ts_1\n \\\\[14pt]\n x^2 + y^2 = t^2(c_1^2 + s_1^2) = t^2\n \\\\\n y = {2t^2 \\over 1 + t^2} = {2(x^2 + y^2) \\over 1 + (x^2 + y^2)}\n \\\\[14pt]\n (1 + x^2 + y^2)y = 2(x^2 + y^2)\n\\end{gather*}\n$$\n\nThe curve produced by this equation is a\n [right strophoid](https://mathworld.wolfram.com/RightStrophoid.html)\n with a node at (0, 1) and asymptote $y = 2$.\nThis form suggests something interesting about this curve: it approximates the Archimedean spiral\n (specifically the one with polar equation $r(\\theta) = \\theta/2$).\nIndeed, the sequence of curves with parametrization $R_n(t) = 2nt$ approximate the (unit) spiral\n for larger *n*, as can be seen in the following video.\n\n\n\n::: {#fig-approx-archimedes}\n{{< video ./approximate_archimedes.mp4 >}}\n\nApproximations to the Archimedean spiral\n:::\n\n\nSince R necessarily defines a rational curve, the curves will never be equal,\n just as any stretching of $c_n$ will never exactly become cosine.\n\n\nClosing\n-------\n\nSine, cosine, and the exponential function, are useful in a calculus setting precisely\n because of their constant \"velocity\" around the circle.\nAlso, nearly every modern scientific calculator in the world features buttons\n for trigonometric functions, so there seems to be no reason *not* to use them.\n\nWe can however be misled by their apparent omnipresence.\nStereographic projection has been around for *millennia*, and not every formula needs to be rewritten\n in its language.\nFor example (and as previously mentioned), defining the Chebyshev polynomials really only requires\n understanding the multiplication of two complex numbers whose norm cannot grow,\n not trigonometry and dividing angles.\nMany other instances of sine and cosine merely rely on a number (or ratio) of loops around a circle.\nWhen velocity does not factor, it will obviously do to \"stay rational\".\n\nOne of my favorite things to plot as a kid were polar roses, so I was somewhat intrigued\n to see that they are, in fact, rational curves.\nOn the other hand, their rationality follows immediately from the rationality of the circle\n (which itself follows from the existence of Pythagorean triples).\nIf I were more experienced with manipulating Chebyshev polynomials or willing to set up a\n linear system in (way too) many terms, I might have considered attempting to find\n an implicit form for them as well.\n\nDiagrams created with Sympy and Matplotlib.\n\n", + "supporting": [ + "index_files" + ], + "filters": [], + "includes": {} + } +} \ No newline at end of file diff --git a/_freeze/posts/stereo/2/index/figure-html/cell-5-output-1.png b/_freeze/posts/stereo/2/index/figure-html/cell-5-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..35d0d33b5406f46f0373801307e5fb8d2abe3814 GIT binary patch literal 15018 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 AkpKVy literal 0 HcmV?d00001 diff --git a/_freeze/posts/stereo/2/index/figure-html/cell-6-output-1.png b/_freeze/posts/stereo/2/index/figure-html/cell-6-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..bb714492ee8f1f0d69f18e1dc9749219a0f409f0 GIT binary patch literal 11162 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 literal 0 HcmV?d00001 diff --git a/index.qmd b/index.qmd index 3a63b58..d0e3b2b 100644 --- a/index.qmd +++ b/index.qmd @@ -3,6 +3,7 @@ title: "Posts by topic" listing: contents: - posts/permutations/index.* + - posts/stereo/index.* - posts/chebyshev/index.* - posts/pentagons/index.* - posts/polycount/index.* diff --git a/posts/stereo/2/index.qmd b/posts/stereo/2/index.qmd index 475b609..7631557 100644 --- a/posts/stereo/2/index.qmd +++ b/posts/stereo/2/index.qmd @@ -12,7 +12,7 @@ categories: - algebra - complex analysis - polar roses - - generating function + - generating functions ---