Dãy số - Phần 6


Hôm nay chúng ta sẽ học về phép sai phân và sẽ dùng nó để chứng minh một định lý cơ bản về phương trình sai phân tuyến tính.

Định lý cơ bản về phương trình sai phân tuyến tính. Giả sử phương trình đặc trưng có thể viết thành $$f(x) = a_k x^k + a_{k-1} x^{k-1} + \dots + a_0 = (x - z)^j (b_s x^s + b_{s-1} x^{s-1} + \dots + b_0)$$ và $$f_n = p(n)~z^n,$$ trong đó $p(n)$ là một đa thức có bậc bé thua $j$. Vậy thì dãy số $f_n$ thoã mãn phương trình sai phân
$$a_k f_{n} + a_{k-1} f_{n-1} + \dots + a_1 f_{n-k+1} + a_0 f_{n-k} = 0.$$


Phép sai phân

Bây giờ chúng ta cùng học về phép sai phân. Phép sai phân $\Delta$ được định nghĩa đơn giản như sau $$\Delta (P(x)) = P(x+1) - P(x).$$ Dưới đây là một vài ví dụ
  • Nếu $P(x) = 5$ thì $$\Delta(P(x))=5-5=0;$$
  • Nếu $P(x) = x$ thì $$\Delta(P(x))= (x+1)-x = 1;$$
  • Nếu $P(x) = x^2$ thì $$\Delta(P(x))= (x+1)^2 - x^2 = 2x + 1;$$
  • Nếu $P(x) = 3 x^2 + 2x + 1$ thì $$\Delta(P(x))= [3 (x+1)^2 + 2(x+1) + 1]  - [3 x^2 + 2x + 1] = 6x + 5;$$
  • Nếu $P(x) = \frac{1}{x}$ thì $$\Delta(P(x))= \frac{1}{x+1}  - \frac{1}{x} = - \frac{1}{x(x+1)}.$$
  • Nếu $P(x) = 2^{x}$ thì $$\Delta(P(x))= 2^{x+1}  - 2^{x} = 2^x.$$
  • Nếu $P(x) = 3^{x}$ thì $$\Delta(P(x))= 3^{x+1}  - 3^{x} = 2 \times 3^x.$$


Rõ ràng phép sai phân có hai tính chất cơ bản sau đây
  • Tính chất cọng: $$\Delta(u(x) + v(x)) = \Delta(u(x)) + \Delta(v(x));$$
  • Tính chất nhân: với mọi hằng số $a$ thì $$\Delta(a ~P(x)) = a ~\Delta(P(x)).$$




Sai phân liên tiếp

Chúng ta có thể thực hiện phép sai phân liên tiếp như sau.
  • Khởi đầu, chúng ta có sai phân (cấp 1) của $P(x)$ đó là $$\Delta(P(x)) = P(x+1) - P(x).$$
  • Tiếp theo chúng ta áp dụng sai phân cho $\Delta(P(x))$, kết quả là sai phân cấp 2, và chúng ta dùng ký hiệu như sau $$\Delta^2(P(x)) = \Delta(\Delta(P(x))) = \Delta(P(x+1) - P(x)).$$ Vậy $$\Delta^2(P(x)) = [P(x+2) - P(x+1)] - [P(x+1) - P(x)]$$ $$ = P(x+2) - 2 P(x+1) + P(x).$$
  • Sai phân cấp 3 sẽ là $$\Delta^3(P(x)) = P(x+3) - 3 P(x+2) + 3 P(x+1) - P(x).$$

Các bạn đã nhận ra được quy luật gì chưa? Nếu chưa thì các bạn tính tiếp sai phân cấp 4, cấp 5 -- $\Delta^4(P(x))$, $\Delta^5(P(x))$ -- thì chắc chắn các bạn sẽ thấy được quy luật.

Quy luật đó là các hệ số trong các công thức sai phân là các hệ số của tam giác Pascal!
Như vậy sai phân cấp $j$ sẽ bằng $$\Delta^j(P(x)) = P(x+j) - {j \choose {j-1}} P(x+j-1) + {j \choose {j-2}} P(x+j-2) - \dots + (-1)^{j-1} {j \choose 1} P(x+1) + (-1)^j P(x).$$
Vì đây là công thức quan trọng mà chúng ta sẽ dùng đến để chứng minh định lý cơ bản về phương trình sai phân tuyến tính, cho nên chúng ta viết lại công thức này một lần nữa như sau

