diff --git a/documents/by-course/math-4b/course-notes/dvd.typ b/documents/by-course/math-4b/course-notes/dvd.typ deleted file mode 100644 index 06deb27..0000000 --- a/documents/by-course/math-4b/course-notes/dvd.typ +++ /dev/null @@ -1,341 +0,0 @@ -#import "@preview/ctheorems:1.1.3": * -#import "@preview/showybox:2.0.3": showybox - -#let colors = ( - rgb("#9E9E9E"), - rgb("#F44336"), - rgb("#E91E63"), - rgb("#9C27B0"), - rgb("#673AB7"), - rgb("#3F51B5"), - rgb("#2196F3"), - rgb("#03A9F4"), - rgb("#00BCD4"), - rgb("#009688"), - rgb("#4CAF50"), - rgb("#8BC34A"), - rgb("#CDDC39"), - rgb("#FFEB3B"), - rgb("#FFC107"), - rgb("#FF9800"), - rgb("#FF5722"), - rgb("#795548"), - rgb("#9E9E9E"), -) - -#let dvdtyp( - title: "", - subtitle: "", - author: "", - abstract: none, - bibliography: none, - paper-size: "a4", - date: "today", - body, -) = { - set document(title: title, author: author) - - set std.bibliography(style: "springer-mathphys", title: [References]) - - show: thmrules - - set page( - numbering: "1", - number-align: center, - header: locate(loc => { - if loc.page() == 1 { - return - } - box(stroke: (bottom: 0.7pt), inset: 0.4em)[#text( - font: "New Computer Modern", - )[ - *#author* --- #datetime.today().display("[day] [month repr:long] [year]") - #h(1fr) - *#title* - ]] - }), - paper: paper-size, - // The margins depend on the paper size. - margin: ( - left: (86pt / 216mm) * 100%, - right: (86pt / 216mm) * 100%, - ), - ) - - - set heading(numbering: "1.") - show heading: it => { - set text(font: "Libertinus Serif") - - block[ - #if it.numbering != none { - text(rgb("#2196F3"), weight: 500)[#sym.section] - - text(rgb("#2196F3"))[#counter(heading).display() ] - } - #it.body - #v(0.5em) - ] - } - - set text(font: "New Computer Modern", lang: "en") - - show math.equation: set text(weight: 400) - - - // Title row. - align(center)[ - #set text(font: "Libertinus Serif") - #block(text(weight: 700, 26pt, title)) - - - #if subtitle != none [#text(12pt, weight: 500)[#( - subtitle - )]] - - #if author != none [#text(16pt)[#smallcaps(author)]] - #v(1.2em, weak: true) - - #if date == "today" { - datetime.today().display("[day] [month repr:long] [year]") - } else { - date - } - - ] - - if abstract != none [ - #v(2.2em) - #set text(font: "Libertinus Serif") - #pad(x: 14%, abstract) - #v(1em) - ] - - set outline(fill: repeat[~.], indent: 1em) - - show outline: set heading(numbering: none) - show outline: set par(first-line-indent: 0em) - - show outline.entry.where(level: 1): it => { - text(font: "Libertinus Serif", rgb("#2196F3"))[#strong[#it]] - } - show outline.entry: it => { - h(1em) - text(font: "Libertinus Serif", rgb("#2196F3"))[#it] - } - - - // Main body. - set par( - justify: true, - spacing: 0.65em, - first-line-indent: 2em, - ) - - body - - // Display the bibliography, if any is given. - if bibliography != none { - show std.bibliography: set text(footnote-size) - show std.bibliography: set block(above: 11pt) - show std.bibliography: pad.with(x: 0.5pt) - bibliography - } -} - -#let thmtitle(t, color: rgb("#000000")) = { - return text( - font: "Libertinus Serif", - weight: "semibold", - fill: color, - )[#t] -} -#let thmname(t, color: rgb("#000000")) = { - return text(font: "Libertinus Serif", fill: color)[(#t)] -} - -#let thmtext(t, color: rgb("#000000")) = { - let a = t.children - if (a.at(0) == [ ]) { - a.remove(0) - } - t = a.join() - - return text(font: "New Computer Modern", fill: color)[#t] -} - -#let thmbase( - identifier, - head, - ..blockargs, - supplement: auto, - padding: (top: 0.5em, bottom: 0.5em), - namefmt: x => [(#x)], - titlefmt: strong, - bodyfmt: x => x, - separator: [. \ ], - base: "heading", - base_level: none, -) = { - if supplement == auto { - supplement = head - } - let boxfmt(name, number, body, title: auto, ..blockargs_individual) = { - if not name == none { - name = [ #namefmt(name)] - } else { - name = [] - } - if title == auto { - title = head - } - if not number == none { - title += " " + number - } - title = titlefmt(title) - body = [#pad(top: 2pt, bodyfmt(body))] - pad( - ..padding, - showybox( - width: 100%, - radius: 0.3em, - breakable: true, - padding: (top: 0em, bottom: 0em), - ..blockargs.named(), - ..blockargs_individual.named(), - [ - #title#name#titlefmt(separator)#body - ], - ), - ) - } - - let auxthmenv = thmenv( - identifier, - base, - base_level, - boxfmt, - ).with(supplement: supplement) - - return auxthmenv.with(numbering: "1.1") -} - -#let styled-thmbase = thmbase.with( - titlefmt: thmtitle, - namefmt: thmname, - bodyfmt: thmtext, -) - -#let builder-thmbox(color: rgb("#000000"), ..builderargs) = styled-thmbase.with( - titlefmt: thmtitle.with(color: color.darken(30%)), - bodyfmt: thmtext.with(color: color.darken(70%)), - namefmt: thmname.with(color: color.darken(30%)), - frame: ( - body-color: color.lighten(92%), - border-color: color.darken(10%), - thickness: 1.5pt, - inset: 1.2em, - radius: 0.3em, - ), - ..builderargs, -) - -#let builder-thmline( - color: rgb("#000000"), - ..builderargs, -) = styled-thmbase.with( - titlefmt: thmtitle.with(color: color.darken(30%)), - bodyfmt: thmtext.with(color: color.darken(70%)), - namefmt: thmname.with(color: color.darken(30%)), - frame: ( - body-color: color.lighten(92%), - border-color: color.darken(10%), - thickness: (left: 2pt), - inset: 1.2em, - radius: 0em, - ), - ..builderargs, -) - -#let problem-style = builder-thmbox( - color: colors.at(11), - shadow: (offset: (x: 2pt, y: 2pt), color: luma(70%)), -) - -#let exercise = problem-style("item", "Exercise") -#let problem = exercise - -#let theorem-style = builder-thmbox( - color: colors.at(6), - shadow: (offset: (x: 3pt, y: 3pt), color: luma(70%)), -) - -#let example-style = builder-thmbox( - color: colors.at(16), - shadow: (offset: (x: 3pt, y: 3pt), color: luma(70%)), -) - -#let theorem = theorem-style("item", "Theorem") -#let lemma = theorem-style("item", "Lemma") -#let corollary = theorem-style("item", "Corollary") - -#let definition-style = builder-thmline(color: colors.at(8)) - -// #let definition = definition-style("definition", "Definition") -#let proposition = definition-style("item", "Proposition") -#let remark = definition-style("item", "Remark") -#let observation = definition-style("item", "Observation") - -// #let example-style = builder-thmline(color: colors.at(16)) - -#let example = example-style("item", "Example") - -#let proof(body, name: none) = { - v(0.5em) - [_Proof_] - if name != none { - [ #thmname[#name]] - } - [.] - body - h(1fr) - - // Add a word-joiner so that the proof square and the last word before the - // 1fr spacing are kept together. - sym.wj - - // Add a non-breaking space to ensure a minimum amount of space between the - // text and the proof square. - sym.space.nobreak - - $square.stroked$ - v(0.5em) -} - -#let fact = thmplain( - "item", - "Fact", - titlefmt: content => [*#content.*], - namefmt: content => [_(#content)._], - separator: [], - inset: 0pt, - padding: (bottom: 0.5em, top: 0.5em), -) -#let abuse = thmplain( - "item", - "Abuse of Notation", - titlefmt: content => [*#content.*], - namefmt: content => [_(#content)._], - separator: [], - inset: 0pt, - padding: (bottom: 0.5em, top: 0.5em), -) -#let definition = thmplain( - "item", - "Definition", - titlefmt: content => [*#content.*], - namefmt: content => [_(#content)._], - separator: [], - inset: 0pt, - padding: (bottom: 0.5em, top: 0.5em), -) diff --git a/documents/by-course/math-4b/course-notes/main.typ b/documents/by-course/math-4b/course-notes/main.typ index eabf3a0..6de8a5d 100644 --- a/documents/by-course/math-4b/course-notes/main.typ +++ b/documents/by-course/math-4b/course-notes/main.typ @@ -530,3 +530,259 @@ We can find a few particular solutions to our ODE, but how can we find all of th Now we have a system and we can solve it using standard linear algebra techniques. ] + += Principle of superposition, Wronskian complex roots + +== Review + +Recall: + +Second order ODE: + +$ + y'' = F(t,y,y') +$ + +Linear: + +$ + y'' + p(t) y' + q(t) y = g(t) +$ + +Homogenous: + +$ + y'' + p(t) y' + q(t) y = 0 +$ + +Constant coefficients: $a y'' + b y' + c y = 0$, with characteristic equation + +$ + a r^2 + b r + c = 0 +$ + +From this characteristic equation we determine either distinct real roots, +complex real roots, or repeated real roots. We already know what to do with +distinct real roots. + +$ + y'' + p(t) y' + q(t) y = 0 +$ + +The linear combination + +$ + y(t) = c_1 y_1 (t) + c_2 y_2 (t) +$ + +is a solution for any constants $c_1, c_2$. The solutions from a vector space! +Key: equation is linear and homogenous. + +#example[ + Consider the linear, homogenous equation + + $ + y'' + 5y' + 6y = 0 + $ + + We have two solutions: + + $ + y_1 (t) e^(-2t) + c_2 e^(-3t) + $ + + is a general solution. Are these all the solutions? +] + +== The Wronskian + +Given any initial values + +$ + y(t_0) y_0, y' (t_0) = y'_0 +$ + +Substitute in: + +$ + c_1 y_1(t_0) + c_2 y_2(t_0) = y_0 \ + c_1 y'_1 (t_0) + c_2 y'_2 (t_0) = y'_0 \ +$ + +We have a linear system for $c_1, c_2$: + +$ + mat(c_1 y_1(t_0), c_2 y_2(t_0); c_1 y'_1 (t_0), c_2 y'_2 (t_0)) vec(c_1, c_2) = vec(y_0, y'_0) +$ + +The linear system has a unique solution provided the determinant of the +coefficient matrix is nonzero: + +$ + mat(y_1(t_0), y_2(t_0); y'_1(t_0), y'_2(t_0)) != 0 +$ + +$ W = y_1(t_0) y'_2(t_0) - y_2(t_0) y'_1(t_0) != 0 $ + +#definition[ + This determinant $W$ is called the *Wronskian* of $y_1(t)$ and $y_2(t)$ at + the point $t_0$. +] + +#fact[ + If $W != 0$ at some point $t_0$, then it is nonzero throughout the interval $I$ where the solution is defined. +] + +To summarize our description of the solution space, if $y_1(t)$, $y_2(t)$ are two solutions of the linear homogenous ODE + +$ + y'' + p(t) y' + q(t) y = 0 +$ + +such that $W(y_1, y_2)$, then the constants $c_1$, $c_2$ can be uniquely determined so that + +$ + y(t) = c_1 y_1(t) + c_2 y_2 (t) +$ + +satisfies any initial condition + +$ + y(t_0) = y_0, y'(t_0) = y'_0 +$ + +$y(t)$ is the general solution. + +== Solution space with constant coefficients, distinct real roots + +Consider the 2nd order homogenous linear diffeq with constant coefficients. + +$ + a y'' + b y ' + c y = 0 +$ + +Suppose the characteristic equation + +$ + a r^2 + b r + c = 0 +$ + +has a pair of *distinct real roots* $r_1$, $r_2$. Then we have a pair of solutions + +$ + y_1(t) = e^(r_1 t), y_2(t) = e^(r_2 t) +$ + +Question: is this a fundamental set of solutions? + +Check Wronskian. + +$ + W = det mat(y_1(t_0), y_2(t_0); y'_1(t_0), y'_2(t_0)) = det mat(e^(r_1 t_0), e^(r_2 t_0); r_1 e^(r_1 t_0), r_2 e^(r_2 t_0)) = e^(r_1 t_0) e^(r_2 t_0) (r_2 - r_1) != 0 +$ + +since $r_1 != r_2$. + +The Wronskian of our two solutions is $!= 0$ so the general solution is indeed + +$ + y(t) = c_1 e^(r_1 t) + c_2 e^(r_2 t) +$ + +== 2nd order linear homogenous ODE, complex roots + +As usual consider +$ a y'' + b y' + c y = 0 $ + +with characteristic equation + +$ + a r^2 + b r + c = 0 +$ + +If $b^2 - 4a c < 0$, then solutions are complex numbers: + +$ + r_1 = lambda + i_mu, r_2 = lambda - i_mu +$ + +with + +$ + lambda = -b / (2a), mu = sqrt(4 a c - b^2) / (2a) != 0 +$ + +Complex solutions + +$ + z_1(t) = e^(r_1 t) = e^((lambda + i_mu) t) = e^(lambda t) e^(i_mu t), z_2(t) = e^(r_2 t) +$ + +What is $e^(i_mu t)$? + +Euler's formula: + +$ + e^(i theta) = cos theta + i sin theta +$ + +Using Euler's formula we can write + +$ + z_1(t) = e^(r_1 t) = e^((lambda + i_mu) t) = e^(lambda t) e^(i_mu t) = e^(lambda t) [cos mu t + i sin mu t] \ + z_2(t) = e^(r_2 t) = e^((lambda - i_mu) t) = e^(lambda t) e^(-i_mu t) = e^(lambda t) [cos mu t - i sin mu t] +$ + +Define + +$ + y_1(t) = 1 / 2 [z_1(t) + z_2(t)] = e^(lambda t) cos mu t, "real part of" z_1(t) \ + y_2(t) = 1 / (2i) [z_1(t) - z_2(t)] = e^(lambda t) sin mu t, "imaginary part of" z_1(t) \ +$ + +By the superposition principle, they are solutions. Are they a fundamental set +of solutions? Are they a basis for the solution space? + +Check the Wronskian: + +We see that it is nonzero, therefore, when $b^2 - 4 a c < 0$, the equation + +$ + a y'' + b y' + c y = 0 +$ + +has two real solutions + +$ + y_1(t) = e^(lambda t) cos mu t, y_2(t) = e^(lambda t) sin mu t +$ + +where + +$ + lambda = -b / (2a), mu = sqrt(4a c - b^2) / (2a) != 0 +$ + +The Wronskian of these solutions is nonzero, so $y_1$ and $y_2$ are a fundamental set of solutions. The general solution of the equation is + +$ + y(t) = c_1 e^(lambda t) cos mu t + c_2 e^(lambda t) sin mu t +$ + +== Amplitude and phase angle + +Given $c_1 cos(omega_0 t) + c_2 sin(omega_0 t)$, express it as a single cosine +function so we can graph it. Recall this formula: + +$ + cos(alpha - beta) = cos(alpha) cos(beta) + sin(alpha) sin(beta) +$ + +Write + +$ + c_1 cos(omega_0 t) + c_2 sin(omega_0 t) \ + = sqrt(c_1 ^2 + c_2 ^2) cos(omega_0 t - theta) = A cos(omega_0 t - theta) +$ + +where $A$ is the amplitude, $theta$ is the phase angle with $cos theta = (c_1)/sqrt(c_1^2 + c_2^2)$