你是否被這樣的問題困擾過?
在小學階段,每個人應該都做過這種題,給一串數字找規律。
長大以后,如果你參加過一些招聘考試,也應該做過這種題,給一串數字找規律。
給一串數字找規律,這應該算是一個經久不衰的問題。但是,正如標題所寫,面對這種問題,但凡思考一秒鐘,都對不起你的智商。
一個有點變態的例子先來看一串數字:
1,2,3,4
下一個數字是多少?
不必思考,我直接告訴你答案:不管你填什么數字,都有規律!
這可不是隨口一說,而是可以嚴格證明的。
我相信大部分讀者都對嚴格證明不感興趣,所以我把證明過程放到了最后,現在先來看一個有點變態的例子。
回到上面那一串數字:
1,2,3,4
下一個數字是5嗎?
可以是5,但如果是5,那就一點都不變態,所以我在這里選108。
1,2,3,4,108
這有什么規律?
一些讀者可能會覺得這還是太簡單了,所以我還是讓它更變態一點比較好,讓再下一個數字等于-7。
1,2,3,4,108,-7
現在應該有點意思了,那么這一串數字有什么規律?
各位讀者可以先思考一下。
1,2,3,4,108,-7
這其實是一個數列,我們通常說的“找規律”其實就是找出數列的通項公式。
比如:2,4,8,16,32,……
這個數列的通項公式就是:
也可以做成表格:
A1 | A2 | A3 | A4 | A5 |
2 | 4 | 8 | 16 | 32 |
數列的通項公式就像函數的解析式一樣,只不過數列的通項公式的自變量只能取離散的數字,而函數的解析式的自變量可以連續取值。
所以函數的研究方法可以套用到數列上。
很多函數的解析式可以用泰勒級數表示,在這里不需要知道泰勒級數究竟是什么,只需要知道:
函數的解析式可以寫成“多項式”的形式。
比如:
套用到數列上,可以把數列的通項公式假設成多項式:
對于這個具體的數列:
1,2,3,4,108,-7
可以列出一個表格:
x | 1 | 2 | 3 | 4 | 5 | 6 |
y | 1 | 2 | 3 | 4 | 108 | -7 |
根據這前六項,以及之前寫出的多項式,可以得到一個方程組:
六個獨立方程,六個未知數,解方程組就能求出多項式的系數,寫出這個數列的通項公式。
文章末尾會談論這個方程組的簡單求解方法,在這里我直接給出結果:
頭條上不能編輯太長的公式,我把一個公式分成兩段,大家湊合著看。
1,2,3,4,108,-7
背后的規律就是上面那個通項公式。
談一談線性代數現在也該說一說證明過程了,怎么確保列出的方程組一定有解?
有人可能會問:
如果列出的方程組根本就沒有解,那不就找不到規律了?
可以用線性代數看待這個問題,把上文列出的方程組寫成矩陣的形式:
如果方程組有解,那么系數矩陣就有逆矩陣。系數矩陣也就是這個矩陣:
大家應該可以發現,不管是怎樣的一串數字,列出的系數矩陣都是一個結構。這種矩陣有專門的名字:范德蒙矩陣。
學過線性代數的讀者應該知道,一個矩陣有逆矩陣的條件是:行列式不為零。
范德蒙矩陣的行列式就是范德蒙行列式,范德蒙行列式有簡單的計算方法,一般的范德蒙行列式是:
如果用det表示行列式,范德蒙行列式的計算方法是:
上文中的那個具體的系數矩陣,對應到上面的公式里就是:
x1 | x2 | x3 | x4 | x5 | x6 |
1 | 2 | 3 | 4 | 5 | 6 |
大家應該很容易看出來,不管用一串數字列出多少個方程,上文提到的系數矩陣的行列式一定不為零,所以方程組一定有解。
談一談Excel不知道有沒有讀者試過求解上文中的方程組,用人腦解那種方程組確實不容易,而且很容易算錯。
把繁瑣的計算交給電腦,才是明智的選擇。
用X表示系數矩陣,a表示多項式系數組成的向量,y表示所給數字組成的向量,上面這個方程組可以簡寫成:
只需要求出系數矩陣的逆矩陣,在與所給數字組成的向量相乘,就解出了多項式的系數:
可以用Excel快速求出一個矩陣的逆矩陣,首先需要把矩陣輸入Excel:
再選中一個與輸入的矩陣的行數、列數都相同的區域:
插入下圖中的函數:
選中輸入的矩陣:
再按“ctrl+shift+enter”鍵,就能得到逆矩陣:
上圖中的逆矩陣元素是用小數表達的,如果想看得更直觀,可以把“單元格格式”設置成“分數”:
再輸入所給數字組成的向量,選中與向量相同列數的區域:
插入下圖中的函數:
選中矩陣與向量:
再按“ctrl+shift+enter”鍵,就能得到多項式系數組成的向量:
如果想看得更直觀,可以把“單元格格式”設置成“分數”:
我相信大家已經理解,給一串數字找規律,但凡思考一秒鐘,都對不起你的智商。
正是因為隨便填幾個數,都有規律。導致給一串數字找規律,往往毫無意義。