Update cetz & ci

This commit is contained in:
2025-09-23 23:29:06 -07:00
parent 121780df6c
commit e5b0053465
17 changed files with 393 additions and 483 deletions

View File

@ -1,5 +1,5 @@
#import "@local/handout:0.1.0": *
#import "@preview/cetz:0.3.1"
#import "@preview/cetz:0.4.2"
// Shorthand, we'll be using these a lot.
@ -7,35 +7,31 @@
#let tm = sym.times.circle
#let graphgrid(inner_content) = {
align(
center,
box(
inset: 3mm,
cetz.canvas({
import cetz.draw: *
let x = 5.25
align(center, box(inset: 3mm, cetz.canvas({
import cetz.draw: *
let x = 5.25
grid(
(0, 0), (x, x), step: 0.75,
stroke: luma(100) + 0.3mm
)
grid(
(0, 0),
(x, x),
step: 0.75,
stroke: luma(100) + 0.3mm,
)
if (inner_content != none) {
inner_content
}
if (inner_content != none) {
inner_content
}
mark((0, x + 0.5), (0, x + 1), symbol: ">", fill: black, scale: 1)
mark((x + 0.5, 0), (x + 1, 0), symbol: ">", fill: black, scale: 1)
mark((0, x + 0.5), (0, x + 1), symbol: ">", fill: black, scale: 1)
mark((x + 0.5, 0), (x + 1, 0), symbol: ">", fill: black, scale: 1)
line(
(0, x + 0.25),
(0, 0),
(x + 0.25, 0),
stroke: 0.75mm + black,
)
}),
),
)
line(
(0, x + 0.25),
(0, 0),
(x + 0.25, 0),
stroke: 0.75mm + black,
)
})))
}
/// Adds extra padding to an equation.
@ -48,23 +44,16 @@
/// Note that there are newlines between the $ and content,
/// this gives us display math (which is what we want when using this macro)
#let eqnbox(eqn) = {
align(
center,
box(
inset: 3mm,
eqn,
),
)
align(center, box(
inset: 3mm,
eqn,
))
}
#let dotline(a, b) = {
cetz.draw.line(
a,
b,
stroke: (
dash: "dashed",
thickness: 0.5mm,
paint: ored,
),
)
cetz.draw.line(a, b, stroke: (
dash: "dashed",
thickness: 0.5mm,
paint: ored,
))
}

View File

