因式與零點:乘法結構如何揭示方程的根

設想你正在規劃一塊長方形展區:周長必須是二十公尺,面積必須是二十一平方公尺。兩條相鄰的邊應該各多長?

這是用來理解數學的假想情境,不是歷史事件。

周長是二十公尺,表示兩條相鄰邊的長度相加是十公尺。如果其中一邊長 x 公尺,另一邊就是 10−x 公尺。面積條件於是成為:

x(10−x)=21

這裡的 x 是以公尺計算的邊長數值。兩邊都必須大於零,因此還有:

0<x<10

你可以先試。一公尺配九公尺,面積是九平方公尺;二公尺配八公尺,面積是十六平方公尺;三公尺配七公尺,正好得到二十一平方公尺。

問題似乎已經解決了。但還有一件事沒有交代:除了三和七,真的沒有其他數值能符合條件嗎?

試出答案,和確定答案已經找全,是兩件不同的事。只試整數,不能自行排除分數或小數;多試幾次,也不會自動成為「其他可能都不存在」的證明。

因式分解的重要性,就出現在這裡。它不只是提供另一種寫法,還能在適當條件下,把「哪些數符合要求」轉成幾個可以分別處理、又不遺漏可能性的簡單條件。

一、前人早已會求解,差別在於怎樣組織問題

不能因為今天用因式分解解這道題,就以為在這套表示方式成熟以前,人們只能反覆猜測。

九世紀的花拉子米已經以文字整理方程的類型與算法。他的代數著作在開頭提到遺產分配、交易、土地測量等用途。這提醒我們:在今天的符號出現以前,人們早已需要由已知的數量關係,反求尚不知道的數量。Maths History

他的書中也有一個用今天符號可以寫成下面這樣的問題:

x2+21=10x

這與展區問題是同一個數量關係。不過,這裡的 x、次方與等號是現代轉寫,不是說九世紀原書就使用這套記號。

他的算法是:取十的一半,得到五;把五平方,得到二十五;減去二十一,剩下四;取四的平方根,得到二。接著,用五減二得到三,也可以用五加二得到七。原書的文字敘述明確包含這兩種可能,並另有幾何論證。哈佛數學系

用今天的代數來理解這個算法,可以把關係改寫成:

x2−10x+21=0⟺(x−5)2=4

為什麼可以這樣改寫?把 (x−5)2 展開,得到的是 x2−10x+25,比左邊原來的式子多四。因此,原式等於零,就相當於這個平方等於四。

這是在找「與五相差二」的數,所以得到三或七。以上是我們用現代符號說明算法的數學理由,不是把現代推導冒充原書的書寫方式。

因此,歷史上的差別不能說成「以前只能猜,後來才會證明」。前人已經有能求解、能論證,也能重複處理同類問題的方法。

真正值得比較的,是這些方法怎樣組織問題。

花拉子米把平方、未知量的若干倍與普通數,依它們位於等式兩側的不同組合,分成不同類型處理。他也會用文字敘述含未知量的乘法與化簡,不能把沒有今日符號,說成不能操作這些數量關係。Maths History

從今天的表示方式回看,這套分類有一項明確成本:需要先辨認問題屬於哪一類,再追蹤相應的算法;閱讀幾何論證時,也要追蹤各條線段與各塊面積的關係。這不表示舊方法無效,而是它將推理安排在另一種形式裡。

我們接下來要看的,是另一種安排:把等式整理成一個式子等於零,再研究這個式子由哪些相乘的部分組成。

要理解它,先不必增加很多公式,只需要把熟悉的分配律反過來看。

二、因式分解,是把相加的結果看成相乘的組成

你知道:

3(2x+3)=6x+9

由左往右,是把乘法展開;由右往左,則是看出 6x 和 9 都含有共同的因數三,把它們合寫成一個乘積。

兩種寫法的外觀不同,代表的數量卻相同。不是只有某個 x 代入時相同,而是每個實數 x 代入時都相同。

