拉格朗日插值法和孙子定理
前言
約在2000多年以前,我國古代數(shù)學著作《孫子算經(jīng)》中提出了著名的“物不知其數(shù)”問題:“今有物不知其數(shù),三三數(shù)之余二,五五數(shù)之余三,七七數(shù)之余二,問物幾何?”答曰:“二十三”。
我國歷史上還有很多人研究過這類問題,人們將這一類問題進一步發(fā)展和推廣,并稱之為“孫子定理”,在國外文獻和教科書中稱為“中國剩余定理”。
設(shè)物數(shù)為x,那么“物不知其數(shù)”問題相當于解如下形式的方程組:
$$
\left\{
\begin{array}{c}
x \equiv 2 (mod \ 3) \\
x \equiv 3 (mod \ 5) \\
x \equiv 2 (mod \ 7) \\
\end{array}
\right.?
$$
這種方程組我們稱為同余方程組。
容易驗證,當k使得上面每個同余式都成立時,所有模3x5x7=105同余于k的整數(shù),也使得每個同余式成立,反過來,如果還有l(wèi)使得同余方程組成立,那么,
$$l\equiv k(mod \ 3),l\equiv k(mod \ 5),l\equiv k(mod \ 7)$$.
于是$3 | l-k,5 | l-k,7 | l-k$,這表明l-k含有素因數(shù)3,5,7,從而$3 \times 5 \times 7 | l-k$,即$l\equiv k(mod \ 105)$.
通常,我們把$x\equiv k(mod \ 105)$叫做同余方程組額解,在這個意義下,同余方程只有一個解。
為了解同余方程組,我們首先建立拉格朗日插值公式。
?
拉格朗日插值法
例.你能否求一個多項式$f(x)$,使其滿足$f(1)=1,f(-1)=3,f(2)=3$?
由二次函數(shù)的知識,先假設(shè)$f(x)=ax^2+bx+c$,代入可解得$f(x)=x^2-x+1$,利用這個多項式,我們可以寫出所有滿足條件的多項式
$$f(x)=x^2-x+1 + (x-1)(x+1)(x-2)h(x)$$.
其中$h(x)$是任意多項式.
下面介紹一種更為一般的方法——拉格朗日插值法,我們按如下步驟進行:
(1)求多項式$p(x)$,使$p(1)=1,p(-1)=0,p(2)=0$;
(2)求多項式$q(x)$,使$q(1)=0,q(-1)=1,q(2)=0$;
(3)求多項式$r(x)$,使$r(1)=0,r(-1)=0,r(2)=1$;
(4)作多項式$f(x)=1*p(x) + 3*q(x) + 3*r(x)$,它就是問題的一個解.
這里的$p(x)、q(x)、r(x)$好求嗎?
如選取$p(x)=c(x+1)(x-2)$,其中$c$為常數(shù),顯然$p(-1)=0,p(2)=0$,再將$p(1)=1$代入,可求得$c$是$(1+1)(1-2)$的倒數(shù),于是
$$p(x)=\frac{(x+1)(x-2)}{(1+1)(1-2)} = -\frac{1}{2} (x^2 -x -2).$$
同理可得
$$q(x)=\frac{(x-1)(x-2)}{(-1-1)(-1-2)} = \frac{1}{6} (x^2 -3x +2).$$
$$q(x)=\frac{(x-1)(x+1)}{(2-1)(2+1)} = \frac{1}{3} (x^2 - 1).$$
一般地,設(shè)$a,b,c$兩兩不同,那么滿足$f(a)=e,f(b)=f,f(c)=g$的一個多項式$f(x)$可由下面的公式給出
$$f(x)=e\cdot p(x)+f\cdot q(x)+g\cdot r(x). \tag{(1)}$$
其中
$$p(x)=\frac{(x-b)(x-c)}{(a-b)(a-c)},q(x)=\frac{(x-a)(x-c)}{(b-a)(b-c)},r(x)=\frac{(x-a)(x-b)}{(c-a)(c-b)}. \tag{(2)}$$
通常,我們把公式(1)和(2)叫做拉格朗日插值公式.運用類似的方法,我們可以將它推廣到一般情況.
?
解同余方程組
為了解同余方程組,我們依照建立拉格朗日插值公式的想法,按如下兩個步驟進行:
1°求整數(shù)$p$,使$p\equiv 1(mod \ 3),p\equiv 0(mod \ 5),p \equiv 0(mod \ 7).$
?? 求整數(shù)$q$,使$q\equiv 0(mod \ 3),q\equiv 1(mod \ 5),q \equiv 0(mod \ 7).$
?? 求整數(shù)$r$,使$r\equiv 0(mod \ 3),r\equiv 0(mod \ 5),r \equiv 1(mod \ 7).$
2°作整數(shù)$k=2 \times p + 3 \times q + 2 \times r$,這個$k$使得方程組中每個同余式都成立.
?此時,$x\equiv k(mod \ 3 \times 5 \times 7)$就是同余方程組的解.
如何求出$p、q$和$r$呢?不妨以求$p$為例.
? 由于$,p\equiv 0(mod \ 5),p \equiv 0(mod \ 7)$,故$5 | p,7 | p$,于是$p = 5 \times 7 \times c$,其中c是某個整數(shù).再由$p\equiv 1(mod \ 3)$知,整數(shù)c滿足:$5 \times 7 \times c\equiv 1(mod \ 3)$.而$5 \times 7 \equiv -1(mod \ 3)$,于是$-c \equiv 1(mod \ 3)$,進而$c \equiv 1(mod \ 3)$.若選取c=2,則p=70。
? 用類似的方法,我們可以得q=21,r=15.作整數(shù)$k=2 \times 70 + 3 \times 21 + 2 \times 15 = 223$,于是同余方程組得解為$x\equiv 233\equiv 23(mod \ 105)$.
一般地,我們有如下結(jié)論:
孫子定理:設(shè)$a,b,c$為兩兩互素的正整數(shù),$e,f,g$為任意整數(shù),則同余方程組
$$
\left\{
\begin{array}{c}
x \equiv e (mod \ a) \\
x \equiv f (mod \ b) \\
x \equiv g (mod \ c) \\
\end{array}
\right.
$$
僅有一解:$x\equiv ebcc_1 + facc_2 + gabc_3 (mod \ abc)$,其中$c_1,c_2,c_3$為分別滿足同余式:$bcc_1 \equiv 1(mod \ a),acc_2 \equiv 1(mod \ b),abc_3 \equiv 1(mod \ c)$的整數(shù).
運用類似的方法,我們可以將孫子定理推廣到更一般的情形.
例.(韓信點兵問題)有兵一隊,若排成5行,則末行1人;若排成6行,則末行5人;若排成7行,則末行4人;若排成11行,則末行10人.求兵數(shù)。
解:先考慮第一種排列方式,設(shè)每行$t$個人,兵數(shù)為$x$,則$5t+1 = x$,所以$x≡1(mod \? 5)$.同理可得到另外3個式子.
$$
\left\{
\begin{array}{c}
x \equiv 1 (mod \ 5) \\
x \equiv 5 (mod \ 6) \\
x \equiv 4 (mod \ 7) \\
x \equiv 10 (mod \ 11) \\
\end{array}
\right.
$$
利用孫子定理,設(shè)$p=6 \times 7 \times 11 \times c \equiv 1(mod \ 5) \Rightarrow? 1 \times 2 \times 1 \times c \equiv 1(mod \ 5)\Rightarrow 2c\equiv 1(mod \ 5)$,取$c=3$,所以$p? =6 \times 7 \times 11 \times 3$,同理可得到$q,r,t$.
$x\equiv 1 \times p + 5 \times q + 4 \times r + 10 \times t = 6731 \equiv 2111(mod \ 5 \times 6 \times 7 \times 11)$,即$x\equiv 2111(mod \ 2310)$.
?
轉(zhuǎn)載于:https://www.cnblogs.com/lfri/p/10449620.html
總結(jié)
以上是生活随笔為你收集整理的拉格朗日插值法和孙子定理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大转盘H5模板的游戏优点
- 下一篇: Troubleshooting BGP