#set document(title: "1.3 Row Operations Preserve the Solution", author: "XYZ Homework") #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")) == 1.3#h(0.6em)Row Operations Preserve the Solution #notebox("Note", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ #emph[Objectives] - Explain why adding a multiple of one equation to another does not change the solution set. - Interpret each row operation as swapping one plane for a different plane through the same intersection. - Connect elimination's simplified equations to planes with especially simple orientations. ] Elimination — the algorithm you use to solve systems — rewrites equations aggressively: it scales them, adds them to each other, and throws the originals away. It feels like it ought to be dangerous. Why is it legal to replace an equation with some combination of equations and still claim you are solving #emph[the same problem]? The answer is geometric, and you can watch it. The figure below starts with the system #math.equation(block: false, alt: "z equals x plus y")[$z = x + y$] and #math.equation(block: false, alt: "z equals 2 x minus y plus 1")[$z = 2 x − y + 1$]: two planes crossing along the amber solution line. Hidden in the scene are two more planes. One is built from the #emph[sum] of the two equations, the other from #emph[twice the first minus the second]. They are genuinely different planes — different tilts, different appearance — and yet each contains the very same amber line. {"camera":{"fov":50,"position":\[6.5,5,4.5\],"projection":"perspective","target":\[0,0,0.5\]},"grid":{"axisColors":{"x":"\#ef4444","y":"\#22c55e","z":"\#3b82f6"},"divisions":10,"gridColor":"\#e5e7eb","showAxes":true,"showLabels":true,"size":10,"visible":true},"id":"21c4b7c6-90d4-48d6-9ea0-35bd404cf53f","metadata":{"alt\_text":"Two semi-transparent planes crossing along a thick amber line. Two more planes, hidden at first, can be toggled on: each is a combination of the first two equations, and each different-looking plane still passes exactly through the same amber line. There are no sliders; the reader toggles plane visibility.","created\_at":"2026-08-01T00:00:00.000Z","description":"Book scene: the system z = x + y, z = 2x - y + 1 with its solution line (t, (t+1)/2, 1.5t + 0.5), plus two hidden row-combination planes E1 + E2 (z = 1.5x + 0.5) and 2E1 - E2 (z = 3y - 1) that contain the same line.","tags":\["book","linear-algebra","row-operations","planes","systems"\],"updated\_at":"2026-08-01T00:00:00.000Z"},"objects":\[{"expression":"x + y","id":"ccfbca3a-8a76-4b9e-b368-dce29e88af27","kind":"explicit-surface","label":{"text":"E1: z = x + y","visible":true},"resolution":32,"style":{"colormap":"coolwarm","doubleSided":true,"opacity":0.5,"wireframe":false,"wireframeColor":"\#000000"},"visible":true,"xDomain":\[-2,2\],"yDomain":\[-2,2\]},{"expression":"2\*x - y + 1","id":"866a96ae-2095-402b-8ab2-220409335759","kind":"explicit-surface","label":{"text":"E2: z = 2x - y + 1","visible":true},"resolution":32,"style":{"colormap":"viridis","doubleSided":true,"opacity":0.5,"wireframe":false,"wireframeColor":"\#000000"},"visible":true,"xDomain":\[-2,2\],"yDomain":\[-2,2\]},{"expression":"1.5\*x + 0.5","id":"261b0ab1-21f7-4d82-9b39-15e0086bb26f","kind":"explicit-surface","label":{"text":"E1 + E2: z = 1.5x + 0.5","visible":true},"resolution":32,"style":{"colormap":"plasma","doubleSided":true,"opacity":0.5,"wireframe":false,"wireframeColor":"\#000000"},"visible":false,"xDomain":\[-2,2\],"yDomain":\[-2,2\]},{"expression":"3\*y - 1","id":"9cc9be9e-2dd8-4979-9ceb-0ecfb2125a41","kind":"explicit-surface","label":{"text":"2E1 - E2: z = 3y - 1","visible":true},"resolution":32,"style":{"colormap":"cividis","doubleSided":true,"opacity":0.5,"wireframe":false,"wireframeColor":"\#000000"},"visible":false,"xDomain":\[-2,2\],"yDomain":\[-2,2\]},{"id":"6c598749-f766-4f12-8736-94d7ded35747","kind":"parametric-curve","label":{"text":"solution line","visible":true},"samples":100,"style":{"color":"\#f59e0b","dash":\[\],"lineWidth":4},"tDomain":\[-2,2\],"visible":true,"xExpr":"t","yExpr":"(t + 1)/2","zExpr":"1.5\*t + 0.5"}\],"title":"Row operations preserve the solution","version":1} The planes of #math.equation(block: false, alt: "E sub 1")[$E_(1)$] and #math.equation(block: false, alt: "E sub 2")[$E_(2)$] meet along the amber solution line. Toggle the two hidden planes — each is a combination of #math.equation(block: false, alt: "E sub 1")[$E_(1)$] and #math.equation(block: false, alt: "E sub 2")[$E_(2)$], and each passes through the same line. === Explore the figure + With only the two original planes visible, orbit until the amber line reads clearly as their intersection. + Reveal the plane labeled #math.equation(block: false, alt: "E sub 1 plus E sub 2")[$E_(1) + E_(2)$]. It is tilted differently from both originals — yet watch how it threads the amber line exactly. + Hide #math.equation(block: false, alt: "E sub 2")[$E_(2)$] and look at the pair #math.equation(block: false, alt: "E sub 1")[$E_(1)$] with #math.equation(block: false, alt: "E sub 1 plus E sub 2")[$E_(1) + E_(2)$]. Their intersection is the #emph[same line as before]. This pair is a legal replacement for the original system. + Reveal the plane labeled #math.equation(block: false, alt: "2 E sub 1 minus E sub 2")[$2 E_(1) − E_(2)$] and check it too contains the line. Try viewing it edge-on: notice it does not tilt in the #math.equation(block: false, alt: "x")[$x$] direction at all. === Why combinations are safe Suppose a point #math.equation(block: false, alt: "open parenthesis x , y , z close parenthesis")[$( x , y , z )$] satisfies both #math.equation(block: false, alt: "E sub 1")[$E_(1)$] and #math.equation(block: false, alt: "E sub 2")[$E_(2)$], written in standard form as #math.equation(block: false, alt: "x plus y minus z equals 0")[$x + y − z = 0$] and #math.equation(block: false, alt: "2 x minus y minus z equals minus 1")[$2 x − y − z = − 1$]. Then it automatically satisfies any combination: adding the equations gives #math.equation(block: true, alt: "3 x minus 2 z equals minus 1")[$3 x − 2 z = − 1$] and forming twice the first minus the second gives #math.equation(block: true, alt: "3 y minus z equals 1")[$3 y − z = 1$] A point on both original planes has no choice but to lie on both new planes. And the reverse holds when we keep one original around: from #math.equation(block: false, alt: "E sub 1")[$E_(1)$] and #math.equation(block: false, alt: "E sub 1 plus E sub 2")[$E_(1) + E_(2)$] you can recover #math.equation(block: false, alt: "E sub 2")[$E_(2)$] by subtraction, so no solutions sneak in either. Replacing #math.equation(block: false, alt: "E sub 2")[$E_(2)$] by #math.equation(block: false, alt: "E sub 1 plus E sub 2")[$E_(1) + E_(2)$] neither loses nor gains a single point. That is the entire legality of elimination: #strong[each row operation swaps one plane for a different plane through the same intersection], so the intersection — the thing we are solving for — never moves. Look at what the two combination planes accomplish. The plane #math.equation(block: false, alt: "3 x minus 2 z equals minus 1")[$3 x − 2 z = − 1$] has no #math.equation(block: false, alt: "y")[$y$] in it: #math.equation(block: false, alt: "y")[$y$] has been #emph[eliminated], and the plane is correspondingly slack in the #math.equation(block: false, alt: "y")[$y$] direction. The plane #math.equation(block: false, alt: "3 y minus z equals 1")[$3 y − z = 1$] has no #math.equation(block: false, alt: "x")[$x$]. Elimination is not just legal — each step is chosen to produce a plane so simply oriented that you can read information straight off it. #examplebox("Example 1")[Read the solution line from the simplified planes][ Use the two combination equations #math.equation(block: false, alt: "3 x minus 2 z equals minus 1")[$3 x − 2 z = − 1$] and #math.equation(block: false, alt: "3 y minus z equals 1")[$3 y − z = 1$] to find a parametric description of the solution line, and confirm it matches the amber line #math.equation(block: false, alt: "open parenthesis t , open parenthesis t plus 1 close parenthesis / 2 , 1.5 t plus 0.5 close parenthesis")[$( t , #h(0.278em) ( t + 1 ) / 2 , #h(0.278em) 1.5 t + 0.5 )$]. From the first combination, #math.equation(block: false, alt: "z equals open parenthesis 3 x plus 1 close parenthesis / 2")[$z = ( 3 x + 1 ) / 2$]. Substitute into the second: #math.equation(block: false, alt: "3 y equals z plus 1 equals open parenthesis 3 x plus 3 close parenthesis / 2")[$3 y = z + 1 = ( 3 x + 3 ) / 2$], so #math.equation(block: false, alt: "y equals open parenthesis x plus 1 close parenthesis / 2")[$y = ( x + 1 ) / 2$]. Let #math.equation(block: false, alt: "x equals t")[$x = t$]. Then #math.equation(block: false, alt: "y equals open parenthesis t plus 1 close parenthesis / 2")[$y = ( t + 1 ) / 2$] and #math.equation(block: false, alt: "z equals open parenthesis 3 t plus 1 close parenthesis / 2 equals 1.5 t plus 0.5")[$z = ( 3 t + 1 ) / 2 = 1.5 t + 0.5$], which is precisely the amber line in the figure. Two simplified planes handed us the answer with almost no algebra. ] #notebox("Note", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Three operations are legal: swap two equations, multiply an equation by a nonzero constant, and add a multiple of one equation to another. Each is reversible, and that reversibility is exactly why the solution set is preserved in both directions. ]