這種對所有允許數值都成立的相等,叫作恆等。

對本文討論的非零多項式而言,如果它能恆等地寫成兩個多項式相乘,那麼這兩個相乘的部分都是它的因式。因式可以是數,也可以是含有 x 的整個式子。

本文的因式分解以整係數二次式為主,分解結果允許有理數係數,也就是允許整數或分數作係數。這與「求解時允許 x 取哪些數」是兩個不同問題;求解時,我們仍在實數範圍考慮,再依情境加上限制。

例如:

3x2−1=2(32x2−12)

右邊確實乘得回左邊,所以二也是 3x2−1 的因式。不能因為括號裡出現分數,就否認這個關係。但是,二是常數,不是「一次因式」;題目若指定找一次因式,才需要把常數排除在那一次的作答範圍之外。

現在回到展區問題會出現的式子:

x2−10x+21

要把它寫成兩個一次式相乘,為什麼會想到三和七?

先把兩個準備尋找的固定數記作 a 和 b。分配律告訴我們:

(x−a)(x−b)=x2−bx−ax+ab=x2−(a+b)x+ab

要讓這個結果成為 x2−10x+21,就必須同時符合:

a+b=10,ab=21

三和七符合這兩個條件。一和二十一雖然相乘也是二十一,相加卻是二十二,不能使用。

於是我們提出:

x2−10x+21=(x−3)(x−7)

但「看起來像」還不夠,必須回乘:

(x−3)(x−7)=x2−7x−3x+21=x2−10x+21

分配律確實把我們帶回原式,這個分解才得到確認。

你可能注意到:找三和七時,我們仍然用了嘗試。沒錯,因式分解並沒有保證尋找因式的過程一定輕鬆。這裡增加的能力是:找到候選以後,可以先用恆等式確認結構,再用這個結構推論全部的解,而不只是保留一次成功的試算。

還要分清楚「寫成乘積」與「完成因式分解」。

最外層的運算必須是乘法,但這還不一定表示已經完成。完成分解時,其中的非常數因式,在允許的係數範圍內,應該不能再分成更低次的多項式相乘。

例如:

2x2−20x+42=2(x2−10x+21)

雖然已寫成乘積,括號裡的二次式卻還能繼續分解,所以還沒有完成。繼續寫成:

2(x−3)(x−7)

就已經分成常數與一次因式。也可以把二乘進其中一個括號,寫成:

(2x−6)(x−7)

這兩種都是完成的分解。把 2x−6 再寫成 2(x−3),並沒有把一次因式降成更低次的非常數因式,因此不需要把常數擺放的位置當成唯一標準。

不過,到目前為止,我們仍然沒有在求 x。

因式分解是在證明兩種表示恆等。無論 x 是三、七、零或其他實數,x2−10x+21 與 (x−3)(x−7) 都給出相同的結果。

求解是下一個問題:哪些 x,會讓這個共同的結果恰好等於零?

三、零,讓一個整體條件拆成完整的分支

展區面積明明是二十一,為什麼接下來要研究零?

因為「計算出的面積等於目標面積」,也可以說成「兩者的差等於零」:

x(10−x)=21⟺21−x(10−x)=0

展開左邊:

21−10x+x2=x2−10x+21

因此,原來的面積條件等價於:

x2−10x+21=0

等於零的是目標面積與計算結果的差,不是展區面積。

不過,只把式子整理成等於零,還不能逐項求解。加減的各項可以互相抵銷。例如代入 x=3,會得到:

9−30+21=0

三項都不是零,總和仍然可以是零。所以,不能從這個和式等於零,推論其中某一項必須等於零。

乘法卻有不同的性質。

在實數範圍內,如果:

AB=0

那麼至少有一個因數等於零。

理由並不需要只靠背誦。如果 A=0,條件已經符合;如果 A≠0,我們才可以把等式兩邊同除以 A,得到:

B=0A=0