Công thức sai phân liên tiếp. Sai phân cấp $j$ của $P(x)$ bằng $$\Delta^j(P(x)) = \sum_{v=0}^{j} (-1)^{j-v} {j \choose v} P(x + v).$$


Sai phân của đa thức

Bây giờ chúng ta sẽ tìm hiểu về sai phân của đa thức và sẽ thấy rằng sai phân của đa thức có một tính chất rất quan trọng sau đây:
  • Với mọi $n > 0$, sai phân của đa thức bậc $n$ là một đa thức bậc $n-1$.
Vì vậy nên
  • Sai phân cấp $n$ của một đa thức bậc $n$ là một hằng số.
  • Sai phân cấp $n+1$ của một đa thức bậc $n$ bằng $0$.

Chúng ta đã từng dùng những tính chất này để chứng minh định lý Wilson.

Chúng ta chọn một ví dụ là đa thức bậc ba $P(x) = 2 x^3 + x^2 + 3 x + 5$ và lần lượt tính sai phân của nó
  • Khởi đầu bằng sai phân cấp 1 $$\Delta(P(x)) = [2(x+1)^3 + (x+1)^2 + 3(x+1) + 5] - [2 x^3 + x^2 + 3 x + 5]$$ $$=2[(x+1)^3 - x^3] + [(x+1)^2 - x^2] + 3[(x+1)-x]$$ $$=2[3 x^2 + 3x + 1] + [2x+1] + 3 =6 x^2 + 8x + 6,$$ Như vậy sai phân của $2 x^3 + x^2 + 3 x + 5$ là một đa thức bậc $2$.
  • Tiếp tục, chúng ta tính sai phân cấp 2 $$\Delta^2(P(x)) = [6 (x+1)^2 + 8 (x+1) + 6] - [6 x^2 + 8x + 6]$$ $$= 6 [(x+1)^2 - x^2] + 8 [(x+1) -x]$$ $$= 6 [2x+1] + 8 = 12 x + 14$$ Như vậy sai phân cấp $2$ của $2 x^3 + x^2 + 3 x + 5$ là một đa thức bậc $1$.
  • Sai phân cấp $3$ $$\Delta^3(P(x)) = [12 (x+1) + 14] - [12x + 14] = 12$$ Sai phân cấp $3$ của $2 x^3 + x^2 + 3 x + 5$ là một hằng số.
  • Cuối cùng sai phân cấp $4$ của $2 x^3 + x^2 + 3 x + 5$ sẽ bị triệt tiêu $$\Delta^4(P(x)) = 12 - 12 = 0.$$ Rõ ràng chúng ta thấy khi chúng ta càng lấy sai phân thì bậc của đa thức càng giảm xuống, cho đến khi sai phân bị triệt tiêu và bằng 0.


Chứng minh định lý cơ bản về phương trình sai phân tuyến tính


Định lý cơ bản về phương trình sai phân tuyến tính. Giả sử phương trình đặc trưng có thể viết thành $$f(x) = a_k x^k + a_{k-1} x^{k-1} + \dots + a_0 = (x - z)^j (b_s x^s + b_{s-1} x^{s-1} + \dots + b_0)$$ và $$f_n = p(n)~z^n,$$ trong đó $p(n)$ là một đa thức có bậc bé thua $j$. Vậy thì dãy số $f_n$ thoã mãn phương trình sai phân
$$a_k f_{n} + a_{k-1} f_{n-1} + \dots + a_1 f_{n-k+1} + a_0 f_{n-k} = 0.$$

Đầu tiên chúng ta sẽ biểu diễn các số $a_i$ bằng các số $b_i$. Chúng ta có
$$f(x) = \sum_{v=0}^{j}{(-1)^{j-v} {j \choose v} z^{j-v} x^v} \sum_{u=0}^{s}{b_u x^u} = \sum_{u=0}^{s} \sum_{v=0}^{j} (-1)^{j-v} {j \choose v} b_u z^{j-v} x^{u+v}$$

Do đó $$a_w = \sum_{0 \leq u \leq s, ~0 \leq v \leq j, ~u+v=w} (-1)^{j-v} {j \choose v} b_u z^{j-v}$$

