#set document(title: "2.2 Homogeneous and Particular", 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")) == 2.2#h(0.6em)Homogeneous and Particular #notebox("Note", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ #emph[Objectives] - Distinguish a homogeneous system from its inhomogeneous counterpart. - Describe the full solution set as one particular solution plus every homogeneous solution. - Interpret that description geometrically as a translated span. ] Consider the system of two equations #math.equation(block: false, alt: "2 x minus y equals 4")[$2 x − y = 4$] and #math.equation(block: false, alt: "x plus y minus 6 z equals minus 4")[$x + y − 6 z = − 4$]. Chapter 1 tells us what to expect: two independent conditions on three unknowns leave a line of solutions. This section is about the #emph[structure] of that line — a structure shared by the solution set of every linear system, of any size. First replace the right-hand sides by zeros: #math.equation(block: false, alt: "2 x minus y equals 0")[$2 x − y = 0$] and #math.equation(block: false, alt: "x plus y minus 6 z equals 0")[$x + y − 6 z = 0$]. This is the #strong[homogeneous] version of the system. It is guaranteed to be consistent, since #math.equation(block: false, alt: "open parenthesis 0 , 0 , 0 close parenthesis")[$( 0 , 0 , 0 )$] works, and a short elimination shows its solutions are all multiples of a single vector: #math.equation(block: false, alt: "t open parenthesis 1 , 2 , 0.5 close parenthesis")[$t ( 1 , 2 , 0.5 )$]. In the language of the previous section, the homogeneous solution set is a #emph[span] — here, a line through the origin. Now return to the original right-hand sides. One solution can be found by trial: #math.equation(block: false, alt: "𝐩 equals open parenthesis 2 , 0 , 1 close parenthesis")[$𝐩 = ( 2 , 0 , 1 )$] satisfies both equations (check: #math.equation(block: false, alt: "2 times 2 minus 0 equals 4")[$2 · 2 − 0 = 4$] and #math.equation(block: false, alt: "2 plus 0 minus 6 equals minus 4")[$2 + 0 − 6 = − 4$]). We call it a #strong[particular] solution — nothing special about it, just #emph[some] point that works. The figure below shows both solution sets at once. {"camera":{"fov":50,"position":\[6.5,4.5,4\],"projection":"perspective","target":\[1,0,0.5\]},"grid":{"axisColors":{"x":"\#ef4444","y":"\#22c55e","z":"\#3b82f6"},"divisions":10,"gridColor":"\#e5e7eb","showAxes":true,"showLabels":true,"size":10,"visible":true},"id":"023b2d69-8e01-487a-b5ed-3c8da9128a7c","metadata":{"alt\_text":"Two parallel straight lines in 3D: a blue line through the origin holding the homogeneous solutions, and a red line through the marked point (2, 0, 1) holding the full solution set. A short dashed gray segment connects the origin to that point, showing the translation by one particular solution. There are no sliders.","created\_at":"2026-08-01T00:00:00.000Z","description":"Book scene: the homogeneous solution line t(1, 2, 0.5) through the origin, its translate (2, 0, 1) + t(1, 2, 0.5), the translation segment from the origin to the particular solution, and points at both anchors.","tags":\["book","linear-algebra","solution-set","homogeneous","translate"\],"updated\_at":"2026-08-01T00:00:00.000Z"},"objects":\[{"id":"06f07dc4-0a92-4e6e-ac16-756f7fb104ca","kind":"parametric-curve","label":{"text":"homogeneous solutions: t(1, 2, 0.5)","visible":true},"samples":100,"style":{"color":"\#3b82f6","dash":\[\],"lineWidth":3},"tDomain":\[-1.8,1.8\],"visible":true,"xExpr":"t","yExpr":"2\*t","zExpr":"0.5\*t"},{"id":"6b48dac8-db24-4f8b-8040-262063eb7761","kind":"parametric-curve","label":{"text":"full solution set: (2, 0, 1) + t(1, 2, 0.5)","visible":true},"samples":100,"style":{"color":"\#ef4444","dash":\[\],"lineWidth":3},"tDomain":\[-1.8,1.8\],"visible":true,"xExpr":"2 + t","yExpr":"2\*t","zExpr":"1 + 0.5\*t"},{"id":"38290e11-dc14-423b-b8e1-fed6fcd9e802","kind":"parametric-curve","label":{"text":"translation by p = (2, 0, 1)","visible":true},"samples":50,"style":{"color":"\#6b7280","dash":\[5,4\],"lineWidth":2},"tDomain":\[0,1\],"visible":true,"xExpr":"2\*t","yExpr":"0","zExpr":"t"},{"color":"\#111827","id":"be15e15d-ba27-401a-9ea9-cdec54ed85e9","kind":"point","label":{"text":"origin","visible":true},"radius":0.09,"visible":true,"x":0,"y":0,"z":0},{"color":"\#ef4444","id":"e25e7874-0390-4f69-bc55-790b4d9e311a","kind":"point","label":{"text":"particular solution p = (2, 0, 1)","visible":true},"radius":0.09,"visible":true,"x":2,"y":0,"z":1}\],"title":"Homogeneous and particular","version":1} The blue line through the origin holds the solutions of the homogeneous system; the red line holds the solutions of the original system. The dashed segment is the translation by the particular solution #math.equation(block: false, alt: "𝐩 equals open parenthesis 2 , 0 , 1 close parenthesis")[$𝐩 = ( 2 , 0 , 1 )$]. === Explore the figure + Orbit until both lines are clearly visible. Confirm they are parallel — same direction vector, different anchor points. + The blue line passes through the origin; the red line does not. Which of the two systems could you have #emph[guessed] is the homogeneous one, from the picture alone? + Follow the dashed segment from the origin to the red point. Every point of the red line is reached the same way: start on the blue line, then add #math.equation(block: false, alt: "𝐩")[$𝐩$]. + Would a different particular solution — any other point of the red line — have served equally well as the anchor? === One solution plus all homogeneous solutions Here is the reasoning, and it never uses the specific numbers. Suppose #math.equation(block: false, alt: "𝐩")[$𝐩$] solves the system #math.equation(block: false, alt: "A 𝐱 equals 𝐛")[$A 𝐱 = 𝐛$] and #math.equation(block: false, alt: "𝐡")[$𝐡$] solves the homogeneous system #math.equation(block: false, alt: "A 𝐱 equals 0")[$A 𝐱 = 0$]. Then #math.equation(block: false, alt: "A open parenthesis 𝐩 plus 𝐡 close parenthesis equals A 𝐩 plus A 𝐡 equals 𝐛 plus 0 equals 𝐛")[$A ( 𝐩 + 𝐡 ) = A 𝐩 + A 𝐡 = 𝐛 + 0 = 𝐛$], so #math.equation(block: false, alt: "𝐩 plus 𝐡")[$𝐩 + 𝐡$] is again a solution. Conversely, if #math.equation(block: false, alt: "𝐪")[$𝐪$] is #emph[any] solution, then #math.equation(block: false, alt: "A open parenthesis 𝐪 minus 𝐩 close parenthesis equals 𝐛 minus 𝐛 equals 0")[$A ( 𝐪 − 𝐩 ) = 𝐛 − 𝐛 = 0$], so #math.equation(block: false, alt: "𝐪")[$𝐪$] differs from #math.equation(block: false, alt: "𝐩")[$𝐩$] by a homogeneous solution. Both directions together say: #math.equation(block: true, alt: "solution set of A 𝐱 equals 𝐛 equals 𝐩 plus { solutions of A 𝐱 equals 0 }")[$"solution set of " A 𝐱 = 𝐛 #h(0.278em) = #h(0.278em) 𝐩 + \{ "solutions of " A 𝐱 = 0 \}$] Geometrically: the solution set of a consistent system is a #strong[translated copy] of the homogeneous solution set — the same span, picked up and carried to #math.equation(block: false, alt: "𝐩")[$𝐩$], exactly as the dashed segment in the figure shows. The homogeneous system contributes the #emph[shape and direction]; the particular solution contributes only the #emph[location]. #examplebox("Example 1")[The red line is not closed under addition][ Both #math.equation(block: false, alt: "open parenthesis 2 , 0 , 1 close parenthesis")[$( 2 , 0 , 1 )$] and #math.equation(block: false, alt: "open parenthesis 3 , 2 , 1.5 close parenthesis")[$( 3 , 2 , 1.5 )$] lie on the red line. Show that their sum does not, and explain what this says about the red line. The sum is #math.equation(block: false, alt: "open parenthesis 5 , 2 , 2.5 close parenthesis")[$( 5 , 2 , 2.5 )$]. Test the first equation: #math.equation(block: false, alt: "2 times 5 minus 2 equals 8")[$2 · 5 − 2 = 8$], but the equation requires the value #math.equation(block: false, alt: "4")[$4$]. So the sum is not a solution. Adding two solutions of #math.equation(block: false, alt: "A 𝐱 equals 𝐛")[$A 𝐱 = 𝐛$] gives #math.equation(block: false, alt: "A open parenthesis 𝐱 sub 1 plus 𝐱 sub 2 close parenthesis equals 2 𝐛")[$A ( 𝐱_(1) + 𝐱_(2) ) = 2 𝐛$], not #math.equation(block: false, alt: "𝐛")[$𝐛$] — the right-hand side doubles. The red line is a line but not a span: it fails closure because it misses the origin. Only the homogeneous solution set has the algebra of a span. ] #notebox("Note", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ This decomposition is worth internalizing as a slogan: #emph[general solution equals particular plus homogeneous]. You will meet it again for differential equations, where the same two-part structure appears for the same underlying reason — linearity. ]