反過來,只要 A 或 B 有一個是零,乘積也一定是零。因此:

AB=0⟺A=0或B=0

這就是零乘積性質。

這裡的「或」表示至少一個成立,也容許兩個都成立;不是要求兩個必須同時成立。

現在把分解結果接回展區問題:

x(10−x)=21⟺x2−10x+21=0⟺(x−3)(x−7)=0⟺x−3=0或x−7=0⟺x=3或x=7

符號 ⟺ 表示前後條件可以互相推出。這一連串改寫沒有刪掉原本可能成立的數,也沒有加入原本不成立的數。

當 x=3,第一個因式是零,第二個因式是 −4,乘積為零。

當 x=7,第二個因式是零,第一個因式是 4,乘積也為零。

而任何既不是三、也不是七的實數,都會使兩個因式同時非零,乘積不可能為零。

這才是我們能排除其他答案的理由,而不是因為已經試到了兩個看起來合適的數。

使多項式的值等於零的輸入數,稱為它的零點;放在對應的方程中,也就是方程的根或解。

在這裡,x−3 是因式,三才是零點。名稱裡的「零」,指的是代入後得到的結果,不是要求 x 本身等於零。

零乘積以「或」分支,涵蓋且只涵蓋兩個實數根。
零乘積以「或」分支,涵蓋且只涵蓋兩個實數根。

四、找出根,還要知道它回答了什麼問題

代數推理找出了三和七,但展區問題還有尺寸條件。

代入 x=3,另一邊是 10−3=7,面積為 3×7=21。

代入 x=7,另一邊是 10−7=3,面積為 7×3=21。

兩種代入的周長都是:

2(3+7)=20

而三和七也都符合:

0<x<10

因此,兩個根都符合我們原先給 x 的意義。

但這不是兩種不同大小的展區,而是同一對邊長的兩種命名方式。你可以把三公尺那一邊叫作 x,也可以把七公尺那一邊叫作 x。只有原題事先規定 x 代表較短邊時,才應只取 x=3。

這裡完成了三種不同的檢查。

回乘,是確認分解前後恆等;代回原題,是確認列出的答案符合條件;零乘積與前後可逆的推理,則是確認沒有其他解。

三者不能互相取代。尤其是「代回後正確」,只能證明列出的答案成立,不能單獨證明沒有漏掉答案。

還有一件事值得留意:展區真正的兩條邊是 x 與 10−x,不是 x−3 與 x−7。

後面這兩個因式,是面積差整理後的代數組成。它們可以是零,也可以是負數,不能因此把它們當成展區的實際邊長。

相同比例的 3×7 與 7×3 長方形,是同一對邊長的兩種命名。
相同比例的 3×7 與 7×3 長方形,是同一對邊長的兩種命名。

五、這套推理不能省掉的條件

零乘積性質的力量,來自一個非常明確的前提:完整的乘積等於零。

暫時離開展區,考慮另一個在實數範圍內求解的方程:

(x−3)(x−7)=21

這一次,不能令 x−3=0 或 x−7=0。只要有一個因式是零,乘積就會變成零,反而不可能等於二十一。

所以,非零乘積不只是「不能推出有零因子」;它還告訴我們,每個因子的值都必須非零。

要解這個新方程,需要重新整理:

(x−3)(x−7)=21⟺x2−10x+21=21⟺x2−10x=0⟺x(x−10)=0⟺x=0或x=10

最後的乘積才等於零,因此可以使用零乘積性質。

回代新方程:當 x=0,左邊是 (−3)(−7)=21;當 x=10,左邊是 7×3=21。兩個都成立。

這不是先前的展區方程,也沒有沿用展區的 0<x<10 限制。兩道題雖然出現相同的括號,要求的乘積卻不同,答案自然不同。

這個例子也揭示另一個風險。如果看到:

x(x−10)=0

就立刻把兩邊的 x 約掉,寫成 x−10=0,便會漏掉 x=0。