Bây giờ chúng ta thay $a_i$ và $f_i = p(i)~z^i$ vào phương trình sai phân $$\sum_{w=0}^{k} a_w f_{n-k+w} = \sum_{w=0}^{k} a_w  p(n-k+w) z^{n-k+w}= z^{n-k}  \sum_{w=0}^{k} a_w  z^w p(n-k+w) $$ $$=z^{n-k}  \sum_{w=0}^{k}  \sum_{0 \leq u \leq s, ~0 \leq v \leq j, ~u+v=w} (-1)^{j-v} {j \choose v} b_u z^{j-v} z^w p(n-k+w) $$ $$=z^{n-k}  \sum_{w=0}^{k}  \sum_{0 \leq u \leq s, ~0 \leq v \leq j, ~u+v=w} (-1)^{j-v} {j \choose v} b_u z^{j+u}  p(n-k+w)$$ $$=z^{n-k} \sum_{u=0}^{s} b_u z^{j+u} \sum_{v=0}^{j} (-1)^{j-v} {j \choose v} p(n-k+u+v).$$

Theo công thức sai phân liên tiếp mà chúng ta đã học ở trên, chúng ta suy ra $$\sum_{w=0}^{k} a_w f_{n-k+w} = z^{n-k} \sum_{u=0}^{s} b_u z^{j+u} \Delta^{j}(p(n-k+u)).$$


Theo giả thiết, $p(n)$ là một đa thức có bậc bé thua $j$, cho nên $p(n-k+u)$ cũng là một đa thức của biến $n$ có bậc bé thua $j$. Theo tính chất của sai phân đa thức mà chúng ta đã học ở trên, thì sai phân cấp $j$ của $p(n-k+u)$ bị triệt tiêu. Tức là $$\Delta^{j}(p(n-k+u)) = 0.$$

Từ đó suy ra $$\sum_{w=0}^{k} a_w f_{n-k+w} = 0,$$ đây chính là phương trình sai phân mà chúng ta cần chứng minh.

Vậy định lý đã được chứng minh.





Định lý trên là một định lý làm nền tảng cho việc giải phương trình sai phân tuyến tính. Thực vậy,
  • nếu phương trình đặc trưng có nghiệm $x=z_1$ bậc $j_1$ thì theo định lý trên, với mọi đa thức $p_1(n)$ có bậc bé thua $j_1$, dãy số $\{p_1(n) z_1^n\}$ sẽ thoã mãn phương trình sai phân;
  • nếu phương trình đặc trưng có nghiệm $x=z_2$ bậc $j_2$ thì, với mọi đa thức $p_2(n)$ có bậc bé thua $j_2$, dãy số $\{p_2(n) z_2^n\}$ sẽ thoã mãn phương trình sai phân;...
  • nếu phương trình đặc trưng có nghiệm $x=z_t$ bậc $j_t$ thì, với mọi đa thức $p_t(n)$ có bậc bé thua $j_t$, dãy số $\{p_t(n) z_t^n\}$ sẽ thoã mãn phương trình sai phân;
  • từ đó suy ra tổng của các dãy số này, dãy số có dạng $$f_n = p_1(n) z_1^n + p_2(n) z_2^n + \dots + p_t(n) z_t^n$$ cũng thõa mãn phương trình sai phân. Và đây chính là phương pháp mà chúng ta đã dùng ở các bài trước để giải phương trình sai phân.


Ví dụ, để đi tìm công thức tổng quát cho dãy số $$f_0=1, ~f_1 = 7, ~f_2= 32, ~f_n = 8 f_{n-1} - 21 f_{n-2} + 18 f_{n-3}$$ chúng ta xem xét phương trình sai phân $$f_n = 8 f_{n-1} - 21 f_{n-2} + 18 f_{n-3}.$$ Chúng ta có phương trình đặc trưng $$x^3 - 8 x^2 + 21 x - 18 = (x-2)(x-3)^2= 0.$$ Vậy dãy số có dạng $$f_n = p_1(n) ~2^n + p_2(n) ~3^n$$ sẽ thõa mãn phương trình sai phân, trong đó $p_1(n)$ là một đa thức có bậc bé thua $1$ và $p_2(n)$ là một đa thức có bậc bé thua $2$. Tức là $$p_1(n) = a, ~~~ p_2(n) = b + c ~n.$$ Vậy $$f_n = a ~ 2^n + (b + c~n)~ 3^n.$$ Từ điều kiện ban đầu, chúng ta có hệ phương trình $$f_0 = a + b = 1,$$ $$f_1 = 2 a + 3 b + 3 c = 7,$$ $$f_2 = 4 a + 9 b + 18 c = 32.$$ Giải hệ phương trình này chúng ta có $a = -1$, $b=2$ và $c = 1$. Từ đó chúng ta có $$f_n = (2 + n) ~3^n - 2^n.$$


Để kết thúc bài viết này, chúng ta ôn lại phương pháp giải phương trình sai phân tuyến tính để tìm công thức tổng quát cho dãy số.

