{"id":2419,"date":"2025-06-05T16:46:00","date_gmt":"2025-06-05T23:46:00","guid":{"rendered":"http:\/\/zackmdavis.net\/blog\/?p=2419"},"modified":"2025-06-22T22:25:12","modified_gmt":"2025-06-23T05:25:12","slug":"discontinuous-linear-functions","status":"publish","type":"post","link":"http:\/\/zackmdavis.net\/blog\/2025\/06\/discontinuous-linear-functions\/","title":{"rendered":"Discontinuous Linear Functions?!"},"content":{"rendered":"<p>We know what linear functions are. A function <em>f<\/em> is linear iff it satisfies <em>additivity<\/em> <em>f<\/em>(<em>x<\/em> + <em>y<\/em>) = <em>f<\/em>(<em>x<\/em>) + <em>f<\/em>(<em>y<\/em>) and <em>homogeneity<\/em> <em>f<\/em>(<em>ax<\/em>) = <em>af<\/em>(<em>x<\/em>).<\/p>\n<p>We know what continuity is. A function <em>f<\/em> is continuous iff for all \u03b5 there exists a \u03b4 such that if |<em>x<\/em> \u2212 <em>x<\/em><sub>0<\/sub>| &lt; \u03b4, then |<em>f<\/em>(<em>x<\/em>) \u2212 <em>f<\/em>(<em>x<\/em><sub>0<\/sub>)| &lt; \u03b5.<\/p>\n<p>An equivalent way to think about continuity is the sequence criterion: <em>f<\/em> is continuous iff a sequence (<em>x<\/em><sub><em>k<\/em><\/sub>) converging to <em>x<\/em> implies that (<em>f<\/em>(<em>x<\/em><sub><em>k<\/em><\/sub>)) converges to <em>f<\/em>(<em>x<\/em>). That is to say, if for all \u03b5 there exists an <em>N<\/em> such that if <em>k<\/em> \u2265 <em>N<\/em>, then |<em>x<\/em><sub><em>k<\/em><\/sub> \u2212 <em>x<\/em>| &lt; \u03b5, then for all \u03b5, there also exists an <em>M<\/em> such that if <em>k<\/em> \u2265 <em>M<\/em>, then |<em>f<\/em>(<em>x<\/em><sub><em>k<\/em><\/sub>) \u2212 <em>f<\/em>(<em>x<\/em>)| &lt; \u03b5.<\/p>\n<p>Sometimes people talk about discontinuous linear functions. You might think: that\u2019s crazy. I\u2019ve seen many linear functions in my time, and they were definitely all continuous. <em>f<\/em>(<em>x<\/em>): \u211d \u2192 \u211d := <em>ax<\/em> is continuous for any <em>a<\/em> \u2208 \u211d. <em>T<\/em>(<strong>x\u20d7<\/strong>): \u211d\u00b2 \u2192 \u211d\u00b2 := <span class='MathJax_Preview'><img src='http:\/\/zackmdavis.net\/blog\/wp-content\/plugins\/latex\/cache\/tex_7fe79c6fd9b98a55588e177897a46251.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt=\"\\begin{pmatrix} a & b \\\\ c & d \\end{pmatrix} \\boldsymbol{\\vec{x}}\" \/><\/span><script type='math\/tex'>\\begin{pmatrix} a & b \\\\ c & d \\end{pmatrix} \\boldsymbol{\\vec{x}}<\/script> is continuous no matter what the entries in the matrix are. Stop being crazy!!<\/p>\n<p>Actually, it\u2019s not crazy. It\u2019s just that all the discontinuous linear functions live in infinite-dimensional spaces.<\/p>\n<p>Take, say, the space C<sup>1<\/sup>([a,b]) of continuously differentiable functions from a closed interval [a,b] to \u211d with the uniform norm. (The uniform norm means that the \u201csize\u201d of a function for the purposes of continuity is the least upper bound of its absolute value.) If you think of a vector in the <em>n<\/em>-dimensional \u211d<sup><em>n<\/em><\/sup> as a function from {1\u2026n} to \u211d, then you can see why a function from a continuous (not even countable) domain would be infinite-dimensional.<\/p>\n<p>Consider the sequence of functions (<em>f<\/em><sub><em>k<\/em><\/sub>) = <span class='MathJax_Preview'><img src='http:\/\/zackmdavis.net\/blog\/wp-content\/plugins\/latex\/cache\/tex_85114287d536d7b742c5cf0cb675f2e7.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt=\"(\\frac{\\sin kx}{k})_{k=1}^{\\infty}\" \/><\/span><script type='math\/tex'>(\\frac{\\sin kx}{k})_{k=1}^{\\infty}<\/script> in C<sup>1<\/sup>([a,b]). The sequence converges to the zero function: for any \u03b5, we can take <span class='MathJax_Preview'><img src='http:\/\/zackmdavis.net\/blog\/wp-content\/plugins\/latex\/cache\/tex_5ddc01943a4a9f7731ac79bcd4b12ef3.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt=\"N := \\lceil \\frac{1}{\\varepsilon} \\rceil\" \/><\/span><script type='math\/tex'>N := \\lceil \\frac{1}{\\varepsilon} \\rceil<\/script> and then <span class='MathJax_Preview'><img src='http:\/\/zackmdavis.net\/blog\/wp-content\/plugins\/latex\/cache\/tex_90d0632fc1559c14c957446fe2b57ed4.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt=\"\\frac{\\sin kx}{k} \\le \\frac{1}{\\lceil \\frac{1}{\\varepsilon} \\rceil} \\le \\frac{1}{\\frac{1}{\\varepsilon}} = \\varepsilon\" \/><\/span><script type='math\/tex'>\\frac{\\sin kx}{k} \\le \\frac{1}{\\lceil \\frac{1}{\\varepsilon} \\rceil} \\le \\frac{1}{\\frac{1}{\\varepsilon}} = \\varepsilon<\/script>.<\/p>\n<p>Now consider that the sequence of derivatives is <span class='MathJax_Preview'><img src='http:\/\/zackmdavis.net\/blog\/wp-content\/plugins\/latex\/cache\/tex_24e80f62cf94c883b60e0ba14e228abf.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt=\"(\\frac{k \\cos kx}{k})_{k=1}^{\\infty} = (\\cos kx)_{k=1}^{\\infty}\" \/><\/span><script type='math\/tex'>(\\frac{k \\cos kx}{k})_{k=1}^{\\infty} = (\\cos kx)_{k=1}^{\\infty}<\/script>, which doesn\u2019t converge. But the function D: C<sup>1<\/sup>([a,b]) \u2192 C<sup>0<\/sup>([a,b]) that maps a function to its derivative is linear. (We have additivity because the derivative of a sum is the sum of the derivatives, and we have homogeneity because you can \u201cpull out\u201d a constant factor from the derivative.)<\/p>\n<p>By exhibiting a function <em>D<\/em> and a sequence (<em>f<\/em><sub><em>k<\/em><\/sub>) for which (<em>f<\/em><sub><em>k<\/em><\/sub>) converges but (<em>D<\/em>(<em>f<\/em><sub><em>k<\/em><\/sub>)) doesn\u2019t, we have shown that the derivative mapping <em>D<\/em> is a discontinuous linear function, because the sequence criterion for continuity is not satisfied. If you know the definitions and can work with the definitions, it\u2019s not crazy to believe in such a thing!<\/p>\n<p>The infinite-dimensionality is key to grasping the ultimate sanity of what would initially have appeared crazy. One way to think about continuity is that a small change in the input can\u2019t correspond to an arbitrarily large change in the output.<\/p>\n<p>Consider a linear transformation <em>T<\/em> on a finite-dimensional vector space; for simplicity of illustration, suppose it\u2019s diagonalizable with eigenbasis {<strong>u\u20d7<\/strong><sub><em>j<\/em><\/sub>} and eigenvalues {\u03bb<sub><em>j<\/em><\/sub>}. Then for input <strong>x\u20d7<\/strong> = \u03a3<sub><em>j<\/em><\/sub> <em>c<\/em><sub><em>j<\/em><\/sub><strong>u\u20d7<\/strong><sub><em>j<\/em><\/sub>, we have <em>T<\/em>(<strong>x\u20d7<\/strong>) = \u03a3<sub><em>j<\/em><\/sub> <em>c<\/em><sub><em>j<\/em><\/sub>\u03bb<sub><em>j<\/em><\/sub><strong>u\u20d7<\/strong><sub><em>j<\/em><\/sub>: the eigenco\u00f6rdinates of the input get multiplied by the eigenvalues, so the amount that the transformation \u201cstretches\u201d the input is bounded by max<sub><em>j<\/em><\/sub> |\u03bb<sub><em>j<\/em><\/sub>|. The linearity buys us the \u201cno arbitrarily large change in the output\u201d property which is continuity.<\/p>\n<p>In infinite dimensions, linearity doesn\u2019t buy that. Consider the function <em>T<\/em>(<em>x<\/em><sub>1<\/sub>, <em>x<\/em><sub>2<\/sub>, <em>x<\/em><sub>3<\/sub>, \u2026) = (<em>x<\/em><sub>1<\/sub>, 2<em>x<\/em><sub>2<\/sub>, 3<em>x<\/em><sub>3<\/sub>, \u2026) on sequences finitely many nonzero elements, under the uniform norm. The effect of the transformation on any given dimension is linear and bounded, but there\u2019s always another dimension that\u2019s getting stretched more. A small change in the input can result in an arbitrarily large change in the output, by making the change sufficiently far in the sequence (where the input is getting stretched more and more).<\/p>\n<p><em>(Thanks to Jeffrey Liang and Gurkenglas for corrections to the original version of this post.)<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We know what linear functions are. A function f is linear iff it satisfies additivity f(x + y) = f(x) + f(y) and homogeneity f(ax) = af(x). We know what continuity is. A function f is continuous iff for all &hellip; <a href=\"http:\/\/zackmdavis.net\/blog\/2025\/06\/discontinuous-linear-functions\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7],"tags":[33],"_links":{"self":[{"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/posts\/2419"}],"collection":[{"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/comments?post=2419"}],"version-history":[{"count":8,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/posts\/2419\/revisions"}],"predecessor-version":[{"id":2428,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/posts\/2419\/revisions\/2428"}],"wp:attachment":[{"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/media?parent=2419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/categories?post=2419"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/tags?post=2419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}