拉格朗日插值法和孙子定理

前言

约在2000多年以前,我国古代数学著作《孙子算经》中提出了著名的“物不知其数”问题:“今有物不知其数,三三数之余二,五五数之余三,七七数之余二,问物几何?”答曰:“二十三”。

我国历史上还有很多人研究过这类问题,人们将这一类问题进一步发展和推广,并称之为“孙子定理”,在国外文献和教科书中称为“中国剩余定理”。

设物数为x,那么“物不知其数”问题相当于解如下形式的方程组:

$$
left{
egin{array}{c}
x equiv 2 (mod 3) \
x equiv 3 (mod 5) \
x equiv 2 (mod 7) \
end{array}
ight. 
$$

这种方程组我们称为同余方程组。

容易验证,当k使得上面每个同余式都成立时,所有模3x5x7=105同余于k的整数,也使得每个同余式成立,反过来,如果还有l使得同余方程组成立,那么,

$$lequiv k(mod 3),lequiv k(mod 5),lequiv k(mod 7)$$.

于是$3 | l-k,5 | l-k,7 | l-k$,这表明l-k含有素因数3,5,7,从而$3 imes 5 imes 7 | l-k$,即$lequiv k(mod 105)$.

通常,我们把$xequiv k(mod 105)$叫做同余方程组额解,在这个意义下,同余方程只有一个解。

为了解同余方程组,我们首先建立拉格朗日插值公式。

 

拉格朗日插值法

例.你能否求一个多项式$f(x)$,使其满足$f(1)=1,f(-1)=3,f(2)=3$?

由二次函数的知识,先假设$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$为常数,显然$p(-1)=0,p(2)=0$,再将$p(1)=1$代入,可求得$c$是$(1+1)(1-2)$的倒数,于是

$$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).$$

一般地,设$a,b,c$两两不同,那么满足$f(a)=e,f(b)=f,f(c)=g$的一个多项式$f(x)$可由下面的公式给出

$$f(x)=ecdot p(x)+fcdot q(x)+gcdot r(x). ag{(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)}. ag{(2)}$$

通常,我们把公式(1)和(2)叫做拉格朗日插值公式.运用类似的方法,我们可以将它推广到一般情况.

解同余方程组

为了解同余方程组,我们依照建立拉格朗日插值公式的想法,按如下两个步骤进行:

1°求整数$p$,使$pequiv 1(mod 3),pequiv 0(mod 5),p equiv 0(mod 7).$

   求整数$q$,使$qequiv 0(mod 3),qequiv 1(mod 5),q equiv 0(mod 7).$

   求整数$r$,使$requiv 0(mod 3),requiv 0(mod 5),r equiv 1(mod 7).$

2°作整数$k=2 imes p + 3 imes q + 2 imes r$,这个$k$使得方程组中每个同余式都成立.

 此时,$xequiv k(mod 3 imes 5 imes 7)$就是同余方程组的解.

如何求出$p、q$和$r$呢?不妨以求$p$为例.

  由于$,pequiv 0(mod 5),p equiv 0(mod 7)$,故$5 | p,7 | p$,于是$p = 5 imes 7 imes c$,其中c是某个整数.再由$pequiv 1(mod 3)$知,整数c满足:$5 imes 7 imes cequiv 1(mod 3)$.而$5 imes 7 equiv -1(mod 3)$,于是$-c equiv 1(mod 3)$,进而$c equiv 1(mod 3)$.若选取c=2,则p=70。

  用类似的方法,我们可以得q=21,r=15.作整数$k=2 imes 70 + 3 imes 21 + 2 imes 15 = 223$,于是同余方程组得解为$xequiv 233equiv 23(mod 105)$.

一般地,我们有如下结论:

孙子定理:设$a,b,c$为两两互素的正整数,$e,f,g$为任意整数,则同余方程组

$$
left{
egin{array}{c}
x equiv e (mod a) \
x equiv f (mod b) \
x equiv g (mod c) \
end{array}
ight.
$$

仅有一解:$xequiv 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)$的整数.

运用类似的方法,我们可以将孙子定理推广到更一般的情形.

例.(韩信点兵问题)有兵一队,若排成5行,则末行1人;若排成6行,则末行5人;若排成7行,则末行4人;若排成11行,则末行10人.求兵数。

解:先考虑第一种排列方式,设每行$t$个人,兵数为$x$,则$5t+1 = x$,所以$x≡1(mod   5)$.同理可得到另外3个式子.

$$
left{
egin{array}{c}
x equiv 1 (mod 5) \
x equiv 5 (mod 6) \
x equiv 4 (mod 7) \
x equiv 10 (mod 11) \
end{array}
ight.
$$

利用孙子定理,设$p=6 imes 7 imes 11 imes c equiv 1(mod 5) Rightarrow  1 imes 2 imes 1 imes c equiv 1(mod 5)Rightarrow 2cequiv 1(mod 5)$,取$c=3$,所以$p  =6 imes 7 imes 11 imes 3$,同理可得到$q,r,t$.

$xequiv 1 imes p + 5 imes q + 4 imes r + 10 imes t = 6731 equiv 2111(mod 5 imes 6 imes 7 imes 11)$,即$xequiv 2111(mod 2310)$.

原文地址:https://www.cnblogs.com/lfri/p/10449620.html