auto-update(nvim): 2025-02-05 01:15:42
Some checks are pending
Deploy Quartz site to GitHub Pages using Nix / build (push) Waiting to run
Deploy Quartz site to GitHub Pages using Nix / deploy (push) Blocked by required conditions

This commit is contained in:
Youwen Wu 2025-02-05 01:15:43 -08:00
parent b329bd3a23
commit dc49fba1f8
Signed by: youwen5
GPG key ID: 865658ED1FE61EC3
2 changed files with 256 additions and 341 deletions

View file

@ -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),
)

View file

@ -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)$