#set document(title: "2.4 Mechanical Vibrations", 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")) == 2.4#h(0.6em)Mechanical Vibrations Let us look at some applications of linear second order constant coefficient equations. === Some examples #figure(figph[Diagram of a forced, damped mass-spring system: a hatched wall, spring k, block m, damping c on the surface, and an arrow F of t driving the block to the right.], alt: "Diagram of a forced, damped mass-spring system: a hatched wall, spring k, block m, damping c on the surface, and an arrow F of t driving the block to the right.", caption: [Figure #math.equation(block: false, alt: "1")[$1$]]) Our first example is a mass on a spring. Suppose we have a mass #math.equation(block: false, alt: "m greater than 0")[$m > 0$] (in kilograms) connected by a spring with spring constant #math.equation(block: false, alt: "k greater than 0")[$k > 0$] (in newtons per meter) to a fixed wall. There may be some external force #math.equation(block: false, alt: "F open parenthesis t close parenthesis")[$F ( t )$] (in newtons) acting on the mass. Finally, there is some friction measured by #math.equation(block: false, alt: "c greater than or equal to 0")[$c ≥ 0$] (in newton-seconds per meter) as the mass slides along the floor (or perhaps there is a damper connected). Let #math.equation(block: false, alt: "x")[$x$] be the displacement of the mass ( #math.equation(block: false, alt: "x equals 0")[$x = 0$] is the rest position), with #math.equation(block: false, alt: "x")[$x$] growing to the right (away from the wall). The force exerted by the spring is proportional to the compression of the spring by Hooke’s law. Therefore, it is #math.equation(block: false, alt: "k x")[$k x$] in the negative direction. Similarly the amount of force exerted by friction is proportional to the velocity of the mass. By Newton’s second law we know that force equals mass times acceleration and hence #math.equation(block: false, alt: "m x double prime equals F open parenthesis t close parenthesis minus c x prime minus k x")[$m x^(″) = F ( t ) − c x^(′) − k x$] or #math.equation(block: true, alt: "m x double prime plus c x prime plus k x equals F open parenthesis t close parenthesis")[$m x^(″) + c x^(′) + k x = F ( t )$] This is a linear second order constant coefficient ODE. We set up some terminology about this equation. We say the motion is + forced, if #math.equation(block: false, alt: "F ≢ 0")[$F ≢ 0$] (if #math.equation(block: false, alt: "F")[$F$] is not identically zero), + unforced or free, if #math.equation(block: false, alt: "F ≡ 0")[$F ≡ 0$] (if #math.equation(block: false, alt: "F")[$F$] is identically zero), + damped, if #math.equation(block: false, alt: "c greater than 0")[$c > 0$], and + undamped, if #math.equation(block: false, alt: "c equals 0")[$c = 0$]. This system appears in lots of applications even if it does not at first seem like it. Many real-world scenarios can be simplified to a mass on a spring. For example, a bungee jump setup is essentially a mass and spring system (you are the mass). It would be good if someone did the math before you jump off the bridge, right? Let us give two other examples. Here is an example for electrical engineers. Consider the pictured #math.equation(block: false, alt: "R L C")[$R L C$] circuit. There is a resistor with a resistance of #math.equation(block: false, alt: "R")[$R$] ohms, an inductor with an inductance of #math.equation(block: false, alt: "L")[$L$] henries, and a capacitor with a capacitance of #math.equation(block: false, alt: "C")[$C$] farads. There is also an electric source (such as a battery) giving a voltage of #math.equation(block: false, alt: "E open parenthesis t close parenthesis")[$E ( t )$] volts at time #math.equation(block: false, alt: "t")[$t$] (measured in seconds). Let #math.equation(block: false, alt: "Q open parenthesis t close parenthesis")[$Q ( t )$] be the charge in coulombs on the capacitor and #math.equation(block: false, alt: "I open parenthesis t close parenthesis")[$I ( t )$] be the current in the circuit. The relation between the two is #math.equation(block: false, alt: "Q prime equals I")[$Q^(′) = I$]. By elementary principles we find #math.equation(block: false, alt: "L I prime plus R I plus the fraction Q over C equals E")[$L I^(′) + R I + frac(Q, C) = E$]. We differentiate to get #math.equation(block: true, alt: "L I double prime open parenthesis t close parenthesis plus R I prime open parenthesis t close parenthesis plus the fraction 1 over C I open parenthesis t close parenthesis equals E prime open parenthesis t close parenthesis .")[$L I^(″) ( t ) + R I^(′) ( t ) + frac(1, C) I ( t ) = E^(′) ( t ) .$] #figure(figph[Diagram of a series circuit loop with a voltage source E, capacitor C, inductor L and resistor R in turn, so one current flows through all four.], alt: "Diagram of a series circuit loop with a voltage source E, capacitor C, inductor L and resistor R in turn, so one current flows through all four.", caption: [Figure #math.equation(block: false, alt: "2")[$2$]]) This is a nonhomogeneous second order constant coefficient linear equation. As #math.equation(block: false, alt: "L , R")[$L , R$], and #math.equation(block: false, alt: "C")[$C$] are all positive, this system behaves just like the mass and spring system. Position of the mass is replaced by current. Mass is replaced by inductance, damping is replaced by resistance, and the spring constant is replaced by one over the capacitance. The change in voltage becomes the forcing function—for constant voltage this is an unforced motion. Our next example behaves like a mass and spring system only approximately. Suppose a mass #math.equation(block: false, alt: "m")[$m$] hangs on a pendulum of length #math.equation(block: false, alt: "L")[$L$]. We seek an equation for the angle #math.equation(block: false, alt: "θ open parenthesis t close parenthesis")[$θ ( t )$] (in radians). Let #math.equation(block: false, alt: "g")[$g$] be the force of gravity. Elementary physics mandates that the equation is #math.equation(block: true, alt: "θ double prime plus the fraction g over L sin θ equals 0 .")[$θ^(″) + frac(g, L) sin θ = 0 .$] #figure(figph[Force diagram of a pendulum: rod of length L swung right of vertical by angle theta, bob m on an arc, with arrows for gravity m g, the tangential component m g sine theta, and m L theta double-prime opposing it.], alt: "Force diagram of a pendulum: rod of length L swung right of vertical by angle theta, bob m on an arc, with arrows for gravity m g, the tangential component m g sine theta, and m L theta double-prime opposing it.", caption: [Figure #math.equation(block: false, alt: "3")[$3$]]) Let us derive this equation using Newton's second law: force equals mass times acceleration. The acceleration is #math.equation(block: false, alt: "L θ double prime")[$L θ^(″)$] and mass is #math.equation(block: false, alt: "m")[$m$]. So #math.equation(block: false, alt: "m L θ double prime")[$m L θ^(″)$] has to be equal to the tangential component of the force given by the gravity, which is #math.equation(block: false, alt: "m g sin θ")[$m g sin θ$] in the opposite direction. So #math.equation(block: false, alt: "m L θ double prime equals minus m g sin θ")[$m L θ^(″) = − m g sin θ$]. The #math.equation(block: false, alt: "m")[$m$] curiously cancels from the equation. Now we make our approximation. For small #math.equation(block: false, alt: "θ")[$θ$] we have that approximately #math.equation(block: false, alt: "sin θ approximately equals θ")[$sin θ ≈ θ$]. This can be seen by looking at the graph. In Figure #math.equation(block: false, alt: "4")[$4$] we can see that for approximately #math.equation(block: false, alt: "minus 0.5 less than θ less than 0.5")[$− 0.5 < θ < 0.5$] (in radians) the graphs of #math.equation(block: false, alt: "sin θ")[$sin θ$] and #math.equation(block: false, alt: "θ")[$θ$] are almost the same. #figure(figph[Plot of a green line of slope 1 and a blue curve on axes from -1 to 1; the two are indistinguishable between about -0.5 and 0.5, and the blue ends near 0.84 at angle 1.], alt: "Plot of a green line of slope 1 and a blue curve on axes from -1 to 1; the two are indistinguishable between about -0.5 and 0.5, and the blue ends near 0.84 at angle 1.", caption: [Figure #math.equation(block: false, alt: "4")[$4$]: The graphs of #math.equation(block: false, alt: "sin θ")[$sin θ$] and #math.equation(block: false, alt: "θ")[$θ$] (in radians).]) Therefore, when the swings are small, #math.equation(block: false, alt: "θ")[$θ$] is small and we can model the behavior by the simpler linear equation #math.equation(block: true, alt: "θ double prime plus the fraction g over L θ equals 0 .")[$θ^(″) + frac(g, L) θ = 0 .$] The errors from this approximation build up. So after a long time, the state of the real-world system might be substantially different from our solution. Also we will see that in a mass-spring system, the amplitude is independent of the period. This is not true for a pendulum. Nevertheless, for reasonably short periods of time and small swings (that is, only small angles #math.equation(block: false, alt: "θ")[$θ$]), the approximation is reasonably good. In real-world problems it is often necessary to make these types of simplifications. We must understand both the mathematics and the physics of the situation to see if the simplification is valid in the context of the questions we are trying to answer. === Free Undamped Motion In this section we will only consider free or unforced motion, as we cannot yet solve nonhomogeneous equations. Let us start with undamped motion where #math.equation(block: false, alt: "c equals 0")[$c = 0$]. We have the equation #math.equation(block: true, alt: "m x double prime plus k x equals 0")[$m x^(″) + k x = 0$] If we divide by #math.equation(block: false, alt: "m")[$m$] and let #math.equation(block: false, alt: "w sub 0 equals the square root of the fraction k over m")[$w_(0) = sqrt(frac(k, m))$], then we can write the equation as #math.equation(block: true, alt: "x double prime plus w 0 2 x equals 0")[$x^(″) + w_(0)^(2) x = 0$] The general solution to this equation is #math.equation(block: true, alt: "x open parenthesis t close parenthesis equals A cos open parenthesis w sub 0 t close parenthesis plus B sin open parenthesis w sub 0 t close parenthesis")[$x ( t ) = A cos ( w_(0) t ) + B sin ( w_(0) t )$] By a trigonometric identity, we have that for two different constants #math.equation(block: false, alt: "C")[$C$] and #math.equation(block: false, alt: "γ")[$γ$], we have #math.equation(block: true, alt: "A cos open parenthesis w sub 0 t close parenthesis plus B sin open parenthesis w sub 0 t close parenthesis equals C cos open parenthesis w sub 0 t minus γ close parenthesis")[$A cos ( w_(0) t ) + B sin ( w_(0) t ) = C cos ( w_(0) t − γ )$] It is not hard to compute that #math.equation(block: false, alt: "C equals the square root of A squared plus B squared")[$C = sqrt(A^(2) + B^(2))$] and #math.equation(block: false, alt: "tan γ equals the fraction B over A")[$tan γ = frac(B, A)$]. Therefore, we let #math.equation(block: false, alt: "C")[$C$] and #math.equation(block: false, alt: "γ")[$γ$] be our arbitrary constants and write #math.equation(block: false, alt: "x open parenthesis t close parenthesis equals C cos open parenthesis w sub 0 t minus γ close parenthesis")[$x ( t ) = C cos ( w_(0) t − γ )$]. #notebox("Your Turn", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Justify the above identity and verify the equations for #math.equation(block: false, alt: "C")[$C$] and #math.equation(block: false, alt: "γ")[$γ$]. Hint: Start with #math.equation(block: false, alt: "cos open parenthesis α minus β close parenthesis equals cos open parenthesis α close parenthesis cos open parenthesis β close parenthesis plus sin open parenthesis α close parenthesis sin open parenthesis β close parenthesis")[$cos ( α − β ) = cos ( α ) cos ( β ) + sin ( α ) sin ( β )$] and multiply by #math.equation(block: false, alt: "C")[$C$]. Then think what should #math.equation(block: false, alt: "α")[$α$] and #math.equation(block: false, alt: "β")[$β$] be. ] While it is generally easier to use the first form with #math.equation(block: false, alt: "A")[$A$] and #math.equation(block: false, alt: "B")[$B$] to solve for the initial conditions, the second form is much more natural. The constants #math.equation(block: false, alt: "C")[$C$] and #math.equation(block: false, alt: "γ")[$γ$] have very nice interpretation. We look at the form of the solution #math.equation(block: true, alt: "x open parenthesis t close parenthesis equals C cos open parenthesis w sub 0 t minus γ close parenthesis")[$x ( t ) = C cos ( w_(0) t − γ )$] We can see that the amplitude is #math.equation(block: false, alt: "C")[$C$], #math.equation(block: false, alt: "w sub 0")[$w_(0)$] is the (angular) frequency, and #math.equation(block: false, alt: "γ")[$γ$] is the so-called phase shift. The phase shift just shifts the graph left or right. We call #math.equation(block: false, alt: "w sub 0")[$w_(0)$] the natural (angular) frequency. This entire setup is usually called simple harmonic motion. Let us pause to explain the word angular before the word frequency. The units of #math.equation(block: false, alt: "w sub 0")[$w_(0)$] are radians per unit time, not cycles per unit time as is the usual measure of frequency. Because we know one cycle is #math.equation(block: false, alt: "2 π")[$2 π$] radians, the usual frequency is given by #math.equation(block: false, alt: "the fraction w sub 0 over 2 π")[$frac(w_(0), 2 π)$]. It is simply a matter of where we put the constant #math.equation(block: false, alt: "2 π")[$2 π$], and that is a matter of taste. The period of the motion is one over the frequency (in cycles per unit time) and hence #math.equation(block: false, alt: "the fraction 2 π over w sub 0")[$frac(2 π, w_(0))$]. That is the amount of time it takes to complete one full oscillation. #examplebox("Example 1")[][ Suppose that #math.equation(block: false, alt: "m equals 2 k g")[$m = 2 k g$] and #math.equation(block: false, alt: "k equals 8 the fraction N over m")[$k = 8 frac(N, m)$]. The whole mass and spring setup is sitting on a truck that was traveling at #math.equation(block: false, alt: "1 the fraction m over s")[$1 frac(m, s)$]. The truck crashes and hence stops. The mass was held in place #math.equation(block: false, alt: "0.5")[$0.5$] meters forward from the rest position. During the crash the mass gets loose. That is, the mass is now moving forward at #math.equation(block: false, alt: "1 the fraction m over s")[$1 frac(m, s)$], while the other end of the spring is held in place. The mass therefore starts oscillating. What is the frequency of the resulting oscillation and what is the amplitude. The units are the mks units (meters-kilograms-seconds). The setup means that the mass was at half a meter in the positive direction during the crash and relative to the wall the spring is mounted to, the mass was moving forward (in the positive direction) at #math.equation(block: false, alt: "1 the fraction m over s")[$1 frac(m, s)$]. This gives us the initial conditions. So the equation with initial conditions is #math.equation(block: true, alt: "2 x double prime plus 8 x equals 0 , x open parenthesis 0 close parenthesis equals 0.5 , x prime open parenthesis 0 close parenthesis equals 1")[$2 x^(″) + 8 x = 0 , #h(1em) x ( 0 ) = 0.5 , #h(1em) x^(′) ( 0 ) = 1$] We can directly compute #math.equation(block: false, alt: "w sub 0 equals the square root of the fraction k over m equals the square root of 4 equals 2")[$w_(0) = sqrt(frac(k, m)) = sqrt(4) = 2$]. Hence the angular frequency is 2. The usual frequency in Hertz (cycles per second) is #math.equation(block: false, alt: "the fraction 2 over 2 π equals the fraction 1 over π approximately equals 0.318")[$frac(2, 2 π) = frac(1, π) ≈ 0.318$]. The general solution is #math.equation(block: true, alt: "x open parenthesis t close parenthesis equals A cos open parenthesis 2 t close parenthesis plus B sin open parenthesis 2 t close parenthesis")[$x ( t ) = A cos ( 2 t ) + B sin ( 2 t )$] Letting #math.equation(block: false, alt: "x open parenthesis 0 close parenthesis equals 0.5")[$x ( 0 ) = 0.5$] means #math.equation(block: false, alt: "A equals 0.5")[$A = 0.5$]. Then #math.equation(block: false, alt: "x prime open parenthesis t close parenthesis equals minus 2 open parenthesis 0.5 close parenthesis sin open parenthesis 2 t close parenthesis plus 2 B cos open parenthesis 2 t close parenthesis")[$x^(′) ( t ) = − 2 ( 0.5 ) sin ( 2 t ) + 2 B cos ( 2 t )$]. Letting #math.equation(block: false, alt: "x prime open parenthesis 0 close parenthesis equals 1")[$x^(′) ( 0 ) = 1$] we get #math.equation(block: false, alt: "B equals 0.5")[$B = 0.5$]. Therefore, the amplitude is #math.equation(block: false, alt: "C equals the square root of A squared plus B squared equals the square root of 0.25 plus 0.25 equals the square root of 0.5 approximately equals 0.707")[$C = sqrt(A^(2) + B^(2)) = sqrt(0.25 + 0.25) = sqrt(0.5) ≈ 0.707$]. The solution is #math.equation(block: true, alt: "x open parenthesis t close parenthesis equals 0.5 cos open parenthesis 2 t close parenthesis plus 0.5 sin open parenthesis 2 t close parenthesis")[$x ( t ) = 0.5 cos ( 2 t ) + 0.5 sin ( 2 t )$] A plot of #math.equation(block: false, alt: "x open parenthesis t close parenthesis")[$x ( t )$] is shown in Figure #math.equation(block: false, alt: "5")[$5$]. #figure(figph[Plot of a blue sinusoid against time 0 to 10 with constant amplitude about 0.72 and period 3.1, about three cycles with no decay.], alt: "Plot of a blue sinusoid against time 0 to 10 with constant amplitude about 0.72 and period 3.1, about three cycles with no decay.", caption: [Figure #math.equation(block: false, alt: "5")[$5$]: Simple undamped oscillation.]) In general, for free undamped motion, a solution of the form ] #math.equation(block: true, alt: "x open parenthesis t close parenthesis equals A cos open parenthesis w sub 0 t close parenthesis plus B sin open parenthesis w sub 0 t close parenthesis")[$x ( t ) = A cos ( w_(0) t ) + B sin ( w_(0) t )$] corresponds to the initial conditions #math.equation(block: false, alt: "x open parenthesis 0 close parenthesis equals A")[$x ( 0 ) = A$] and #math.equation(block: false, alt: "x prime open parenthesis 0 close parenthesis equals w sub 0 B")[$x^(′) ( 0 ) = w_(0) B$]. Therefore, it is easy to figure out #math.equation(block: false, alt: "A")[$A$] and #math.equation(block: false, alt: "B")[$B$] from the initial conditions. The amplitude and the phase shift can then be computed from #math.equation(block: false, alt: "A")[$A$] and #math.equation(block: false, alt: "B")[$B$]. In the example, we have already found the amplitude #math.equation(block: false, alt: "C")[$C$]. Let us compute the phase shift. We know that #math.equation(block: false, alt: "tan γ equals the fraction B over A equals 1")[$tan γ = frac(B, A) = 1$]. We take the arctangent of 1 and get approximately 0.785. We still need to check if this #math.equation(block: false, alt: "γ")[$γ$] is in the correct quadrant (and add #math.equation(block: false, alt: "π")[$π$] to #math.equation(block: false, alt: "γ")[$γ$] if it is not). Since both #math.equation(block: false, alt: "A")[$A$] and #math.equation(block: false, alt: "B")[$B$] are positive, then #math.equation(block: false, alt: "γ")[$γ$] should be in the first quadrant, and 0.785 radians really is in the first quadrant. #notebox("Note", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ #emph[Note] Many calculators and computer software do not only have the atan function for arctangent, but also what is sometimes called atan2. This function takes two arguments, #math.equation(block: false, alt: "B")[$B$] and #math.equation(block: false, alt: "A")[$A$], and returns a #math.equation(block: false, alt: "γ")[$γ$] in the correct quadrant for you. ] === Free Damped Motion Let us now focus on damped motion. Let us rewrite the equation #math.equation(block: true, alt: "m x double prime plus c x prime plus k x equals 0")[$m x^(″) + c x^(′) + k x = 0$] as #math.equation(block: true, alt: "x double prime plus 2 p x prime plus w 0 2 x equals 0")[$x^(″) + 2 p x^(′) + w_(0)^(2) x = 0$] where #math.equation(block: true, alt: "w sub 0 equals the square root of the fraction k over m , p equals the fraction c over 2 m")[$w_(0) = sqrt(frac(k, m)) , #h(1em) p = frac(c, 2 m)$] The characteristic equation is #math.equation(block: true, alt: "r squared plus 2 p r plus w 0 2 equals 0")[$r^(2) + 2 p r + w_(0)^(2) = 0$] Using the quadratic formula we get that the roots are #math.equation(block: true, alt: "r equals minus p ± the square root of p squared minus w 0 2")[$r = − p ± sqrt(p^(2) − w_(0)^(2))$] The form of the solution depends on whether we get complex or real roots. We get real roots if and only if the following number is nonnegative: #math.equation(block: true, alt: "p squared minus w 0 2 equals open parenthesis the fraction c over 2 m close parenthesis squared minus the fraction k over m equals the fraction c squared minus 4 k m over 4 m squared")[$p^(2) − w_(0)^(2) = attach(( frac(c, 2 m) ), t: 2) − frac(k, m) = frac(c^(2) − 4 k m, 4 m^(2))$] The sign of #math.equation(block: false, alt: "p squared minus w 0 2")[$p^(2) − w_(0)^(2)$] is the same as the sign of #math.equation(block: false, alt: "c squared minus 4 k m")[$c^(2) − 4 k m$]. Thus we get real roots if and only if #math.equation(block: false, alt: "c squared minus 4 k m")[$c^(2) − 4 k m$] is nonnegative, or in other words if #math.equation(block: false, alt: "c squared greater than or equal to 4 k m")[$c^(2) ≥ 4 k m$]. ==== Overdamping When #math.equation(block: false, alt: "c squared minus 4 k m greater than 0")[$c^(2) − 4 k m > 0$], we say the system is overdamped. In this case, there are two distinct real roots #math.equation(block: false, alt: "r sub 1")[$r_(1)$] and #math.equation(block: false, alt: "r sub 2")[$r_(2)$]. Notice that both roots are negative. As #math.equation(block: false, alt: "the square root of p squared minus w 0 2")[$sqrt(p^(2) − w_(0)^(2))$] is always less than #math.equation(block: false, alt: "P")[$P$], then #math.equation(block: false, alt: "minus P ± the square root of P squared minus w 0 2")[$− P ± sqrt(P^(2) − w_(0)^(2))$] is negative. The solution is #math.equation(block: true, alt: "x open parenthesis t close parenthesis equals C sub 1 e to the power r sub 1 t plus C sub 2 e to the power r sub 2 t")[$x ( t ) = C_(1) e^(r_(1) t) + C_(2) e^(r_(2) t)$] Since #math.equation(block: false, alt: "r sub 1 , r sub 2")[$r_(1) , r_(2)$] are negative, #math.equation(block: false, alt: "x open parenthesis t close parenthesis → 0")[$x ( t ) → 0$] as #math.equation(block: false, alt: "t → infinity")[$t → ∞$]. Thus the mass will tend towards the rest position as time goes to infinity. For a few sample plots for different initial conditions (Figure #math.equation(block: false, alt: "6")[$6$]). #figure(figph[Three solution curves over time 0 to 100, all starting at 1 and settling to zero without oscillating: blue first rises to about 1.57, green falls monotonically, red dips to about -0.13.], alt: "Three solution curves over time 0 to 100, all starting at 1 and settling to zero without oscillating: blue first rises to about 1.57, green falls monotonically, red dips to about -0.13.", caption: [Figure #math.equation(block: false, alt: "6")[$6$]: Overdamped motion for several different initial conditions.]) Do note that no oscillation happens. In fact, the graph will cross the #math.equation(block: false, alt: "x")[$x$] axis at most once. To see why, we try to solve #math.equation(block: false, alt: "0 equals C sub 1 e to the power r sub 1 t plus C sub 2 e to the power r sub 2 t")[$0 = C_(1) e^(r_(1) t) + C_(2) e^(r_(2) t)$]. Therefore, #math.equation(block: false, alt: "C sub 1 e to the power r sub 1 t equals minus C sub 2 e to the power r sub 2 t")[$C_(1) e^(r_(1) t) = − C_(2) e^(r_(2) t)$] and using laws of exponents we obtain #math.equation(block: true, alt: "the fraction minus C sub 1 over C sub 2 equals e to the power open parenthesis r sub 2 minus r sub 1 close parenthesis t")[$frac(− C_(1), C_(2)) = e^(( r_(2) − r_(1) ) t)$] This equation has at most one solution #math.equation(block: false, alt: "t greater than or equal to 0")[$t ≥ 0$]. For some initial conditions the graph will never cross the #math.equation(block: false, alt: "x")[$x$] axis, as is evident from the sample graphs. #examplebox("Example 2")[][ Suppose the mass is released from rest. That is #math.equation(block: false, alt: "x open parenthesis 0 close parenthesis equals x sub 0")[$x ( 0 ) = x_(0)$] and #math.equation(block: false, alt: "x prime open parenthesis 0 close parenthesis equals 0")[$x^(′) ( 0 ) = 0$]. Then #math.equation(block: true, alt: "x open parenthesis t close parenthesis equals the fraction x sub 0 over r sub 1 minus r sub 2 open parenthesis r sub 1 e to the power r sub 2 t minus r sub 2 e to the power r sub 1 t close parenthesis")[$x ( t ) = frac(x_(0), r_(1) − r_(2)) ( r_(1) e^(r_(2) t) − r_(2) e^(r_(1) t) )$] It is not hard to see that this satisfies the initial conditions. ] ==== Critical damping When #math.equation(block: false, alt: "c squared minus 4 k m equals 0")[$c^(2) − 4 k m = 0$], we say the system is critically damped. In this case, there is one root of multiplicity 2 and this root is #math.equation(block: false, alt: "minus P")[$− P$]. Therefore, our solution is #math.equation(block: true, alt: "x open parenthesis t close parenthesis equals C sub 1 e to the power minus p t plus C sub 2 t e to the power minus p t")[$x ( t ) = C_(1) e^(− p t) + C_(2) t e^(− p t)$] The behavior of a critically damped system is very similar to an overdamped system. After all a critically damped system is in some sense a limit of overdamped systems. Since these equations are really only an approximation to the real world, in reality we are never critically damped, it is a place we can only reach in theory. We are always a little bit underdamped or a little bit overdamped. It is better not to dwell on critical damping. ==== Underdamping #figure(figph[Plot of a blue underdamped oscillation over time 0 to 30 starting at 1, period about 6.3, peaks shrinking through 0.53, 0.29, 0.17 and 0.09 between green and red exponential envelopes.], alt: "Plot of a blue underdamped oscillation over time 0 to 30 starting at 1, period about 6.3, peaks shrinking through 0.53, 0.29, 0.17 and 0.09 between green and red exponential envelopes.", caption: [Figure #math.equation(block: false, alt: "7")[$7$]: Underdamped motion with the envelope curves shown.]) When #math.equation(block: false, alt: "c squared minus 4 k m less than 0")[$c^(2) − 4 k m < 0$], we say the system is underdamped. In this case, the roots are complex. #math.equation(block: true, alt: "r equals minus p ± the square root of p squared minus w 0 2; equals minus p ± the square root of minus 1 the square root of w 0 2 minus p squared; equals minus p ± i w sub 1")[$r = − p ± sqrt(p^(2) − w_(0)^(2)) \ = − p ± sqrt(− 1) sqrt(w_(0)^(2) − p^(2)) \ = − p ± i w_(1)$] where #math.equation(block: false, alt: "w sub 1 equals the square root of w 0 2 minus p squared")[$w_(1) = sqrt(w_(0)^(2) − p^(2))$]. Our solution is #math.equation(block: true, alt: "x open parenthesis t close parenthesis equals e to the power minus p t open parenthesis A cos open parenthesis w sub 1 t close parenthesis plus B sin open parenthesis w sub 1 t close parenthesis")[$x \( t \) = e^(− p t) \( A cos \( w_(1) t \) + B sin \( w_(1) t \)$] or #math.equation(block: true, alt: "x open parenthesis t close parenthesis equals C e to the power minus p t cos open parenthesis w sub 1 t minus γ close parenthesis")[$x ( t ) = C e^(− p t) cos ( w_(1) t − γ )$] An example plot is given in Figure #math.equation(block: false, alt: "7")[$7$]. Note that we still have that #math.equation(block: false, alt: "x open parenthesis t close parenthesis → 0")[$x ( t ) → 0$] as #math.equation(block: false, alt: "t → infinity")[$t → ∞$]. In the figure we also show the #emph[envelope curves] #math.equation(block: false, alt: "C e to the power minus p t")[$C e^(− p t)$] and #math.equation(block: false, alt: "minus C e to the power p t")[$− C e^(p t)$]. The solution is the oscillating line between the two envelope curves. The envelope curves give the maximum amplitude of the oscillation at any given point in time. For example if you are bungee jumping, you are really interested in computing the envelope curve so that you do not hit the concrete with your head. Free motion for m = k = 1, so p = c/2 and w0 = 1. The solid curve is x(t) = 3e^(-pt)cos(w1 t) with w1 = sqrt(1 - c^2/4); the dashed curves are the envelopes +/-3e^(-pt), and because the phase shift is 0 the envelope touches the solution at every crest. Slide c down to 0 and the envelopes flatten into horizontal lines and the curve becomes the simple undamped oscillation of Figure 5. Raise c and w1 shrinks, exactly as the text predicts, until at c = 2 (c^2 = 4km) the upper envelope has collapsed onto the solution; past that the cosine becomes a cosh, the envelopes drop away, and what is left is the non-oscillating decay of Figure 6. {"functions":\[{"color":"\#1f4e79","domain":\[0,12\],"expression":"3\*exp(-c\*x/2)\*cos(sqrt(1-c^2/4)\*x)","expression2":"","id":"underdamped-branch","inequality":"lt","lineDash":\[\],"lineWidth":2.5,"mode":"cartesian","tMax":10,"tMin":-10,"variable":"x","visible":true},{"color":"\#1f4e79","domain":\[0,12\],"expression":"3\*exp(-c\*x/2)\*cosh(sqrt(c^2/4-1)\*x)","expression2":"","id":"overdamped-branch","inequality":"lt","lineDash":\[\],"lineWidth":2.5,"mode":"cartesian","tMax":10,"tMin":-10,"variable":"x","visible":true},{"color":"\#b8442a","domain":\[0,12\],"expression":"3\*exp(-c\*x/2) + 0\*sqrt(1-c^2/4)","expression2":"","id":"envelope-upper","inequality":"lt","lineDash":\[6,4\],"lineWidth":1.5,"mode":"cartesian","tMax":10,"tMin":-10,"variable":"x","visible":true},{"color":"\#b8442a","domain":\[0,12\],"expression":"-3\*exp(-c\*x/2) + 0\*sqrt(1-c^2/4)","expression2":"","id":"envelope-lower","inequality":"lt","lineDash":\[6,4\],"lineWidth":1.5,"mode":"cartesian","tMax":10,"tMin":-10,"variable":"x","visible":true}\],"grid":{"axisColor":"\#333333","gridColor":"\#cccccc","majorSpacing":1,"minorGridColor":"\#eeeeee","showAxes":true,"showLabels":true},"parameters":\[{"id":"param-c","label":"Damping c","max":3,"min":0,"name":"c","step":0.05,"unit":"N\\u00b7s/m","value":0.5}\],"title":"Damped free vibration and envelope curves, m = k = 1","version":1,"viewport":{"centerX":5.9,"centerY":0,"scale":61}} The phase shift #math.equation(block: false, alt: "γ")[$γ$] just shifts the graph left or right but within the envelope curves (the envelope curves do not change if #math.equation(block: false, alt: "γ")[$γ$] changes). Finally note that the angular pseudo-frequency#math.equation(block: false, alt: "to the power 1")[$1$] (we do not call it a frequency since the solution is not really a periodic function) #math.equation(block: false, alt: "w sub 1")[$w_(1)$] becomes smaller when the damping #math.equation(block: false, alt: "c")[$c$] (and hence #math.equation(block: false, alt: "P")[$P$]) becomes larger. This makes sense. When we change the damping just a little bit, we do not expect the behavior of the solution to change dramatically. If we keep making #math.equation(block: false, alt: "c")[$c$] larger, then at some point the solution should start looking like the solution for critical damping or overdamping, where no oscillation happens. So if #math.equation(block: false, alt: "c squared")[$c^(2)$] approaches #math.equation(block: false, alt: "4 k m")[$4 k m$], we want #math.equation(block: false, alt: "w sub 1")[$w_(1)$] to approach 0. On the other hand when #math.equation(block: false, alt: "c")[$c$] becomes smaller, #math.equation(block: false, alt: "w sub 1")[$w_(1)$] approaches #math.equation(block: false, alt: "w sub 0")[$w_(0)$] ( #math.equation(block: false, alt: "w sub 1")[$w_(1)$] is always smaller than #math.equation(block: false, alt: "w sub 0")[$w_(0)$] ), and the solution looks more and more like the steady periodic motion of the undamped case. The envelope curves become flatter and flatter as #math.equation(block: false, alt: "c")[$c$] (and hence #math.equation(block: false, alt: "P")[$P$] ) goes to 0. === Footnotes \[1\] We do not call #math.equation(block: false, alt: "ω sub 1")[$ω_(1)$] a frequency since the solution is not really a periodic function.