會計恆等式約束各個量,卻不會自動確定它們。如果公司報告了兩種產品的總銷售額和總變動成本,能否推算各產品的銷售數量?線性代數幫助我們判斷證據給出唯一答案、留下多個選擇,還是互相矛盾。本章將建立模型,在不丟失信息的情況下求解,並以原來的單位解釋結果。下文商業數據均為虛構的教學例子。
1 從文字陳述到矩陣方程
設 表示兩種產品的數量。假設售價分別為 30 和 50 個貨幣單位,單位變動成本分別為 12 和 20。銷售額為 1,600、變動成本為 640,得到
第二個方程是第一個的 0.4 倍。兩個報告數字只提供了一個獨立約束。如果求解器只給出一組數,卻不說明自由選擇,就隱藏了證據的一個特徵。
個未知數的線性方程組是一組方程 ,其中 。其系數矩陣 為 ,未知向量 為 ,右端向量 為 。方程組寫作 ,其中
的各欄記錄每個未知數對各項測量的貢獻。每一行中各項與對應未知數相乘後,單位必須相容。不能僅因為兩個量都是數字就把貨幣量和實物量相加。
增廣矩陣 將方程組和觀測值放在一起。允許的初等行變換包括交換兩個方程、將一個方程乘以非零標量,以及將一個方程的倍數加到另一個方程。
為甚麼這些操作會保留解集
定理
行等價的增廣矩陣代表等價方程組
若一個增廣矩陣可由另一個增廣矩陣經有限次基本行變換得到,則兩者所代 表的線性方程組是等價的,也就是說,它們有完全相同的解集。
證明
逐種解釋為甚麼基本行變換是安全的
每一種行變換,其實都只是方程操作的矩陣版本。
- 交換兩行,只是改變方程出現的次序。某個數組在交換前同時滿足所有方 程,交換後亦同樣同時滿足它們。
- 把一行乘上一個非零純量,等於把同一條方程左右兩邊同時乘上同一個非 零數。這會得到一條等價方程,而且可用乘上 逆轉。
- 把 換成 ,即是把第 條方程改寫成 「 第 條方程加第 條方程」。原系統的任何解都會滿足 新方程,而這步亦可透過把 倍第 行加回第 行來逆轉。
因此,每一種基本行變換都保留解集,任何有限次組合也一樣保留解集。
可逆性保證改寫前後的方程組具有相同的解集。檢查一種操作是否合法時, 應當能明確寫出恢復原方程的逆操作。
不要只對 進行行變換卻保持 不變:那會改變問題。
有限消元必停止,並保持解集
設 、,其中 是有限正整數。允許的行變換為交換不同的兩行、以非零標量乘一行,以及把一行的標量倍加到另一行。逆變換分別為同一交換、乘以倒數,以及減去該倍數。因此對整個增廣陣施行變換恰好保持 的解集:新方程由舊方程推出,逆變換給出反向蘊含。每個行變換也等於左乘把同一變換施於單位矩陣所得的可逆初等矩陣。
從左到右掃描係數欄,並記錄下一未使用行。若當前欄在未使用行中有非零元素,就將其所在行交換到下一位置,除以非零主元,再從其餘各行減去適當倍數,清空該欄其他元素,然後推進未使用行指標。若該欄所有未使用位置都是零,就跳過該欄。先前主元欄始終是單位欄:當前未使用行在這些欄均為零,所以新主元行以及後續減法保留這些零與原主元。總共只有 次欄掃描及至多 個主元,每次只作有限個行變換,故算法必停止。最後非零係數行的主元欄依次遞增,各主元上下均為零,其餘係數行全零。這證明下面使用的簡化階梯形確實能得到,而非假設它最終出現。
解的分類與齊次自由度
令 為係數部分的主元數。若某個零係數行對應非零變換後右端,就出現不可能的方程 ,因此無解。否則任意指定 個非主元變量的實數值。每個主元行都把其主元變量寫成變換後右端減去自由變量的已知線性組合,其中沒有其他主元變量。這些公式既構造解,也恢復每一個解。若 ,解唯一;若 ,改變自由變量就改變解向量,故有無窮多解。
對 ,全部自由變量取零給出零解。若 ,將一個自由變量設為一,其餘設為零,再按主元公式求解,就構造出非零齊次解;若 ,公式迫使所有齊次變量為零。對相容系統固定一個解 ,兩解相減表明每個解均為 ,其中 ;代入又證明反向包含。
當 為方陣且每欄都有主元時,係數階梯形為 。有限個初等矩陣之積 滿足 。因為 可逆,,故也有 ,所以 是雙側逆。若缺少主元,上面構造的非零齊次解排除可逆性。這也證明可逆時,對 作相同行變換會得到 。
2 消元與三種可能結果
主元是階梯形中某一行最前面的非零元素。主元欄對應的變量稱為主元變量,其餘為自由變量。回代將主元變量表示為自由變量的函數。若有一行 且 ,則對應不可能成立的方程 。
對開頭的例子,除法和消元得到 與 ,因此
代數上允許任何實數 。若數量必須非負,則 ;若還必須為整數, 必須使 能被 3 整除。這些是額外的模型條件,不是行化簡的結果。
現在把產品 2 的單位成本改為 25,並假設總變動成本為 740。模型變為
第二式減去第一式的 0.4 倍,得到 。所以 、;代入可驗證兩項原始觀測。若第三份報告說同一批銷售共包含 50 件產品,就與該模型矛盾,因為 。
解的分類。 階梯形方程組不相容,當且僅當其中有矛盾行。否則,若每個未知數都是主元變量,解唯一;若還有自由變量,則有無窮多個實數解。
說明。 沒有矛盾行時,可任意指定自由變量,再通過回代確定所有主元變量。沒有自由變量時恰有一個賦值;有自由變量時,不同選擇產生不同解向量。此分類針對 ;有限域中的解的數量有所不同。
3 為甚麼一個特解不是全部解
零空間是 ,它描述觀測無法察覺的變化。
定理 2 全部解的仿射形式。 若 滿足 ,則每個解都可唯一寫成 ,其中 。
證明。 若 ,則 。反之,若 ,則 。由 可知表示唯一。
對 ,一個解是 ,零空間是由 張成的直線。全部解為 。增加 會改變產品組合,卻保持報告的總量不變。
4 相互提供服務的成本分攤模型
兩個服務部門的直接成本分別為 80 和 90。部門 A 接受的 B 部門服務價值為 B 總成本的 20%;B 接受的 A 部門服務價值為 A 總成本的 10%。在該簡化模型中,
代入得到 ,所以 、。這是包含相互服務的總成本,不是新產生的外部支出。若將 稱為原始直接支出,就會重複計算內部服務。矩陣方程為
檢查單位、符號和計算對象與消元同樣重要。若相互服務的系數改變,方程也會改變;結果依賴於所選模型。
5 分層練習
E1 基礎。 解 、 並驗證答案。
E2 解釋。 解 、,描述非負解。若第二個方程右端改為 25,會有甚麼變化?
E3 建模。 兩種產品每件售價分別為 20 和 35。總收入為 900、總銷量為 30 件。求各產品數量,並說明該模型所需的一項假設。
E4 結構證明。 設 滿足 。證明方程組有唯一解當且僅當 。
E5 拓展。 對 、,在 時求唯一解。當 時,各給出一個相容與不相容的例子。
6 詳解
S1. 第二式減去第一式的三倍:,所以 、。驗證: 且 。
S2. 第二式是第一式的兩倍。令 ,則 。非負性要求 。若右端為 25,相減得到 ,所以無解,也沒有非負解。
S3. 寫出 和 。減去 得 。因此 、。這裏假設所有產品均按所列固定價格銷售,且收入不含額外費用或折扣。
S4. 由定理 2,每個解為 ,其中 。若零空間只有零,則只有 ;若含非零 ,則 是第二個解。已存在一個解的假設不可缺少。
S5. 代入得 ,因此 、。若 且 ,任何滿足 的數對都是解。若 且 ,兩式相加得 ,故無解。直接成本為正且相互回收比例均為 100% 時,該模型沒有有限總成本。
總結
線性模型通過 將未知量與觀測值聯繫起來。可逆的行變換揭示相容性和自由選擇;零空間中的向量指出觀測無法察覺的變化。只有檢查原方程、單位和應用約束之後,算出的答案才具有可解釋的意義。