Giả sử chúng ta cần tìm công thức cho dãy số $\{f_n\}$ thõa mãn phương trình sai phân $$a_k f_{n} + a_{k-1} f_{n-1} + a_{k-2} f_{n-2} + \dots + a_0 f_{n-k}=0$$ với điều kiện ban đầu là những giá trị của $f_0, f_1, \dots, f_{k-1}$, chúng ta sẽ giải bằng hai bước sau đây.

Bước 1. Giải phương trình sai phân.
Tạo phương trình đặc trưng $$a_k x^k + a_{k-1} x^{k-1} + \dots + a_1 x + a_0=0$$ và tìm nghiệm của nó
$$a_k x^k + a_{k-1} x^{k-1} + \dots + a_1 x + a_0=a_k(x - z_1)^{j_1} (x - z_2)^{j_2} \dots (x - z_t)^{j_t}.$$
Giả sử phương trình đặc trưng có $t$ nghiệm $z_1, \dots, z_t$, trong đó $z_1$ là nghiệm bội bậc $j_1$, $z_2$ là nghiệm bội bậc $j_2$, v.v... Vậy thì với mọi đa thức $p_1(n)$, ..., $p_t(n)$ có bậc lần lượt bé thua $j_1$,..., $j_t$, dãy số $$f_n = p_1(n) ~ z_1^n + p_2(n) ~ z_2^n+ \dots + p_t(n) ~ z_t^n$$ thõa mãn phương trình sai phân $$a_k f_{n} + a_{k-1} f_{n-1} + a_{k-2} f_{n-2} + \dots + a_0 f_{n-k}=0.$$ 
Bước 2. Giải quyết các điều kiện ban đầu.
Thay các giá trị của $f_0, f_1, \dots, f_{k-1}$ vào biểu thức của $f_n$ để lập một hệ phương trình rồi giải hệ phương trình này để tìm ra công thức tổng quát cho dãy số $\{f_n\}$.

Chúng ta nhận xét rằng nếu $j_1 = \dots = j_t=1$, tức là phương trình đặc trưng chỉ có toàn nghiệm đơn $$a_k x^k + a_{k-1} x^{k-1} + \dots + a_1 x + a_0=a_k(x - z_1) (x - z_2) \dots (x - z_k) $$ thì các đa thức $p_1(n)$,..., $p_k(n)$ có bậc bé thua $1$, vậy các đa thức này là các hằng số, $p_i(n) = \alpha_i$, và chúng ta có công thức $$f_n = \alpha_1 ~ z_1^n + \alpha_2 ~ z_2^n+ \dots + \alpha_k ~ z_k^n.$$




Chúng ta tạm dừng ở đây. Bởi vì chúng ta đã chứng minh xong định lý cơ bản về phương trình sai phân tuyến tính, đây là thời điểm rất tốt để các bạn đọc lại toàn bộ chuỗi bài về dãy số, bắt đầu từ bài đầu tiên này.

Hẹn gặp lại các bạn ở các kỳ sau.






Bài tập về nhà.


1. Dùng quy nạp để chứng minh công thức sai phân liên tiếp $$\Delta^j(P(x)) = \sum_{v=0}^{j} (-1)^{j-v} {j \choose v} P(x + v).$$

2. Chứng minh các tính chất quan trọng sau đây của sai phân đa thức:
  • Với mọi $n > 0$, sai phân của đa thức bậc $n$ là một đa thức bậc $n-1$.
  • Sai phân cấp $n$ của một đa thức bậc $n$ là một hằng số.
  • Sai phân cấp $n+1$ của một đa thức bậc $n$ bằng $0$.

3. Tính sai phân $\Delta(P(x))$ cho các trường hợp sau:
  • $P(x) = a^x$
  • $P(x) = x^n$
  • $P(x) = x(x+1)$
  • $P(x) = x(x+1)(x+2)$
  • $P(x) = 1/[x(x+1)]$
  • $P(x) = 1/[x(x+1)(x+2)]$
  • $P(x) = F_x$ số Fibonacci

4. Tính tổng $$1 \times 2 + 2 \times 3 + \dots + n(n+1)$$ $$\frac{1}{1 \times 2} + \frac{1}{2 \times 3} + \dots + \frac{1}{n(n+1)}$$
Tổng quát hoá các kết quả này.

5. Chứng minh công thức sai phân cho một tích
$$\Delta(u(x) v(x)) = \Delta(u(x)) ~v(x) + u(x+1) ~\Delta(v(x)).$$