diff --git a/.agents/skills/zola/zola-solid.md b/.agents/skills/zola/zola-solid.md
index d6bb965..9265ab6 100644
--- a/.agents/skills/zola/zola-solid.md
+++ b/.agents/skills/zola/zola-solid.md
@@ -57,6 +57,17 @@ Prefer **bootstrap** components that `querySelector` existing markup over re-ren
3. Hard-refresh browser.
4. For production: `bun run build` then `wrangler deploy`.
+## KaTeX (math)
+
+| Use case | API | Where |
+|----------|-----|--------|
+| Chapter HTML with `\( … \)` / `\[ … \]` | `renderBookMath()` | `frontend/src/lib/katex.ts` — runs on load via `initBookMath()` in `main.tsx` |
+| Widget labels / dynamic formulas | `renderLatex()` + `innerHTML` | `import { renderLatex } from "@ofb/katex"` in `content/**/widgets/*.tsx` |
+| Captions with delimiter math | `renderMathInContainer(el)` | Same module; do not duplicate per chapter |
+
+- **CSS:** `js/katex.css` is linked from `base.html` on every page.
+- **Do not** add local `function renderLatex` or `import katex from "katex"` in widgets — use `@ofb/katex` only.
+
## Adding a feature
1. Add mount root in Tera template (empty `
` or use existing).
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e7ca932..6f7c38d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -111,6 +111,7 @@ strand = "Number & Algebra"
- Use shared classes: `book-prose`, `book-prose__heading`, `book-callout`, etc. Copy from `content/math/quadratic-equations/`.
- **Do not** mention DSE, IB, or other curriculum names in chapter HTML.
- Mount widgets with `` (filename without `.tsx` = `data-widget` value).
+- **Math (KaTeX):** write `\( … \)` and `\[ … \]` in HTML; prose is auto-rendered on chapter load. In widgets use `import { renderLatex } from "@ofb/katex"` — do not add a per-widget `renderLatex` helper.
- Reference synced assets with root-relative paths: `/chapters/math/your-chapter-slug/image.png` (chapter HTML is not processed as Tera)
### 4. Build and check
diff --git a/content/math/algebraic-fractions-formulas/widgets/formula-rearrange-demo.tsx b/content/math/algebraic-fractions-formulas/widgets/formula-rearrange-demo.tsx
index 2db9deb..a7ce7c1 100644
--- a/content/math/algebraic-fractions-formulas/widgets/formula-rearrange-demo.tsx
+++ b/content/math/algebraic-fractions-formulas/widgets/formula-rearrange-demo.tsx
@@ -1,14 +1,6 @@
-import katex from "katex";
+import { renderLatex } from "@ofb/katex";
import { createMemo, createSignal, For } from "solid-js";
-function renderLatex(latex: string, display = false) {
- return katex.renderToString(latex, {
- throwOnError: false,
- strict: "ignore",
- displayMode: display,
- });
-}
-
type FormulaId = "speed" | "density" | "ohm";
type SubjectId = string;
@@ -125,7 +117,7 @@ function FormulaRearrangeDemo() {
() => formula().subjects.find((s) => s.id === subjectId()) ?? formula().subjects[0]
);
- const resultHtml = createMemo(() => renderLatex(subject().result, true));
+ const resultHtml = createMemo(() => renderLatex(subject().result, { displayMode: true }));
const onFormulaChange = (id: FormulaId) => {
setFormulaId(id);
diff --git a/content/math/algebraic-fractions-formulas/widgets/fraction-simplify-demo.tsx b/content/math/algebraic-fractions-formulas/widgets/fraction-simplify-demo.tsx
index 77c29a0..b79b371 100644
--- a/content/math/algebraic-fractions-formulas/widgets/fraction-simplify-demo.tsx
+++ b/content/math/algebraic-fractions-formulas/widgets/fraction-simplify-demo.tsx
@@ -1,10 +1,6 @@
-import katex from "katex";
+import { renderLatex } from "@ofb/katex";
import { createMemo, createSignal, For } from "solid-js";
-function renderLatex(latex: string) {
- return katex.renderToString(latex, { throwOnError: false, strict: "ignore", displayMode: true });
-}
-
const PRESETS = [
{
id: "difference-squares",
@@ -32,16 +28,16 @@ const PRESETS = [
},
] as const;
+type PresetId = (typeof PRESETS)[number]["id"];
+
function FractionSimplifyDemo() {
- const [presetId, setPresetId] = createSignal(PRESETS[0].id);
+ const [presetId, setPresetId] = createSignal(PRESETS[0].id);
const preset = createMemo(() => PRESETS.find((p) => p.id === presetId()) ?? PRESETS[0]);
- const originalHtml = createMemo(() => renderLatex(preset().original));
- const factoredHtml = createMemo(() => renderLatex(preset().factored));
- const simplifiedHtml = createMemo(() => renderLatex(preset().simplified));
- const restrictionHtml = createMemo(() =>
- katex.renderToString(preset().restriction, { throwOnError: false, strict: "ignore" })
- );
+ const originalHtml = createMemo(() => renderLatex(preset().original, { displayMode: true }));
+ const factoredHtml = createMemo(() => renderLatex(preset().factored, { displayMode: true }));
+ const simplifiedHtml = createMemo(() => renderLatex(preset().simplified, { displayMode: true }));
+ const restrictionHtml = createMemo(() => renderLatex(preset().restriction));
return (
setPresetId(e.currentTarget.value)}
+ onChange={(e) => {
+ const next = PRESETS.find((p) => p.id === e.currentTarget.value);
+ if (next) setPresetId(next.id);
+ }}
>
{(p) => }
diff --git a/content/math/counting-and-numbers/widgets/addition-groups.tsx b/content/math/counting-and-numbers/widgets/addition-groups.tsx
index a3f5f27..74d5205 100644
--- a/content/math/counting-and-numbers/widgets/addition-groups.tsx
+++ b/content/math/counting-and-numbers/widgets/addition-groups.tsx
@@ -1,10 +1,6 @@
-import katex from "katex";
+import { renderLatex } from "@ofb/katex";
import { createMemo, createSignal, For } from "solid-js";
-function renderLatex(latex: string) {
- return katex.renderToString(latex, { throwOnError: false, strict: "ignore" });
-}
-
function DotPile(props: { count: number; label: string; class?: string }) {
return (
diff --git a/content/math/counting-and-numbers/widgets/multiplication-array.tsx b/content/math/counting-and-numbers/widgets/multiplication-array.tsx
index 2d87b68..40fd256 100644
--- a/content/math/counting-and-numbers/widgets/multiplication-array.tsx
+++ b/content/math/counting-and-numbers/widgets/multiplication-array.tsx
@@ -1,10 +1,6 @@
-import katex from "katex";
+import { renderLatex } from "@ofb/katex";
import { createMemo, createSignal, For } from "solid-js";
-function renderLatex(latex: string) {
- return katex.renderToString(latex, { throwOnError: false, strict: "ignore" });
-}
-
function MultiplicationArray() {
const [rows, setRows] = createSignal(3);
const [cols, setCols] = createSignal(2);
diff --git a/content/math/directed-numbers-rates/widgets/number-line.tsx b/content/math/directed-numbers-rates/widgets/number-line.tsx
index 4b55540..39a6156 100644
--- a/content/math/directed-numbers-rates/widgets/number-line.tsx
+++ b/content/math/directed-numbers-rates/widgets/number-line.tsx
@@ -1,6 +1,5 @@
-import katex from "katex";
+import { renderLatex, renderMathInContainer } from "@ofb/katex";
import { createEffect, createMemo, createSignal } from "solid-js";
-import { renderMathInContainer } from "../../../../frontend/src/lib/render-math";
const MIN = -10;
const MAX = 10;
@@ -13,10 +12,6 @@ function formatNum(n: number) {
return (Math.round(n * 100) / 100).toString();
}
-function renderLatex(latex: string) {
- return katex.renderToString(latex, { throwOnError: false, strict: "ignore" });
-}
-
function toX(value: number) {
const t = (value - MIN) / (MAX - MIN);
return PAD + t * PLOT;
diff --git a/content/math/directed-numbers-rates/widgets/ratio-demo.tsx b/content/math/directed-numbers-rates/widgets/ratio-demo.tsx
index ecd26f8..9cb4ea1 100644
--- a/content/math/directed-numbers-rates/widgets/ratio-demo.tsx
+++ b/content/math/directed-numbers-rates/widgets/ratio-demo.tsx
@@ -1,4 +1,4 @@
-import katex from "katex";
+import { renderLatex } from "@ofb/katex";
import { createMemo, createSignal } from "solid-js";
function formatNum(n: number) {
@@ -6,10 +6,6 @@ function formatNum(n: number) {
return (Math.round(n * 100) / 100).toString();
}
-function renderLatex(latex: string) {
- return katex.renderToString(latex, { throwOnError: false, strict: "ignore" });
-}
-
function RatioDemo() {
const [partA, setPartA] = createSignal(2);
const [partB, setPartB] = createSignal(5);
diff --git a/content/math/linear-equations-two-unknowns/_index.md b/content/math/linear-equations-two-unknowns/_index.md
new file mode 100644
index 0000000..811e190
--- /dev/null
+++ b/content/math/linear-equations-two-unknowns/_index.md
@@ -0,0 +1,374 @@
++++
+title = "Linear equations in two unknowns"
+description = "Solve pairs of linear equations by substitution, elimination, and graphs; classify unique, parallel, and coincident cases."
+template = "chapter.html"
+weight = 10
+[extra]
+subject = "math"
+chapter_id = "linear-equations-two-unknowns"
+strand = "Number & Algebra"
++++
+
+
+
+ A system of linear equations in two unknowns is a pair of equations in
+ variables \(x\) and \(y\), where each equation is linear (the highest power of each variable is
+ 1). A solution is an ordered pair \((x, y)\) that satisfies
+ both equations at the same time.
+
+
+
+
Assumed knowledge
+
+
Expand and collect like terms, e.g. \(2(x+3) = 2x + 6\).
+
Substitute a value into an expression, e.g. replace \(x\) by \(4\) in \(3x - 1\).
+
Add or subtract equations term by term when both sides are equal.
+
+
+
+
Standard form
+
+ A convenient form is
+ \[ ax + by = c, \qquad dx + ey = f, \]
+ where \(a, b, c, d, e, f\) are constants. The same system can be written in other equivalent
+ forms — for example \(y = 2x + 1\) is the same as \(-2x + y = 1\).
+
+
+
Substitution
+
+ Substitution means isolate one unknown in one equation, then replace that
+ expression in the other equation.
+
+
Example. Solve
+
+ \[ \begin{cases} y = 2x + 1 \\ x + y = 7 \end{cases} \]
+
+
+ From the first equation, \(y = 2x + 1\). Substitute into the second:
+ \[ x + (2x + 1) = 7 \Rightarrow 3x + 1 = 7 \Rightarrow 3x = 6 \Rightarrow x = 2. \]
+ Then \(y = 2(2) + 1 = 5\). The solution is \((2, 5)\).
+
+
+ Check: \(2(2)+1 = 5\) and \(2 + 5 = 7\).
+
+
+
Elimination
+
+ Elimination adds or subtracts the equations so that one unknown cancels. You
+ may need to multiply one or both equations first so that the coefficients of \(x\) or \(y\) match
+ in size (one positive, one negative).
+
+
Example. Solve
+
+ \[ \begin{cases} x + y = 5 \\ 2x - y = 1 \end{cases} \]
+
+
+ The coefficients of \(y\) are \(1\) and \(-1\), so add the equations:
+ \[ (x+y) + (2x-y) = 5 + 1 \Rightarrow 3x = 6 \Rightarrow x = 2. \]
+ Substitute into \(x + y = 5\): \(2 + y = 5\), so \(y = 3\). Solution: \((2, 3)\).
+
+
+
Graphical interpretation
+
+ Each equation \(ax + by = c\) (with \(b \neq 0\)) can be rearranged to
+ \(y = -\frac{a}{b}x + \frac{c}{b}\), which is a straight line. The solution of the system is
+ the point where the two lines meet — their intersection.
+
+
+
+
+
+
Lines
+
Algebraic picture
+
Solutions
+
+
+
+
+
Intersect at one point
+
Different slopes
+
Exactly one \((x, y)\)
+
+
+
Parallel, distinct
+
Same slope, different intercepts
+
No solution
+
+
+
Coincident (same line)
+
One equation is a multiple of the other
+
Infinitely many
+
+
+
+
+
+
Try it — graph explorer
+
+ Adjust the two lines or use presets. Read off the intersection and how the classification changes
+ when the lines are parallel or coincident.
+
+
+
+
+
+
+
Try it — step-by-step solver
+
+ Pick a preset system and watch substitution or elimination steps. Systems with no unique
+ solution show an explanation instead of incorrect steps.
+
+
+
+
+
+
+
Word problems
+
+ For story problems, define unknowns clearly, write two independent equations, then solve
+ by substitution, elimination, or a graph.
+
+
Example (tickets). Adult tickets cost \$12 and child tickets \$7. A group buys
+ 10 tickets for \$95. How many of each type?
+
+ Let \(a\) be the number of adult tickets and \(c\) the number of child tickets. Then
+ \(a + c = 10\) and \(12a + 7c = 95\). From the first, \(c = 10 - a\). Substitute:
+ \[ 12a + 7(10 - a) = 95 \Rightarrow 12a + 70 - 7a = 95 \Rightarrow 5a = 25 \Rightarrow a = 5, \]
+ so \(c = 5\). Five adult and five child tickets.
+
+
+
+
+
History
+
+ Problems that need two unknowns at once are ancient. The Chinese text
+ Nine Chapters on the Mathematical Art (around 200 BCE, with later commentary)
+ includes fangcheng methods — arranging coefficients in a table and eliminating
+ unknowns, much like modern elimination.
+
+
+ In the 9th century, al-Khwarizmi organised linear and quadratic problems in
+ systematic rules that spread to Europe. By the 17th century, Descartes linked
+ algebra with geometry: an equation in \(x\) and \(y\) describes a curve, so solving a system is
+ finding where two curves meet. Today, computers solve huge systems, but the same ideas — replace,
+ combine, or intersect — remain the core of school algebra.
+
+
+
Derivation
+
+
Why elimination preserves solutions
+
+ If \((x_0, y_0)\) satisfies both \(ax + by = c\) and \(dx + ey = f\), then any
+ linear combination of the two equations is still true at \((x_0, y_0)\). For example,
+ adding the left sides and adding the right sides gives
+ \[ (a+d)x + (b+e)y = c + f, \]
+ which \((x_0, y_0)\) also satisfies. Elimination chooses combinations so one unknown disappears,
+ leaving a single equation in one unknown. Multiplying an equation by a non-zero constant before
+ adding does not change the solution set either.
+
+
+
Why the graph solution is the intersection
+
+ The graph of \(ax + by = c\) is all points \((x, y)\) that make the equation true. A solution of
+ the system must lie on both graphs, so it must be a point common to both lines.
+ If the lines cross once, that point is the unique solution; if they never meet, there is no
+ solution; if they are the same line, every point on the line works.
+
+
+
Checkpoints
+
+ Pause and reason before continuing. Discuss with a partner or write your work in a notebook.
+
+
+
+
Checkpoint
+
+ In the graph explorer, use the “Parallel” preset. What does the status panel say about
+ solutions? Does the canvas show an intersection point?
+
+
+
+
+
Checkpoint
+
+ Solve \(y = 3x - 2\) and \(2x + y = 8\) by substitution without a calculator. Does your pair
+ \((x, y)\) satisfy both originals?
+
+
+
+
+
Checkpoint
+
+ For \(x + 2y = 8\) and \(2x + 4y = 16\), are the two equations independent, or is one a
+ multiple of the other? How many solutions do you expect?
+
+
+
+
+
Checkpoint
+
+ When eliminating, why do we sometimes subtract equations instead of add them? Give an
+ example where subtracting cancels \(x\).
+
+
+
+
+
Checkpoint
+
+ A shop sells notebooks for \$4 and pens for \$2. You buy 6 items for \$18. What two equations
+ describe this? Which method would you use first?
+
+
+
+
+
Checkpoint
+
+ In the step-by-step workbench, run elimination on the ticket-style preset. At which step does
+ \(y\) (or your chosen variable) disappear?
+
+
+
+
Applications
+
+
Ticket pricing
+
+ Cinemas and transport systems often use different prices for adults and children. If you know the
+ total number of tickets and the total cost, you have two equations in two unknowns — the counts
+ of each type. The same structure appears in fundraising dinners (plate vs concession) and sports
+ seating.
+
+
+
Mixtures and concentrations
+
+ A chemist may mix a \(20\%\) solution with a \(50\%\) solution to obtain 2 L of
+ \(35\%\) solution. Let \(x\) and \(y\) be the volumes (in litres) of the weaker and stronger
+ solutions. Then \(x + y = 2\) (total volume) and \(0.2x + 0.5y = 0.35 \times 2\) (total amount
+ of pure solute). Solving the system gives the recipe.
+
+
+
Two constraints in business
+
+ A small business might need at least 100 units to cover fixed costs and also stay within a
+ production cap of 150 units while hitting a revenue target. Each constraint is linear; the
+ feasible plan is where the constraints overlap — a preview of ideas used later in linear
+ programming.
+
+
+
Question bank
+
+ Work each question, then open the solution to check your reasoning. Difficulty increases through
+ the sets.
+
+
+
Easy
+
+
+ Solve by substitution: \(y = x + 2\) and \(x + y = 8\).
+
+
Answer: \((3, 5)\).
+
Steps: Substitute \(y = x + 2\) into \(x + y = 8\): \(x + (x+2) = 8\), so \(2x = 6\), \(x = 3\), \(y = 5\).
+
+
+
+
+ Solve by elimination: \(x + y = 6\) and \(x - y = 2\).
+
+
+
+
+ A purse has 12 coins, all 5¢ or 10¢, with total value 95¢. How many of each?
+
+
Answer: 5 coins at 5¢ and 7 coins at 10¢.
+
Steps: Let \(n\) be 5¢ coins and \(m\) be 10¢ coins. Then \(n + m = 12\) and \(5n + 10m = 95\). From the first, \(n = 12 - m\). Substitute: \(5(12-m) + 10m = 95\), \(60 - 5m + 10m = 95\), \(5m = 35\), \(m = 7\), \(n = 5\).
+
+
+
+
Hardcore
+
+
+ For what value of \(k\) does \(x + ky = 4\) and \(2x + 2ky = 8\) have infinitely many solutions?
+
+
Answer: Every \(k\) (the second equation is \(2\times\) the first).
+
Explanation: The lines are coincident for all \(k\) where the second is a multiple of the first; here they are always multiples, so infinitely many solutions.
+
+
+
+
+ Solve: \(\dfrac{x}{2} + y = 5\) and \(x - y = 1\).
+
+
Answer: \((4, 3)\).
+
Steps: Multiply the first equation by 2: \(x + 2y = 10\). With \(x - y = 1\), substitute \(x = 1 + y\) into \(x + 2y = 10\): \(1 + y + 2y = 10\), \(3y = 9\), \(y = 3\), \(x = 4\).
+
+
+
+
+ A rectangle has perimeter 26 cm. The length is 4 cm more than the width. Find the dimensions.
+
+ A system of linear equations in two unknowns is a pair of equations in
+ variables \(x\) and \(y\), where each equation is linear (the highest power of each variable is
+ 1). A solution is an ordered pair \((x, y)\) that satisfies
+ both equations at the same time.
+
+
+
+
Assumed knowledge
+
+
Expand and collect like terms, e.g. \(2(x+3) = 2x + 6\).
+
Substitute a value into an expression, e.g. replace \(x\) by \(4\) in \(3x - 1\).
+
Add or subtract equations term by term when both sides are equal.
+
+
+
+
Standard form
+
+ A convenient form is
+ \[ ax + by = c, \qquad dx + ey = f, \]
+ where \(a, b, c, d, e, f\) are constants. The same system can be written in other equivalent
+ forms — for example \(y = 2x + 1\) is the same as \(-2x + y = 1\).
+
+
+
Substitution
+
+ Substitution means isolate one unknown in one equation, then replace that
+ expression in the other equation.
+
+
Example. Solve
+
+ \[ \begin{cases} y = 2x + 1 \\ x + y = 7 \end{cases} \]
+
+
+ From the first equation, \(y = 2x + 1\). Substitute into the second:
+ \[ x + (2x + 1) = 7 \Rightarrow 3x + 1 = 7 \Rightarrow 3x = 6 \Rightarrow x = 2. \]
+ Then \(y = 2(2) + 1 = 5\). The solution is \((2, 5)\).
+
+
+ Check: \(2(2)+1 = 5\) and \(2 + 5 = 7\).
+
+
+
Elimination
+
+ Elimination adds or subtracts the equations so that one unknown cancels. You
+ may need to multiply one or both equations first so that the coefficients of \(x\) or \(y\) match
+ in size (one positive, one negative).
+
+
Example. Solve
+
+ \[ \begin{cases} x + y = 5 \\ 2x - y = 1 \end{cases} \]
+
+
+ The coefficients of \(y\) are \(1\) and \(-1\), so add the equations:
+ \[ (x+y) + (2x-y) = 5 + 1 \Rightarrow 3x = 6 \Rightarrow x = 2. \]
+ Substitute into \(x + y = 5\): \(2 + y = 5\), so \(y = 3\). Solution: \((2, 3)\).
+
+
+
Graphical interpretation
+
+ Each equation \(ax + by = c\) (with \(b \neq 0\)) can be rearranged to
+ \(y = -\frac{a}{b}x + \frac{c}{b}\), which is a straight line. The solution of the system is
+ the point where the two lines meet — their intersection.
+
+
+
+
+
+
Lines
+
Algebraic picture
+
Solutions
+
+
+
+
+
Intersect at one point
+
Different slopes
+
Exactly one \((x, y)\)
+
+
+
Parallel, distinct
+
Same slope, different intercepts
+
No solution
+
+
+
Coincident (same line)
+
One equation is a multiple of the other
+
Infinitely many
+
+
+
+
+
+
Try it — graph explorer
+
+ Adjust the two lines or use presets. Read off the intersection and how the classification changes
+ when the lines are parallel or coincident.
+
+
+
+
+
+
+
Try it — step-by-step solver
+
+ Pick a preset system and watch substitution or elimination steps. Systems with no unique
+ solution show an explanation instead of incorrect steps.
+
+
+
+
+
+
+
Word problems
+
+ For story problems, define unknowns clearly, write two independent equations, then solve
+ by substitution, elimination, or a graph.
+
+
Example (tickets). Adult tickets cost \$12 and child tickets \$7. A group buys
+ 10 tickets for \$95. How many of each type?
+
+ Let \(a\) be the number of adult tickets and \(c\) the number of child tickets. Then
+ \(a + c = 10\) and \(12a + 7c = 95\). From the first, \(c = 10 - a\). Substitute:
+ \[ 12a + 7(10 - a) = 95 \Rightarrow 12a + 70 - 7a = 95 \Rightarrow 5a = 25 \Rightarrow a = 5, \]
+ so \(c = 5\). Five adult and five child tickets.
+
+
diff --git a/content/math/linear-equations-two-unknowns/supplement.html b/content/math/linear-equations-two-unknowns/supplement.html
new file mode 100644
index 0000000..3c394cd
--- /dev/null
+++ b/content/math/linear-equations-two-unknowns/supplement.html
@@ -0,0 +1,234 @@
+
+
History
+
+ Problems that need two unknowns at once are ancient. The Chinese text
+ Nine Chapters on the Mathematical Art (around 200 BCE, with later commentary)
+ includes fangcheng methods — arranging coefficients in a table and eliminating
+ unknowns, much like modern elimination.
+
+
+ In the 9th century, al-Khwarizmi organised linear and quadratic problems in
+ systematic rules that spread to Europe. By the 17th century, Descartes linked
+ algebra with geometry: an equation in \(x\) and \(y\) describes a curve, so solving a system is
+ finding where two curves meet. Today, computers solve huge systems, but the same ideas — replace,
+ combine, or intersect — remain the core of school algebra.
+
+
+
Derivation
+
+
Why elimination preserves solutions
+
+ If \((x_0, y_0)\) satisfies both \(ax + by = c\) and \(dx + ey = f\), then any
+ linear combination of the two equations is still true at \((x_0, y_0)\). For example,
+ adding the left sides and adding the right sides gives
+ \[ (a+d)x + (b+e)y = c + f, \]
+ which \((x_0, y_0)\) also satisfies. Elimination chooses combinations so one unknown disappears,
+ leaving a single equation in one unknown. Multiplying an equation by a non-zero constant before
+ adding does not change the solution set either.
+
+
+
Why the graph solution is the intersection
+
+ The graph of \(ax + by = c\) is all points \((x, y)\) that make the equation true. A solution of
+ the system must lie on both graphs, so it must be a point common to both lines.
+ If the lines cross once, that point is the unique solution; if they never meet, there is no
+ solution; if they are the same line, every point on the line works.
+
+
+
Checkpoints
+
+ Pause and reason before continuing. Discuss with a partner or write your work in a notebook.
+
+
+
+
Checkpoint
+
+ In the graph explorer, use the “Parallel” preset. What does the status panel say about
+ solutions? Does the canvas show an intersection point?
+
+
+
+
+
Checkpoint
+
+ Solve \(y = 3x - 2\) and \(2x + y = 8\) by substitution without a calculator. Does your pair
+ \((x, y)\) satisfy both originals?
+
+
+
+
+
Checkpoint
+
+ For \(x + 2y = 8\) and \(2x + 4y = 16\), are the two equations independent, or is one a
+ multiple of the other? How many solutions do you expect?
+
+
+
+
+
Checkpoint
+
+ When eliminating, why do we sometimes subtract equations instead of add them? Give an
+ example where subtracting cancels \(x\).
+
+
+
+
+
Checkpoint
+
+ A shop sells notebooks for \$4 and pens for \$2. You buy 6 items for \$18. What two equations
+ describe this? Which method would you use first?
+
+
+
+
+
Checkpoint
+
+ In the step-by-step workbench, run elimination on the ticket-style preset. At which step does
+ \(y\) (or your chosen variable) disappear?
+
+
+
+
Applications
+
+
Ticket pricing
+
+ Cinemas and transport systems often use different prices for adults and children. If you know the
+ total number of tickets and the total cost, you have two equations in two unknowns — the counts
+ of each type. The same structure appears in fundraising dinners (plate vs concession) and sports
+ seating.
+
+
+
Mixtures and concentrations
+
+ A chemist may mix a \(20\%\) solution with a \(50\%\) solution to obtain 2 L of
+ \(35\%\) solution. Let \(x\) and \(y\) be the volumes (in litres) of the weaker and stronger
+ solutions. Then \(x + y = 2\) (total volume) and \(0.2x + 0.5y = 0.35 \times 2\) (total amount
+ of pure solute). Solving the system gives the recipe.
+
+
+
Two constraints in business
+
+ A small business might need at least 100 units to cover fixed costs and also stay within a
+ production cap of 150 units while hitting a revenue target. Each constraint is linear; the
+ feasible plan is where the constraints overlap — a preview of ideas used later in linear
+ programming.
+
+
+
Question bank
+
+ Work each question, then open the solution to check your reasoning. Difficulty increases through
+ the sets.
+
+
+
Easy
+
+
+ Solve by substitution: \(y = x + 2\) and \(x + y = 8\).
+
+
Answer: \((3, 5)\).
+
Steps: Substitute \(y = x + 2\) into \(x + y = 8\): \(x + (x+2) = 8\), so \(2x = 6\), \(x = 3\), \(y = 5\).
+
+
+
+
+ Solve by elimination: \(x + y = 6\) and \(x - y = 2\).
+
+
+
+
+ A purse has 12 coins, all 5¢ or 10¢, with total value 95¢. How many of each?
+
+
Answer: 5 coins at 5¢ and 7 coins at 10¢.
+
Steps: Let \(n\) be 5¢ coins and \(m\) be 10¢ coins. Then \(n + m = 12\) and \(5n + 10m = 95\). From the first, \(n = 12 - m\). Substitute: \(5(12-m) + 10m = 95\), \(60 - 5m + 10m = 95\), \(5m = 35\), \(m = 7\), \(n = 5\).
+
+
+
+
Hardcore
+
+
+ For what value of \(k\) does \(x + ky = 4\) and \(2x + 2ky = 8\) have infinitely many solutions?
+
+
Answer: Every \(k\) (the second equation is \(2\times\) the first).
+
Explanation: The lines are coincident for all \(k\) where the second is a multiple of the first; here they are always multiples, so infinitely many solutions.
+
+
+
+
+ Solve: \(\dfrac{x}{2} + y = 5\) and \(x - y = 1\).
+
+
Answer: \((4, 3)\).
+
Steps: Multiply the first equation by 2: \(x + 2y = 10\). With \(x - y = 1\), substitute \(x = 1 + y\) into \(x + 2y = 10\): \(1 + y + 2y = 10\), \(3y = 9\), \(y = 3\), \(x = 4\).
+
+
+
+
+ A rectangle has perimeter 26 cm. The length is 4 cm more than the width. Find the dimensions.
+