除以一個數以前,必須知道它不是零。此處的 x 正是未知量,不能先假定它非零。可以先分成「x=0」與「x≠0」兩種情況,再在後一種情況除以 x;不能一開始就把第一種情況刪掉。

此外,「有兩個因式」也不代表一定有兩個不同答案。例如:

(x−3)(x−3)=0

兩個分支都給出 x=3,所以只有一個不同的解。零乘積性質要求我們找出使因式為零的數,不是照括號的數量湊答案。

選讀:不能在指定範圍分解,不等於沒有實數解

以下這個例子供已學過平方根的讀者閱讀。

方程:

x2−2=0

沒有整數解,但 2 與 −2 的平方都是二,所以它有這兩個實數解。

更精確地說,x2−2 不能分成兩個有理係數的一次式。因為有理係數的一次方程,其解會是有理數;若這個二次式能如此分解,零乘積性質就會給出有理數解,與這裡的兩個解都是無理數不符。

因此,允許哪些係數來分解,與在哪一種數的範圍內求解,不能混成同一件事。

「我目前找不到分解方法」與「已經證明沒有解」,更是不同的判斷。因式分解提供了一條有力量的求解途徑,卻不保證每個方程都能用眼前熟悉的形式輕鬆拆開。

六、當根可以被寫進結構裡

現在,我們可以更準確地理解:因式與根的連結,在知識發展中增加了什麼。

一六三七年出版的《幾何學》,提供了一個可核實的歷史節點。笛卡兒在書中說明,可以用字母表示線段及其運算關係,不必每一步都把相關線段實際畫出來。這不是說幾何圖形失去價值,而是讓一些推理不必一直依附於具體作圖。Maths History

到了第三卷,他把對應二與三的兩個一次條件,連接到一個二次方程。用今天的乘積記號重寫,就是:

(x−2)(x−3)=x2−5x+6

令這個乘積等於零,就得到以二、三為根的方程。這個具體例子可以在原著的電子重排本中找到,不是我們替一幅古代圖形補上的假想故事。Project Gutenberg

它呈現的能力很清楚:根不只可以是計算到最後得到的結果,也可以反過來成為構成方程的條件。

知道希望哪些數使結果為零,就能把相應的一次因式相乘,組成方程;面對一個能夠分解的方程,也能沿著相反方向,把求解工作交給較簡單的因式。

這不應被寫成因式分解或零乘積性質的唯一發明日期,也不是說更早的人從未研究過方程的結構。這裡值得把握的是一種可以往返的操作:

相乘的組成⟺各項相加減的形式

再配合「乘積等於零」,相乘的組成就能轉成求根的分支。

相較於前面已經有效的分類算法,這不是讓人類第一次算出三或七,也不是第一次提出一般方法;它讓我們能夠直接從式子的組成研究答案,並在不同表示之間來回檢查。

這個機制今天仍然在使用。電腦代數系統 SymPy 的官方文件,把因式分解列為揭示多項式根的一種途徑,同時明確區分:分解後的式子不是根的清單,求根結果也不同於數值近似。SymPy 文檔

這是古今共享的數學機制,不是「某一本古書直接造成某套軟體」的歷史因果主張。能夠明確表達、檢查並重複執行的代數操作,既可以由人完成,也可以成為程式的一部分。

對現在的你而言,重要的也不只是比計算工具更快找到答案,而是知道答案根據什麼成立。

回到展區:你知道為什麼要把面積條件改寫成差為零;知道為什麼分解後可以分別求解;知道三和七不是兩塊不同大小的展區;也知道「代回成立」與「答案已經找全」,需要不同的理由。

若周長、面積或形狀改了,就必須重新建立條件,不能只沿用上一題的根。

因式與零點之間最重要的連結,正在於此:把「整體何時等於零」改寫成「哪些相乘的部分可以等於零」,再完整保留每一個可能的分支。

同一個式子,數值沒有改變;改變的是答案如何被組織,以及我們憑什麼相信自己已經把它看完整。