@ -1,21 +1,18 @@
#import "@local/handout:0.1.0": *
#import "../macros.typ": *
#import "@preview/cetz:0.3.1"
#import "@preview/cetz:0.4.2"
= Tropical Polynomials
#definition()
A _polynomial_ is an expression formed by adding and multiplying numbers and a variable $x$. \
Every polynomial can be written as
#align(
center,
box(
inset: 3mm,
$
c_0 + c_1 x + c_2 x^2 + ... + c_n x^n
$,
),
)
#align(center, box(
inset: 3mm,
$
c_0 + c_1 x + c_2 x^2 + ... + c_n x^n
$,
))
for some nonnegative integer $n$ and coefficients $c_0, c_1, ..., c_n$. \
The _degree_ of a polynomial is the largest $n$ for which $c_n$ is nonzero.
@ -43,15 +40,12 @@ In this section, we will analyze tropical polynomials:
#definition()
A _tropical_ polynomial is a polynomial that uses tropical addition and multiplication. \
In other words, it is an expression of the form
#align(
center,
box(
inset: 3mm,
$
c_0 #tp (c_1 #tm x) #tp (c_2 #tm x^2) #tp ... #tp (c_n #tm x^n)
$,
),
)
#align(center, box(
inset: 3mm,
$
c_0 #tp (c_1 #tm x) #tp (c_2 #tm x^2) #tp ... #tp (c_n #tm x^n)
$,
))
where all exponents represent repeated tropical multiplication.
#pagebreak() // MARK: page
@ -66,7 +60,7 @@ Draw a graph of the tropical polynomial $f(x) = x^2 #tp 1x #tp 4$. \
#if_no_solutions(graphgrid(none))
#solution([
$f(x) = min(2x , 1+x, 4)$, which looks like:
$f(x) = min(2x, 1+x, 4)$, which looks like:
#graphgrid({
import cetz.draw: *
@ -90,15 +84,12 @@ Draw a graph of the tropical polynomial $f(x) = x^2 #tp 1x #tp 4$. \
#problem()
Now, factor $f(x) = x^2 #tp 1x #tp 4$ into two polynomials with degree 1. \
In other words, find $r$ and $s$ so that
#align(
center,
box(
inset: 3mm,
$
x^2 #tp 1x #tp 4 = (x #tp r)(x #tp s)
$,
),
)
#align(center, box(
inset: 3mm,
$
x^2 #tp 1x #tp 4 = (x #tp r)(x #tp s)
$,
))
we will call $r$ and $s$ the _roots_ of $f$.
@ -159,15 +150,19 @@ Find a factorization of $f$ in the form $a(x #tp r)(x#tp s)$.
#solution([
We (tropically) factor out $-2$ to get
#eqnbox($
f(x) = -2(x^2 #tp 2x #tp 10)
$)
#eqnbox(
$
f(x) = -2(x^2 #tp 2x #tp 10)
$,
)
by the same process as the previous problem, we get
#eqnbox($
f(x) = -2(x #tp 2)(x #tp 8)
$)
#eqnbox(
$
f(x) = -2(x #tp 2)(x #tp 8)
$,
)
])
#v(1fr)
@ -236,11 +231,11 @@ Graph $f(x) = 1x^2 #tp 3x #tp 5$.
#problem()
Find a factorization of $f$ in the form $a(x #tp r)(x#tp s)$.
#solution(
eqnbox($
#solution(eqnbox(
$
f(x) = 1x^2 #tp 3 x #tp 5 = 1(x #tp 2)^2
$),
)
$,
))
#v(1fr)
@ -263,23 +258,21 @@ Graph $f(x) = 2x^2 #tp 4x #tp 4$.
#if_no_solutions(graphgrid(none))
#solution(
graphgrid({
import cetz.draw: *
let step = 0.75
#solution(graphgrid({
import cetz.draw: *
let step = 0.75
dotline((0, 2 * step), (3 * step, 8 * step))
dotline((0, 4 * step), (5 * step, 8 * step))
dotline((0, 4 * step), (8 * step, 4 * step))
dotline((0, 2 * step), (3 * step, 8 * step))
dotline((0, 4 * step), (5 * step, 8 * step))
dotline((0, 4 * step), (8 * step, 4 * step))
line(
(0, 2 * step),
(1 * step, 4 * step),
(7.5 * step, 4 * step),
stroke: 1mm + oblue,
)
}),
)
line(
(0, 2 * step),
(1 * step, 4 * step),
(7.5 * step, 4 * step),
stroke: 1mm + oblue,
)
}))
#problem()
@ -325,7 +318,7 @@ Find a formula for $B$ in terms of $a$, $b$, and $c$. \
#solution([
If we want to factor $a(x^2 #tp (b-a)x #tp (c-a))$, we need to find $r$ and $s$ so that
- $min(r,s) = b-a$, and
- $min(r, s) = b-a$, and
- $r + s = c - a$
#v(2mm)
@ -341,9 +334,8 @@ Find a formula for $B$ in terms of $a$, $b$, and $c$. \
*Case 2:* If $b > (a + c #sym.div) 2$, then
$
accent(f, macron)(x)
&= a x^2 #tp ((a+c)/2)x #tp c \
&= a(x #tp (c-a)/2)^2
accent(f, macron)(x) & = a x^2 #tp ((a+c)/2)x #tp c \
& = a(x #tp (c-a)/2)^2
$
has the same graph as $f$, and thus $B = (a+c) #sym.div 2$

View File

@ -1,6 +1,6 @@
#import "@local/handout:0.1.0": *
#import "../macros.typ": *
#import "@preview/cetz:0.3.1"
#import "@preview/cetz:0.4.2"
= Tropical Cubic Polynomials
@ -131,15 +131,12 @@ Using the last three problems, find formulas for $B$ and $C$ in terms of $a$, $b
#problem()
What are the roots of the following polynomial?
#align(
center,
box(
inset: 3mm,
$
3 x^6 #tp 4 x^5 #tp 2 x^4 #tp x^3 #tp x^2 #tp 4 x #tp 5
$,
),
)
#align(center, box(
inset: 3mm,
$
3 x^6 #tp 4 x^5 #tp 2 x^4 #tp x^3 #tp x^2 #tp 4 x #tp 5
$,
))
#solution([
We have
@ -169,9 +166,8 @@ Find a formula for each $C_i$ in terms of $c_0, c_1, ..., c_n$.
#solution([
$
A_j
&= min_(l<=j<k)( (a_l - a_k) / (k-l) (k-j) + a_k ) \
&= min_(l<=j<k)( a_l (k-j) / (k-l) + a_k (j-l) / (k-l) )
A_j & = min_(l<=j<k)( (a_l - a_k) / (k-l) (k-j) + a_k ) \
& = min_(l<=j<k)( a_l (k-j) / (k-l) + a_k (j-l) / (k-l) )
$
#v(2mm)