#set document(title: "4.3 More on the Fourier Series", author: "Jiří Lebl") #set page(width: 8.5in, height: auto, margin: 1in) #import "@preview/cetz:0.5.2" #set text(font: ("STIX Two Text", "Libertinus Serif", "New Computer Modern"), size: 10.5pt, lang: "en") #show math.equation: set text(font: ("STIX Two Math", "New Computer Modern Math")) #set par(justify: true, leading: 0.62em, spacing: 0.9em) #set enum(spacing: 1.1em) // room between list items so tall inline fractions don't collide #set list(spacing: 1.1em) #set table(stroke: 0.5pt + rgb("#c7ccd3")) #let BLUE = rgb("#183B6F") // brand navy — section bars + example/solution labels (white on navy 11.09:1) #let ORANGE = rgb("#A94509") // brand primary-700 — AA-safe deep orange for TEXT (5.93:1 on white; raw brand #F37021 is 2.94:1 and must never carry text) #let RED = rgb("#DC2626") // brand error-600 #let GREEN = rgb("#059669") // brand success-600 (decoration only; small green text uses green-text #007942) #show heading.where(level: 1): it => block(width: 100%, above: 0pt, below: 16pt, fill: gradient.linear(BLUE, rgb("#2C5AA0")), inset: (x: 14pt, y: 12pt), radius: 3pt, text(fill: white, weight: "bold", size: 19pt, it.body)) #show heading.where(level: 2): it => block(width: 100%, above: 18pt, below: 10pt, fill: BLUE, inset: (x: 10pt, y: 6pt), radius: 2pt, text(fill: white, weight: "bold", size: 12pt, it.body)) #show heading.where(level: 3): it => text(fill: ORANGE, weight: "bold", size: 12.5pt, it.body) #show heading.where(level: 4): it => text(fill: BLUE, weight: "bold", size: 10.5pt, it.body) #let examplebox(label, title, body) = block(width: 100%, breakable: true, fill: rgb("#EFF1F5"), stroke: 0.5pt + rgb("#CFDDF0"), radius: 4pt, inset: 10pt, above: 12pt, below: 12pt)[ #block(below: 6pt)[#box(fill: BLUE, inset: (x: 6pt, y: 2pt), radius: 2pt, text(fill: white, weight: "bold", size: 8.5pt, label)) #h(0.4em) #strong[#title]] #body] // rail = decorative left rule (raw brand token); labelcolor = AA-safe label text shade #let notebox(label, rail, labelcolor, tint, body) = block(width: 100%, breakable: true, fill: tint, stroke: (left: 3pt + rail), inset: (left: 10pt, rest: 8pt), radius: (right: 4pt), above: 11pt, below: 11pt)[ #text(fill: labelcolor, weight: "bold", size: 7.5pt, tracking: 0.5pt)[#upper(label)] #linebreak() #body] #let solutionbox(body) = block(above: 4pt, below: 8pt)[ #text(fill: BLUE, weight: "bold", size: 8.5pt)[Solution] #linebreak() #body] #let figph(msg) = block(width: 100%, height: 60pt, fill: rgb("#f6f7f9"), stroke: (paint: rgb("#c7ccd3"), dash: "dashed"), radius: 4pt, inset: 10pt)[ #align(center + horizon, text(fill: rgb("#889"), style: "italic", size: 9pt, msg))] // Standardize inlined figure sizes: measure the natural CeTZ canvas, then scale to a // consistent envelope (aspect-aware; see build_typst.py FIG_* constants). Unlike the // print preamble, dimensions are FLOORED: in an editor a user can trim a figure to a // degenerate 1-D shape (a bare line), and w/h or tw/w would then divide by zero. #let _STD_W = 3.5 #let _WIDE_W = 5.6 #let _MAX_H = 3.4 #let _ASPECT_WIDE = 2.2 #let _UPSCALE_MAX = 1.15 #let stdfig(body) = context { let m = measure(body) let w = calc.max(m.width / 1in, 0.01) let h = calc.max(m.height / 1in, 0.01) let tw = if w / h > _ASPECT_WIDE { _WIDE_W } else { _STD_W } let s = calc.min(tw / w, _MAX_H / h, _UPSCALE_MAX) align(center, box(scale(x: s * 100%, y: s * 100%, reflow: true, body))) } #show figure: set block(breakable: false) #set figure(gap: 8pt) #show figure.caption: set text(size: 8.5pt, fill: rgb("#555")) == 4.3#h(0.6em)More on the Fourier Series Before reading the lecture, it may be good to first try Project IV (Fourier series) from the IODE website: #link("https://conf.math.illinois.edu/iode/fsgui.html")[https://conf.math.illinois.edu/iode/fsgui.html]. After reading the lecture it may be good to continue with Project V (Fourier series again). === 2L-Periodic Functions We have computed the Fourier series for a #math.equation(block: false, alt: "2 π")[$2 π$]-periodic function, but what about functions of different periods. Well, fear not, the computation is a simple case of change of variables. We can just rescale the independent axis. Suppose that we have a #math.equation(block: false, alt: "2 L")[$2 L$]-periodic function #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] (#math.equation(block: false, alt: "L")[$L$] is called the #emph[half period]). Let #math.equation(block: false, alt: "S equals the fraction π over L t")[$S = frac(π, L) t$]. Then the function #math.equation(block: true, alt: "g open parenthesis s close parenthesis equals f open parenthesis the fraction L over π s close parenthesis")[$g ( s ) = f ( frac(L, π) s )$] is #math.equation(block: false, alt: "2 π")[$2 π$]-periodic. We want to also rescale all our sines and cosines. We want to write #math.equation(block: true, alt: "f open parenthesis t close parenthesis equals the fraction a sub 0 over 2 plus ∑ n equals 1 infinity a sub n cos open parenthesis the fraction n π over L t close parenthesis plus b sub n sin open parenthesis the fraction n π over L t close parenthesis .")[$f ( t ) = frac(a_(0), 2) + ∑_(n = 1)^(∞) a_(n) cos ( frac(n π, L) t ) + b_(n) sin ( frac(n π, L) t ) .$] If we change variables to #math.equation(block: false, alt: "s")[$s$] we see that #math.equation(block: true, alt: "g open parenthesis s close parenthesis equals the fraction a sub 0 over 2 plus ∑ n equals 1 infinity a sub n cos open parenthesis n s close parenthesis plus b sub n sin open parenthesis n s close parenthesis .")[$g ( s ) = frac(a_(0), 2) + ∑_(n = 1)^(∞) a_(n) cos ( n s ) + b_(n) sin ( n s ) .$] We compute #math.equation(block: false, alt: "a sub n")[$a_(n)$] and #math.equation(block: false, alt: "b sub n")[$b_(n)$] as before. After we write down the integrals we change variables from #math.equation(block: false, alt: "s")[$s$] back to #math.equation(block: false, alt: "t")[$t$]. #math.equation(block: true, alt: "a sub 0 equals the fraction 1 over π ∫ minus π π g open parenthesis s close parenthesis d s equals the fraction 1 over L ∫ minus L L f open parenthesis t close parenthesis d t ,; a sub n equals the fraction 1 over π ∫ minus π π g open parenthesis s close parenthesis cos open parenthesis n s close parenthesis d s equals the fraction 1 over L ∫ minus L L f open parenthesis t close parenthesis cos open parenthesis the fraction n π over L t close parenthesis d t ,; b sub n equals the fraction 1 over π ∫ minus π π g open parenthesis s close parenthesis sin open parenthesis n s close parenthesis d s equals the fraction 1 over L ∫ minus L L f open parenthesis t close parenthesis sin open parenthesis the fraction n π over L t close parenthesis d t .")[$a_(0) = frac(1, π) ∫_(− π)^(π) g ( s ) d s = frac(1, L) ∫_(− L)^(L) f ( t ) d t , \ a_(n) = frac(1, π) ∫_(− π)^(π) g ( s ) cos ( n s ) d s = frac(1, L) ∫_(− L)^(L) f ( t ) cos ( frac(n π, L) t ) d t , \ b_(n) = frac(1, π) ∫_(− π)^(π) g ( s ) sin ( n s ) d s = frac(1, L) ∫_(− L)^(L) f ( t ) sin ( frac(n π, L) t ) d t .$] The two most common half periods that show up in examples are #math.equation(block: false, alt: "π")[$π$] and #math.equation(block: false, alt: "1")[$1$] because of the simplicity. We should stress that we have done no new mathematics, we have only changed variables. If you understand the Fourier series for #math.equation(block: false, alt: "2 π")[$2 π$]-periodic functions, you understand it for #math.equation(block: false, alt: "2 L")[$2 L$]-periodic functions. All that we are doing is moving some constants around, but all the mathematics is the same. #examplebox("Example 1")[][ Let #math.equation(block: true, alt: "f open parenthesis t close parenthesis equals | t | f o r minus 1 less than t less than or equal to 1 ,")[$f ( t ) = | t | " " " " " " " " " " " " upright(f) upright(o) upright(r) " " − 1 < t ≤ 1 ,$] extended periodically. The plot of the periodic extension is given in Figure #math.equation(block: false, alt: "1")[$1$]. Compute the Fourier series of #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$]. #figure(figph[Plot of a periodic triangular zigzag over t from -2 to 2: segments of slope 1 and -1 make sharp peaks of height 1.0 at t equal to -1 and 1 and corners touching 0 at the even integers.], alt: "Plot of a periodic triangular zigzag over t from -2 to 2: segments of slope 1 and -1 make sharp peaks of height 1.0 at t equal to -1 and 1 and corners touching 0 at the even integers.", caption: [Figure #math.equation(block: false, alt: "1")[$1$]: Periodic extension of the function #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$].]) #solutionbox[ We want to write #math.equation(block: false, alt: "f open parenthesis t close parenthesis equals the fraction a sub 0 over 2 plus ∑ n equals 1 infinity a sub n cos open parenthesis n π t close parenthesis plus b sub n sin open parenthesis n π t close parenthesis")[$f ( t ) = frac(a_(0), 2) + ∑_(n = 1)^(∞) a_(n) cos ( n π t ) + b_(n) sin ( n π t )$]. For #math.equation(block: false, alt: "n greater than or equal to 1")[$n ≥ 1$] we note that #math.equation(block: false, alt: "| t | cos open parenthesis n π t close parenthesis")[$| t | cos ( n π t )$] is even and hence #math.equation(block: true, alt: "a sub n equals ∫ minus 1 1 f open parenthesis t close parenthesis cos open parenthesis n π t close parenthesis d t; equals 2 ∫ 0 1 t cos open parenthesis n π t close parenthesis d t; equals 2 [ the fraction t over n π sin open parenthesis n π t close parenthesis ] t equals 0 1 minus 2 ∫ 0 1 the fraction 1 over n π sin open parenthesis n π t close parenthesis d t; equals 0 plus the fraction 1 over n squared π squared [ cos open parenthesis n π t close parenthesis ] t equals 0 1 equals the fraction 2 open parenthesis open parenthesis minus 1 close parenthesis to the power n minus 1 close parenthesis over n squared π squared equals { 0, i f n i s e v e n ,; the fraction minus 4 over n squared π squared, i f n i s o d d .")[$a_(n) = ∫_(− 1)^(1) f ( t ) cos ( n π t ) d t \ = 2 ∫_(0)^(1) t cos ( n π t ) d t \ = 2 attach([ frac(t, n π) sin ( n π t ) ], t: 1, b: t = 0) − 2 ∫_(0)^(1) frac(1, n π) sin ( n π t ) d t \ = 0 + frac(1, n^(2) π^(2)) attach([ cos ( n π t ) ], t: 1, b: t = 0) = frac(2 ( ( − 1 )^(n) − 1 ), n^(2) π^(2)) = \{ 0 & " " upright(i) upright(f) " " italic(n) " " upright(i) upright(s) " " upright(e) upright(v) upright(e) upright(n) , \ frac(− 4, n^(2) π^(2)) & " " upright(i) upright(f) " " italic(n) " " upright(i) upright(s) " " upright(o) upright(d) upright(d) .$] Next we find #math.equation(block: false, alt: "a sub 0")[$a_(0)$] #math.equation(block: true, alt: "a sub 0 equals ∫ minus 1 1 | t | d t equals 1 .")[$a_(0) = ∫_(− 1)^(1) | t | d t = 1 .$] You should be able to find this integral by thinking about the integral as the area under the graph without doing any computation at all. Finally we can find #math.equation(block: false, alt: "b sub n")[$b_(n)$]. Here, we notice that #math.equation(block: false, alt: "| t | sin open parenthesis n π t close parenthesis")[$| t | sin ( n π t )$] is odd and, therefore, #math.equation(block: true, alt: "b sub n equals ∫ minus 1 1 f open parenthesis t close parenthesis sin open parenthesis n π t close parenthesis d t equals 0 .")[$b_(n) = ∫_(− 1)^(1) f ( t ) sin ( n π t ) d t = 0 .$] Hence, the series is #math.equation(block: true, alt: "the fraction 1 over 2 plus ∑ n equals 1 n o d d infinity the fraction minus 4 over n squared π squared cos open parenthesis n π t close parenthesis")[$frac(1, 2) + ∑_(limits(n = 1)_(n " " upright(o) upright(d) upright(d)))^(∞) frac(− 4, n^(2) π^(2)) cos ( n π t )$] Let us explicitly write down the first few terms of the series up to the #math.equation(block: false, alt: "3 to the power r d")[$3^(upright(r) upright(d))$] harmonic. #math.equation(block: true, alt: "the fraction 1 over 2 minus the fraction 4 over π squared cos open parenthesis π t close parenthesis minus the fraction 4 over 9 π squared cos open parenthesis 3 π t close parenthesis minus ⋯")[$frac(1, 2) − frac(4, π^(2)) cos ( π t ) − frac(4, 9 π^(2)) cos ( 3 π t ) − ⋯$] The plot of these few terms and also a plot up to the #math.equation(block: false, alt: "20 to the power t h")[$20^(upright(t) upright(h))$] harmonic is given in Figure #math.equation(block: false, alt: "2")[$2$]. You should notice how close the graph is to the real function. You should also notice that there is no “Gibbs phenomenon” present as there are no discontinuities. #figure(figph[Two plots of blue Fourier partial sums approximating the triangular zigzag, t from -2 to 2: the left sum is a rounded wave peaking at only about 0.96, the right is almost the zigzag itself, peaking at 1.00.], alt: "Two plots of blue Fourier partial sums approximating the triangular zigzag, t from -2 to 2: the left sum is a rounded wave peaking at only about 0.96, the right is almost the zigzag itself, peaking at 1.00.", caption: [Figure #math.equation(block: false, alt: "2")[$2$]: Fourier series of #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] up to the #math.equation(block: false, alt: "3 to the power rd")[$3^("rd")$] harmonic (left graph) and up to the #math.equation(block: false, alt: "20 to the power th")[$20^("th")$] harmonic (right graph).]) ] ] === Convergence We will need the one sided limits of functions. We will use the following notation #math.equation(block: true, alt: "f open parenthesis c minus close parenthesis equals lim sub t ↑ c f open parenthesis t close parenthesis , and f open parenthesis c plus close parenthesis equals lim sub t ↓ c f open parenthesis t close parenthesis .")[$f ( c − ) = lim_(t ↑ c) f ( t ) , #h(2em) "and" #h(2em) f ( c + ) = lim_(t ↓ c) f ( t ) .$] If you are unfamiliar with this notation, #math.equation(block: false, alt: "lim sub t ↑ c f open parenthesis t close parenthesis")[$lim_(t ↑ c) f ( t )$] means we are taking a limit of #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] as #math.equation(block: false, alt: "t")[$t$] approaches #math.equation(block: false, alt: "c")[$c$] from below (i.e. #math.equation(block: false, alt: "t less than c")[$t < c$]) and #math.equation(block: false, alt: "lim sub t ↓ c f open parenthesis t close parenthesis")[$lim_(t ↓ c) f ( t )$] means we are taking a limit of #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] as #math.equation(block: false, alt: "t")[$t$] approaches #math.equation(block: false, alt: "c")[$c$] from above (i.e. #math.equation(block: false, alt: "t greater than c")[$t > c$]). For example, for the square wave function #math.equation(block: true, alt: "0 i f minus π less than t less than or equal to 0 ,; π i f 0 less than t less than or equal to π ,")[$0 upright(i) upright(f) − upright(π) < upright(t) ≤ 0 , \ π upright(i) upright(f) 0 < upright(t) ≤ upright(π) ,$] we have #math.equation(block: false, alt: "f open parenthesis 0 minus close parenthesis equals 0")[$f ( 0 − ) = 0$] and #math.equation(block: false, alt: "f open parenthesis 0 plus close parenthesis equals π")[$f ( 0 + ) = π$]. Let #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] be a function defined on an interval #math.equation(block: false, alt: "[ a , b ]")[$[ a , b ]$]. Suppose that we find finitely many points #math.equation(block: false, alt: "a equals t sub 0 , t sub 1 , t sub 2 , … , t sub k equals b")[$a = t_(0) , t_(1) , t_(2) , … , t_(k) = b$] in the interval, such that #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] is continuous on the intervals #math.equation(block: false, alt: "open parenthesis t sub 0 , t sub 1 close parenthesis , open parenthesis t sub 1 , t sub 2 close parenthesis , … , open parenthesis t sub k minus 1 , t sub k close parenthesis")[$( t_(0) , t_(1) ) , ( t_(1) , t_(2) ) , … , ( t_(k − 1) , t_(k) )$]. Also suppose that all the one sided limits exist, that is, all of #math.equation(block: false, alt: "f open parenthesis t sub 0 plus close parenthesis , f open parenthesis t sub 1 minus close parenthesis , f open parenthesis t sub 1 plus close parenthesis , f open parenthesis t sub 2 minus close parenthesis , f open parenthesis t sub 2 plus close parenthesis , … , f open parenthesis t sub k minus close parenthesis")[$f ( t_(0) + ) , f ( t_(1) − ) , f ( t_(1) + ) , f ( t_(2) − ) , f ( t_(2) + ) , … , f ( t_(k) − )$] exist and are finite. Then we say #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] is #emph[piecewise continuous]. If moreover, #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] is differentiable at all but finitely many points, and #math.equation(block: false, alt: "f prime open parenthesis t close parenthesis")[$f^(′) ( t )$] is piecewise continuous, then #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] is said to be #emph[piecewise smooth]. #examplebox("Example 2")[][ The square wave function (4.3.1) is piecewise smooth on #math.equation(block: false, alt: "[ minus π , π ]")[$[ − π , π ]$] or any other interval. In such a case we simply say that the function is #emph[piecewise smooth]. ] #examplebox("Example 3")[][ The function #math.equation(block: false, alt: "f open parenthesis t close parenthesis equals | t |")[$f ( t ) = | t |$] is piecewise smooth. ] #examplebox("Example 4")[][ The function #math.equation(block: false, alt: "f open parenthesis t close parenthesis equals the fraction 1 over t")[$f ( t ) = frac(1, t)$] is not piecewise smooth on #math.equation(block: false, alt: "[ minus 1 , 1 ]")[$[ − 1 , 1 ]$] (or any other interval containing zero). In fact, it is not even piecewise continuous. ] #examplebox("Example 5")[][ The function #math.equation(block: false, alt: "f open parenthesis t close parenthesis equals the cube root of t")[$f ( t ) = root(3, t)$] is not piecewise smooth on #math.equation(block: false, alt: "[ minus 1 , 1 ]")[$[ − 1 , 1 ]$] (or any other interval containing zero). #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] is continuous, but the derivative of #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] is unbounded near zero and hence not piecewise continuous. Piecewise smooth functions have an easy answer on the convergence of the Fourier series. ] #notebox("Note", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Suppose #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] is a #math.equation(block: false, alt: "2 L")[$2 L$]-periodic piecewise smooth function. Let #math.equation(block: true, alt: "the fraction a sub 0 over 2 plus ∑ n equals 1 infinity a sub n cos open parenthesis the fraction n π over L t close parenthesis plus b sub n sin open parenthesis the fraction n π over L t close parenthesis")[$frac(a_(0), 2) + ∑_(n = 1)^(∞) a_(n) cos ( frac(n π, L) t ) + b_(n) sin ( frac(n π, L) t )$] be the Fourier series for #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$]. Then the series converges for all #math.equation(block: false, alt: "t")[$t$]. If #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] is continuous near #math.equation(block: false, alt: "t")[$t$], then #math.equation(block: true, alt: "f open parenthesis t close parenthesis equals the fraction a sub 0 over 2 plus ∑ n equals 1 infinity a sub n cos open parenthesis the fraction n π over L t close parenthesis plus b sub n sin open parenthesis the fraction n π over L t close parenthesis .")[$f ( t ) = frac(a_(0), 2) + ∑_(n = 1)^(∞) a_(n) cos ( frac(n π, L) t ) + b_(n) sin ( frac(n π, L) t ) .$] Otherwise #math.equation(block: true, alt: "the fraction f open parenthesis t minus close parenthesis plus f open parenthesis t plus close parenthesis over 2 equals the fraction a sub 0 over 2 plus ∑ n equals 1 infinity a sub n cos open parenthesis the fraction n π over L t close parenthesis plus b sub n sin open parenthesis the fraction n π over L t close parenthesis .")[$frac(f ( t − ) + f ( t + ), 2) = frac(a_(0), 2) + ∑_(n = 1)^(∞) a_(n) cos ( frac(n π, L) t ) + b_(n) sin ( frac(n π, L) t ) .$] ] If we happen to have that #math.equation(block: false, alt: "f open parenthesis t close parenthesis equals the fraction f open parenthesis t minus close parenthesis plus f open parenthesis t plus close parenthesis over 2")[$f ( t ) = frac(f ( t − ) + f ( t + ), 2)$] at all the discontinuities, the Fourier series converges to #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] everywhere. We can always just redefine #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] by changing the value at each discontinuity appropriately. Then we can write an equals sign between #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] and the series without any worry. We mentioned this fact briefly at the end last section. Note that the theorem does not say how fast the series converges. Think back to the discussion of the Gibbs phenomenon in the last section. The closer you get to the discontinuity, the more terms you need to take to get an accurate approximation to the function. === Differentiation and Integration of Fourier Series Not only does Fourier series converge nicely, but it is easy to differentiate and integrate the series. We can do this just by differentiating or integrating term by term. #notebox("Note", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Suppose #math.equation(block: true, alt: "f open parenthesis t close parenthesis equals the fraction a sub 0 over 2 plus ∑ n equals 1 infinity a sub n cos open parenthesis the fraction n π over L t close parenthesis plus b sub n sin open parenthesis the fraction n π over L t close parenthesis")[$f ( t ) = frac(a_(0), 2) + ∑_(n = 1)^(∞) a_(n) cos ( frac(n π, L) t ) + b_(n) sin ( frac(n π, L) t )$] is a piecewise smooth continuous function and the derivative #math.equation(block: false, alt: "f prime open parenthesis t close parenthesis")[$f^(′) ( t )$] is piecewise smooth. Then the derivative can be obtained by differentiating term by term, #math.equation(block: true, alt: "f prime open parenthesis t close parenthesis equals ∑ n equals 1 infinity the fraction minus a sub n n π over L sin open parenthesis the fraction n π over L t close parenthesis plus the fraction b sub n n π over L cos open parenthesis the fraction n π over L t close parenthesis .")[$f^(′) ( t ) = ∑_(n = 1)^(∞) frac(− a_(n) n π, L) sin ( frac(n π, L) t ) + frac(b_(n) n π, L) cos ( frac(n π, L) t ) .$] ] It is important that the function is continuous. It can have corners, but no jumps. Otherwise the differentiated series will fail to converge. For an exercise, take the series obtained for the square wave and try to differentiate the series. Similarly, we can also integrate a Fourier series. #notebox("Note", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Suppose #math.equation(block: true, alt: "f open parenthesis t close parenthesis equals the fraction a sub 0 over 2 plus ∑ n equals 1 infinity a sub n cos open parenthesis the fraction n π over L t close parenthesis plus b sub n sin open parenthesis the fraction n π over L t close parenthesis")[$f ( t ) = frac(a_(0), 2) + ∑_(n = 1)^(∞) a_(n) cos ( frac(n π, L) t ) + b_(n) sin ( frac(n π, L) t )$] is a piecewise smooth function. Then the antiderivative is obtained by antidifferentiating term by term and so #math.equation(block: true, alt: "F open parenthesis t close parenthesis equals the fraction a sub 0 t over 2 plus C plus ∑ n equals 1 infinity the fraction a sub n L over n π sin open parenthesis the fraction n π over L t close parenthesis plus the fraction minus b sub n L over n π cos open parenthesis the fraction n π over L t close parenthesis ,")[$F ( t ) = frac(a_(0) t, 2) + C + ∑_(n = 1)^(∞) frac(a_(n) L, n π) sin ( frac(n π, L) t ) + frac(− b_(n) L, n π) cos ( frac(n π, L) t ) ,$] where #math.equation(block: false, alt: "F prime open parenthesis t close parenthesis equals f open parenthesis t close parenthesis")[$F^(′) ( t ) = f ( t )$] and #math.equation(block: false, alt: "C")[$C$] is an arbitrary constant. ] Note that the series for #math.equation(block: false, alt: "F open parenthesis t close parenthesis")[$F ( t )$] is no longer a Fourier series as it contains the #math.equation(block: false, alt: "the fraction a sub 0 t over 2")[$frac(a_(0) t, 2)$] term. The antiderivative of a periodic function need no longer be periodic and so we should not expect a Fourier series. === Rates of Convergence and Smoothness Let us do an example of a periodic function with one derivative everywhere. #examplebox("Example 6")[][ Take the function #math.equation(block: true, alt: "open parenthesis t plus 1 close parenthesis t i f minus 1 less than t less than or equal to 0 ,; open parenthesis 1 minus t close parenthesis t i f 0 less than t less than or equal to 1 ,")[$( t + 1 ) t upright(i) upright(f) − 1 < upright(t) ≤ 0 , \ ( 1 − t ) t upright(i) upright(f) 0 < upright(t) ≤ 1 ,$] and extend to a 2-periodic function. The plot is given in Figure #math.equation(block: false, alt: "3")[$3$]. #figure(figph[Plot of a smooth blue wave over t from -2 to 2 that repeats every 2 units, crossing zero at every integer with rounded crests of about 0.25 and troughs of about -0.25, and no corners or jumps.], alt: "Plot of a smooth blue wave over t from -2 to 2 that repeats every 2 units, crossing zero at every integer with rounded crests of about 0.25 and troughs of about -0.25, and no corners or jumps.", caption: [Figure #math.equation(block: false, alt: "3")[$3$]: Smooth #math.equation(block: false, alt: "2")[$2$]-periodic function.]) Note that this function has one derivative everywhere, but it does not have a second derivative whenever #math.equation(block: false, alt: "t")[$t$] is an integer. ] #notebox("Your Turn", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Compute #math.equation(block: false, alt: "f double prime open parenthesis 0 plus close parenthesis")[$f^(″) ( 0 + )$] and #math.equation(block: false, alt: "f double prime open parenthesis 0 minus close parenthesis")[$f^(″) ( 0 − )$]. ] Let us compute the Fourier series coefficients. The actual computation involves several integration by parts and is left to student. #math.equation(block: true, alt: "a sub 0 equals ∫ minus 1 1 f open parenthesis t close parenthesis d t equals ∫ minus 1 0 open parenthesis t plus 1 close parenthesis t d t plus ∫ 0 1 open parenthesis 1 minus t close parenthesis t d t equals 0 ,; a sub n equals ∫ minus 1 1 f open parenthesis t close parenthesis cos open parenthesis n π t close parenthesis d t equals ∫ minus 1 0 open parenthesis t plus 1 close parenthesis t cos open parenthesis n π t close parenthesis d t plus ∫ 0 1 open parenthesis 1 minus t close parenthesis t cos open parenthesis n π t close parenthesis d t equals 0; b sub n equals ∫ minus 1 1 f open parenthesis t close parenthesis sin open parenthesis n π t close parenthesis d t equals ∫ minus 1 0 open parenthesis t plus 1 close parenthesis t sin open parenthesis n π t close parenthesis d t plus ∫ 0 1 o")[$a_(0) = ∫_(− 1)^(1) f ( t ) d t = ∫_(− 1)^(0) ( t + 1 ) t d t + ∫_(0)^(1) ( 1 − t ) t d t = 0 , \ a_(n) = ∫_(− 1)^(1) f ( t ) cos ( n π t ) d t = ∫_(− 1)^(0) ( t + 1 ) t cos ( n π t ) d t + ∫_(0)^(1) ( 1 − t ) t cos ( n π t ) d t = 0 \ b_(n) = ∫_(− 1)^(1) f ( t ) sin ( n π t ) d t = ∫_(− 1)^(0) ( t + 1 ) t sin ( n π t ) d t + ∫_(0)^(1) ( 1 − t ) t sin ( n π t ) d t \ = frac(4 ( 1 − ( − 1 )^(n) ), π^(3) n^(3)) = \{ frac(8, π^(3) n^(3)) & " " upright(i) upright(f) " " italic(n) " " upright(i) upright(s) " " upright(o) upright(d) upright(d) , \ 0 & " " upright(i) upright(f) " " italic(n) " " upright(i) upright(s) " " upright(e) upright(v) upright(e) upright(n) .$] That is, the series is #math.equation(block: true, alt: "∑ n equals 1 n o d d infinity the fraction 8 over π cubed n cubed sin open parenthesis n π t close parenthesis .")[$∑_(limits(n = 1)_(n " " upright(o) upright(d) upright(d)))^(∞) frac(8, π^(3) n^(3)) sin ( n π t ) .$] This series converges very fast. If you plot up to the third harmonic, that is the function #math.equation(block: true, alt: "the fraction 8 over π cubed sin open parenthesis π t close parenthesis plus the fraction 8 over 27 π cubed sin open parenthesis 3 π t close parenthesis ,")[$frac(8, π^(3)) sin ( π t ) + frac(8, 27 π^(3)) sin ( 3 π t ) ,$] it is almost indistinguishable from the plot of #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$] in Figure #math.equation(block: false, alt: "3")[$3$]. In fact, the coefficient #math.equation(block: false, alt: "the fraction 8 over 27 π cubed")[$frac(8, 27 π^(3))$] is already just 0.0096 (approximately). The reason for this behavior is the #math.equation(block: false, alt: "n cubed")[$n^(3)$] term in the denominator. The coefficients #math.equation(block: false, alt: "b sub n")[$b_(n)$] in this case go to zero as fast as #math.equation(block: false, alt: "the fraction 1 over n cubed")[$frac(1, n^(3))$] goes to zero. For functions constructed piecewise from polynomials as above, it is generally true that if you have one derivative, the Fourier coefficients will go to zero approximately like #math.equation(block: false, alt: "the fraction 1 over n cubed")[$frac(1, n^(3))$]. If you have only a continuous function, then the Fourier coefficients will go to zero as #math.equation(block: false, alt: "the fraction 1 over n squared")[$frac(1, n^(2))$]. If you have discontinuities, then the Fourier coefficients will go to zero approximately as #math.equation(block: false, alt: "the fraction 1 over n")[$frac(1, n)$]. For more general functions the story is somewhat more complicated but the same idea holds, the more derivatives you have, the faster the coefficients go to zero. Similar reasoning works in reverse. If the coefficients go to zero like #math.equation(block: false, alt: "the fraction 1 over n squared")[$frac(1, n^(2))$] you always obtain a continuous function. If they go to zero like #math.equation(block: false, alt: "the fraction 1 over n cubed")[$frac(1, n^(3))$] you obtain an everywhere differentiable function. To justify this behavior, take for example the function defined by the Fourier series #math.equation(block: true, alt: "f open parenthesis t close parenthesis equals ∑ n equals 1 infinity the fraction 1 over n cubed sin open parenthesis n t close parenthesis .")[$f ( t ) = ∑_(n = 1)^(∞) frac(1, n^(3)) sin ( n t ) .$] When we differentiate term by term we notice #math.equation(block: true, alt: "f prime open parenthesis t close parenthesis equals ∑ n equals 1 infinity the fraction 1 over n squared cos open parenthesis n t close parenthesis .")[$f^(′) ( t ) = ∑_(n = 1)^(∞) frac(1, n^(2)) cos ( n t ) .$] Therefore, the coefficients now go down like #math.equation(block: false, alt: "the fraction 1 over n squared")[$frac(1, n^(2))$], which means that we have a continuous function. The derivative of #math.equation(block: false, alt: "f prime open parenthesis t close parenthesis")[$f^(′) ( t )$] is defined at most points, but there are points where #math.equation(block: false, alt: "f prime open parenthesis t close parenthesis")[$f^(′) ( t )$] is not differentiable. It has corners, but no jumps. If we differentiate again (where we can) we find that the function #math.equation(block: false, alt: "f double prime open parenthesis t close parenthesis")[$f^(″) ( t )$], now fails to be continuous (has jumps) #math.equation(block: true, alt: "f double prime open parenthesis t close parenthesis equals ∑ n equals 1 infinity the fraction minus 1 over n sin open parenthesis n t close parenthesis .")[$f^(″) ( t ) = ∑_(n = 1)^(∞) frac(− 1, n) sin ( n t ) .$] This function is similar to the sawtooth. If we tried to differentiate the series again we would obtain #math.equation(block: true, alt: "∑ n equals 1 infinity minus cos open parenthesis n t close parenthesis ,")[$∑_(n = 1)^(∞) − cos ( n t ) ,$] which does not converge! #notebox("Your Turn", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Use a computer to plot the series we obtained for #math.equation(block: false, alt: "f open parenthesis t close parenthesis")[$f ( t )$], #math.equation(block: false, alt: "f prime open parenthesis t close parenthesis")[$f^(′) ( t )$] and #math.equation(block: false, alt: "f double prime open parenthesis t close parenthesis")[$f^(″) ( t )$]. That is, plot say the first #math.equation(block: false, alt: "5")[$5$] harmonics of the functions. At what points does #math.equation(block: false, alt: "f double prime open parenthesis t close parenthesis")[$f^(″) ( t )$] have the discontinuities? ]