Hàm sinh Hàm sinh là một trong những sáng tạo thần tình, bất ngờ, nhiều ứng dụng của toán rời rạc. Nói một cách nôm na, hàm sinh chuyển những bài toán về dãy số thành những bài toán về hàm số. Điều này là rất tuyệt vời vì chúng ta đã có trong tay cả một cỗ máy lớn để làm việc với các hàm số. Nhờ vào hàm sinh, chúng ta có thể áp dụng cỗ máy này vào các bài toán dãy số. Bằng cách này, chúng ta có thể sử dụng hàm sinh trong việc giải tất cả các dạng toán về phép đếm. Có cả một ngành toán học lớn nghiên cứu về hàm sinh, vì thế, trong bài này, chúng ta chỉ tìm hiểu những vấn đề căn bản nhất về chủ đề này. Trong bài viết này, các dãy số sẽ được để trong ngoặc để phân biệt với các đối tượng toán học khác. 1. Hàm sinh Hàm sinh thường của dãy số vô hạng là chuỗi luỹ thừa hình thức G(x) = g0 + g1x + g2x2 + g3x3 … Ta gọi làm sinh là chuỗi hình thức bởi vì thông thường ta sẽ chỉ coi x là một ký hiệu thay thế thay vì một số. Chỉ trong một vài trường hợp ta sẽ cho x nhận các giá trị thực, vì thế ta gần như cũng không để ý đến sự hội tụ của các chuỗi. Có một số loại hàm sinh khác nhưng trong bài này, ta sẽ chỉ xét đến hàm sinh thường. Trong bài này, ta sẽ ký hiệu sự tương ứng giữa một dãy số và hàm sinh bằng dấu mũi tên hai chiều như sau « g0 + g1x + g2x2 + g3x3 +… Ví dụ, dưới đây là một số dãy số và hàm sinh của chúng « 0 + 0.x + 0.x2 + 0.x3 + … = 0 « 1 + 0.x + 0.x2 + 0.x3 + … = 1 « 3 + 2x + x2 + 0.x3 + … = x2 + 2x + 3 Quy tắc ở đây rất đơn giản: Số hạng thứ i của dãy số (đánh số từ 0) là hệ số của xi trong hàm sinh. Nhắc lại công thức tính tổng của các số nhân lùi vô hạn là Đẳng thức này không đúng với |z| ³ 1, nhưng một lần nữa ta không quan tâm đến vấn đề hội tụ. Công thức này cho chúng ta công thức tường minh cho hàm sinh của hàng loạt các dãy số « 1 + x + x2 + x3 + … = 1/(1-x) « 1 - x + x2 - x3 + … = 1/(1+x) « 1 + ax + a2x2 + a3x3 + … = 1/(1-ax) « 1 + x2 + x4 + … = 1/(1-x2) Các phép toán trên hàm sinh Phép màu của hàm sinh nằm ở chỗ ta có thể chuyển các phép toán thực hiện trên dãy số thành các phép toán thực hiện trên các hàm sinh tương ứng của chúng. Chúng ta cùng xem xét các phép toán và các tác động của chúng trong thuật ngữ dãy số. 2.1. Nhân với hằng số Khi nhân hàm sinh với một hằng số thì trong dãy số tương ứng, các số hạng sẽ được nhân với hằng số đó. Ví dụ « 1 + x2 + x4 + … = 1/(1-x2) Nhân hàm sinh với 2, ta được 2/(1-x2) = 2 + 2x2 + 2x4 + … là hàm sinh của dãy số Quy tắc 1. (Quy tắc nhân với hằng số) Nếu « F(x) thì « cF(x) Chứng minh. « cf0 + (cf1)x + (cf2)x2 + (cf3)x3 + … = c(f0 + f1x+f2x2 + f3x3 + …) = cF(x). 2.2. Cộng Cộng hai hàm sinh tương ứng với việc cộng các số hạng của dãy số theo đúng chỉ số. Ví dụ, ta cộng hai dãy số trước đó « 1/(1-x) + « 1/(1+x) « 1/(1-x) + 1/(1+x) Bây giờ ta thu được hai biểu thức khác nhau cùng sinh ra dãy (2, 0, 2, 0, …). Nhưng điều này không có gì ngạc nhiên vì thực ra chúng bằng nhau: 1/(1-x) + 1/(1+x) = [(1+x) + (1-x)]/(1-x)(1+x) = 2/(1-x2) Quy tắc 2. (Quy tắc cộng) Nếu « F(x), « G(x) thì « F(x) + G(x) Chứng minh. « f0+g0+ (f1+g1)x + (f2+g2)x2 + … = (f0 + f1x + f2x2 + …) + (g0 + g1x + g2x2 + …) = F(x) + G(x) 2.3. Dịch chuyển sang phải Ta bắt đầu từ một dãy số đơn giản và hàm sinh của nó « 1/(1-x) Bây giờ ta dịch chuyển dãy số sang phải bằng cách thêm k số 0 vào đầu « xk + xk+1 + xk+2 + … = xk(1+x+x2 + …) = xk/(1-x) Như vậy, thêm k số 0 vào đầu dãy số tương ứng với việc nhân hàm sinh với xk. Điều này cũng đúng trong trường hợp tổng quát. Quy tắc 3. (Quy tắc dịch chuyển phải) Nếu « F(x) thì « xk.F(x) (có k số 0) Chứng minh. « f0xk + f1xk+1 + f2xk+2 + … = xk(f0 + f1x + f2x2 + …) = xkF(x) 2.4. Đạo hàm Điều gì sẽ xảy ra nếu ta lấy đạo hàm của hàm sinh? Chúng ta hãy bắt đầu từ việc lấy đạo hàm của một hàm sinh đã trở nên quen thuộc của dãy số toàn 1: Ta tìm được hàm sinh cho dãy số ! Tổng quát, việc lấy đạo hàm của hàm sinh có hai tác động lên dãy số tương ứng: các số hạng được nhân với chỉ số và toàn bộ dãy số được dịch chuyển trái sang 1 vị trí. Quy tắc 4. (Quy tắc đạo hàm) Nếu « F(x) thì « dF(x)/dx Chứng minh. « f1 + 2f2x + 3f3x2 + … = (d/dx)(f0 + f1x + f2x2 + f3x3 + …) = dF(x)/dx Quy tắc đạo hàm là một quy tắc rất hữu hiệu. Trong thực tế, ta thường xuyên cần đến một trong hai tác động của phép đạo hàm, nhân số hạng với chỉ số và dịch chuyển sang trái. Một cách điển hình, ta chỉ muốn có một tác động và tìm cách “vô hiệu hoá” tác động còn lại. Ví dụ, ta thử tìm hàm sinh cho dãy số . Nếu ta có thể bắt đầu từ dãy thì bằng cách nhân với chỉ số 2 lần, ta sẽ được kết quả mong muốn = Vấn đề là ở chỗ phép đạo hàm không chỉ nhân số hạng dãy số với chỉ số mà còn dịch chuyển sang trái 1 vị trí. Thế nhưng, quy tắc 3 dịch chuyển phải cho chúng ta cách để vô hiệu hoá tác động này: nhân hàm sinh thu được cho x. Như vậy cách làm của chúng ta là bắt đầu từ dãy số , lấy đạo hàm, nhân với x, lấy đạo hàm rồi lại nhân với x. « 1/(1-x) « (d/dx)(1/(1-x)) = 1/(1-x)2 « x/(1-x)2 « (d/dx)( x/(1-x)2) = (1+x)/(1-x)3 « x(1+x)/(1-x)3 Như vậy hàm sinh cho dãy các bình phương là x(1+x)/(1-x)3. 3. Dãy số Fibonacci Đôi khi chúng ta có thể tìm được hàm sinh cho các dãy số phức tạp hơn. Chẳng hạn dưới đây là hàm sinh cho dãy số Fibonacci: « x/(1-x-x2) Chúng ta thấy dãy số Fibonacci biến đổi khá khó chịu, nhưng hàm sinh của nó thì rất đơn giản. Chúng ta sẽ thiết lập công thức tính hàm sinh này và qua đó, tìm được công thức tường minh tính các số hạng tổng quát của dãy số Fibonacci. Dĩ nhiên, chúng ta đã biết công thức tính số hạng tổng quát của dãy Fibonacci trong phần phương pháp giải các phương trình sai phân tuyến tính hệ số hằng. Nhưng điều này không ngăn cản chúng ta một lần nữa tìm cách giải thích sự xuất hiện của phương trình đặc trưng, cách xử lý trường hợp nghiệm kép thông qua công cụ hàm sinh. Hơn nữa, phương pháp hàm sinh còn giúp chúng ta giải quyết hàng loạt các bài toán về dãy số đệ quy khác nữa, trong đó có những phương trình mà chúng ta hoàn toàn bó tay với các phương pháp khác. 3.1. Tìm hàm sinh Ta bắt đầu bằng cách nhắc lại định nghĩa của dãy Fibonacci: f0 = 0 f1 = 1 fn = fn-1 + fn-2 với n ³ 2 Ta có thể khai triển đẳng thức cuối cùng thành dãy vô hạn các đẳng thức. Như thế dãy số Fibonacci xác định bởi f0 = 0 f1 = 1 f2 = f1 + f0 f3 = f2 + f1 f4 = f3 + f2 … Bây giờ, cách làm tổng quát của chúng ta là: định nghĩa F(x) là hàm sinh của dãy số ở bên trái của các đẳng thức, chính là các số Fibonacci. Sau đó chúng ta tìm được hàm sinh cho dãy số ở vế phải. Cho hai vế bằng nhau và ta giải ra được hàm sinh F(x). Ta hãy cùng làm điều này. Đầu tiên ta định nghĩa F(x) = f0 + f1x + f2x2 + f3x3 + f4x4 + … Bây giờ, ta cần tìm hàm sinh cho dãy số Một trong những cách tiếp cận là tách các dãy số của chúng ta thành cách dãy mà chúng ta đã biết hàm sinh, sau đó áp dụng Quy tắc cộng « x « xF(x) + « x2F(x) x + xF(x) + x2F(x) Dãy số này gần như là dãy số nằm ở vế phải của dãy Fibonacci, chỉ có 1 khác biệt duy nhất là 1+f0 ở vị trí thứ hai. Nhưng do f0 = 0 nên điều này không có ý nghĩa gì. Như vậy, ta có F(x) = x + xF(x) + x2F(x) và từ đó F(x) = x/(1-x-x2), đó chính là công thức mà chúng ta đã nói đến ở phần đầu. 3.2. Tìm công thức tường minh Tại sao chúng ta lại phải tìm hàm sinh của một dãy số? Có một vài câu trả lời cho câu hỏi này, nhưng dưới đây là một trong những câu trả lời đó: nếu ta tìm được hàm sinh cho một dãy số, trong nhiều trường hợp, ta có thể tìm được công thức tường minh cho các số hạng của dãy số đó, và đây là điều rất cần thiết. Ví dụ công thức tường minh cho hệ số của xn trong khai triển của x/(1-x-x2) chính là công thức tường minh cho số hạng thứ n của dãy số Fibonacci. Như vậy công việc tiếp theo của chúng ta là tìm các hệ số từ hàm sinh. Có một vài cách tiếp cận cho bài toán này. Đối với các hàm phân thức, là tỷ số của các đa thức, chúng ta có thể sử dụng phương pháp phân tích thành các phân thức sơ cấp mà chúng ta đã biết ở phần tích phân các hàm hữu tỷ. Ta có thể tìm được dễ dàng các hệ số cho các phân thức sơ cấp, từ đó tìm được các hệ số cần tìm. Ta sẽ thử làm cho hàm sinh của dãy số Fibonacci. Đầu tiên, ta phân tích mẫu số ra thừa số x/(1-x-x2) = x/(1-a1x)(1-a2x) trong đó . Tiếp theo, ta tìm các hằng số A1, A2 sao cho Ta có thể làm điều này bằng phương pháp hệ số bất định hoặc thay x các giá trị khác nhau để thu được các phương trình tuyến tính đối với A1, A2. Ta có thể tìm được A1, A2 từ các phương trình này. Thực hiện điều này, ta được Thay vào đẳng thức nói trên, ta được khai triển của F(x) thành các phân thức sơ cấp Mỗi một số hạng trong khai triển có chuỗi luỹ thừa đơn giản cho bởi công thức Thay các công thức này vào, ta được chuỗi luỹ thừa cho hàm sinh Từ đó suy ra Đây chính là công thức mà ta cũng đã tìm được trong phần giải các phương trình sai phân tuyến tính hệ số hằng. Cách tiếp cận mới này làm sáng tỏ thêm một số vấn của phương pháp đã đề cập tới. Nói riêng, quy tắc tìm nghiệm của phương trình sai phân trong trường hợp phương trình đặc trưng có nghiệm kép là hệ quả của quy tắc tìm khai triển phân thức sơ cấp! 4. Đếm bằng hàm sinh Hàm sinh có thể được áp dụng trong các bài toán đếm. Nói riêng, các bài toán chọn các phần tử từ một tập hợp thông thường sẽ dẫn đến các hàm sinh. Khi hàm sinh được áp dụng theo cách này, hệ số của xn chính là số cách chọn n phần tử. 4.1. Chọn các phần tử khác nhau Hàm sinh cho dãy các hệ số nhị thức được suy ra trực tiếp từ định lý nhị thức Như vậy hệ số của xn trong (1+x)k bằng số cách chọn n phần tử phân biệt từ một tập hợp gồm k phần tử. Ví dụ, hệ số của x2 là C2k, số cách chọn 2 phần tử từ tập hợp k phần tử. Tương tự, hệ số của xk+1 là số cách chọn k+1 phần tử từ tập hợp k phần tử và như thế, bằng 0. 4.2. Xây dựng các hàm sinh để đếm Thông thường ta có thể dịch mô tả của bài toán đếm thẳng sang ngôn ngữ hàm sinh để giải. Ví dụ, ta có thể chứng tỏ rằng (1+x)k sẽ sinh ra số các cách chọn n phần tử phân biệt từ tập hợp k phần tử mà không cần dùng đến định lý nhị thức hay các hệ số nhị thức! Ta làm như sau. Đầu tiên, ta hãy xét tập hợp có một phần tử {a1}. Hàm sinh cho số cách chọn n phần tử từ tập hợp này đơn giản là 1 + x. Ta có 1 cách chọn không phần tử nào, 1 cách chọn 1 phần tử và 0 cách chọn hai phần tử trở lên. Tương tự, số cách chọn n phần tử từ tập hợp {a2} cũng cho bởi hàm sinh 1 + x. Sự khác biệt của các phần tử trong hai trường hợp trên là không quan trọng. Và bây giờ là ý tưởng chính: hàm sinh cho số cách chọn các phần tử từ hợp của hai tập hợp bằng tích các hàm sinh cho số cách chọn các phần tử từ mỗi tập hợp. Chúng ta sẽ giải thích chặt chẽ điều này, nhưng trước hết, hãy xem xét một ví dụ. Theo nguyên lý này, hàm sinh cho số cách chọn các phần tử từ tập hợp {a1, a2} là (1+x). (1+x) = (1+x)2 = 1 + 2x + x2 Có thể kiểm chứng rằng đối với tập hợp {a1, a2} ta có 1 cách chọn 0 phần tử, 2 cách chọn 1 phần tử, 1 cách chọn 2 phần tử và 0 cách chọn 3 phần tử trở lên. Tiếp tục áp dụng quy tắc này, ta sẽ được hàm sinh cho số cách chọn n phần tử từ tập hợp k phần tử (1+x).(1+x)…(1+x) = (1+x)k Đây chính là công thức hàm sinh mà ta đã nhận được bằng cách sử dụng định lý nhị thức. Nhưng lần này, chúng ta đã đi thẳng từ bài toán đếm đến hàm sinh. Chúng ta có thể mở rộng điều này thành một nguyên lý tổng quát. Quy tắc 5 (Quy tắc xoắn). Gọi A(x) là hàm sinh cho cách chọn các phần tử từ tập hợp A và B(x) là hàm sinh cho cách chọn các phần tử từ tập hợp B. Nếu A và B là rời nhau thì hàm sinh cho cách chọn các phần tử từ A È B là A(x).B(x). Quy tắc này là khá đa nghĩa, vì cần hiểu chính xác cách chọn các phần tử từ một tập hợp có nghĩa là thế nào? Rất đáng chú ý là Quy tắc xoắn vẫn đúng cho nhiều cách hiểu khác nhau của từ cách chọn. Ví dụ, ta có thể đòi hỏi chọn các phần tử phân biệt, cũng có thể cho phép được chọn một số lần có giới hạn nào đó, hoặc cho chọn lặp lại tuỳ ý. Một cách nôm na, giới hạn duy nhất là (1) thứ tự chọn các phần tử không quan trọng (2) những giới hạn áp dụng cho việc chọn các phần tử của A và B cũng áp dụng cho việc chọn các phần tử của A È B (Chặt chẽ hơn, cần có một song ánh giữa các cách chọn n phần tử từ A È B với bộ sắp thứ tự các cách chọn từ A và B chứa tổng thể n phần tử) Chứng minh. Định nghĩa Đầu tiên ta hãy tính tích A(x).B(x) và biểu diễn hệ số cn thông qua các hệ số a và b. Ta có thể sắp xếp các số hạng này thành dạng bảng b0 b1x b2x2 b3x3 … a0 a0b0 a0b1x a0b2x2 a0b3x3 … a1x a1b0x a1b1x2 a1b2x3 a2x2 a2b0x2 a2b1x3 a3x3 a3b0x3 … Chú ý rằng các số hạng có cùng luỹ thừa của x xếp trên các đường chéo /. Nhóm tất cả các số hạng này lại, ta thấy rằng hệ số của xn trong tích bằng cn = a0bn + a1bn-1 + … + anb0 Bây giờ ta chứng minh rằng đây cũng chính là số cách chọn n phần tử từ A È B. Một cách tổng quát, ta có thể chọn n phần tử từ A È B bằng cách chọn j phần tử từ A và n-j phần tử từ B, trong đó j là một số từ 0 đến n. Điều này có thể được thực hiện bằng ajbn-j cách. Lấy tổng từ 0 đến n, ta có a0bn + a1bn-1 + … + anb0 cách chọn n phần tử từ A È B. Đó chính xác là giá trị cn đã được tính ở trên. Biểu thức cn = a0bn + a1bn-1 + … + anb0 đã được biết đến trong môn xử lý tín hiệu số; dãy là xoắn (convolution) của hai dãy và . 4.3. Chọn các phần tử có lặp Xét bài toán: Có bao nhiêu cách chọn 12 cây kẹo từ 5 loại kẹo? Bài toán này có thể tổng quát hoá như sau: Có bao nhiêu cách chọn ra k phần tử từ tập hợp có n phần tử, trong đó ta cho phép một phần tử có thể được chọn nhiều lần? Trong thuật ngữ này, bài toán chọn kẹo có thể phát biểu có bao nhiêu cách chọn 12 cây kẹo từ tập hợp {kẹo sữa, kẹo sô-cô-la, kẹo chanh, kẹo dâu, kẹo cà-phê} nếu ta cho phép lấy nhiều viên kẹo cùng loại. Ta sẽ tiếp cận lời giải bài toán này từ góc nhìn của hàm sinh. Giả sử ta chọn n phần tử (có lặp) từ tập hợp chỉ có duy nhất một phần tử. Khi đó có 1 cách chọn 0 phần tử, 1 cách chọn 1 phần tử, 1 cách chọn 2 phần tử … Như thế, hàm sinh của cách chọn có lặp từ tập hợp có 1 phần tử bằng « 1 + x + x2 + x3 + … = 1/(1-x) Quy tắc xoắn nói rằng hàm sinh của cách chọn các phần tử từ hợp của các tập hợp rời nhau bằng tích của các hàm sinh của cách chọn các phần tử từ mỗi tập hợp: Như thế, hàm sinh của cách chọn các phần tử từ tập hợp n phần tử có lặp là 1/(1-x)n. Bây giờ ta cần tính các hệ số của hàm sinh này. Để làm điều này, ta sử dụng công thức Taylor: Định lý 1 (Định lý Taylor) Định lý này nói rằng hệ số của xk trong 1/(1-x)n bằng đạo hàm bậc k của nó tại điểm 0 chia cho k!. Tính đạo hàm bậc k của hàm số này không khó. Đặt g(x) = 1/(1-x)n = (1-x)-n Ta có g’(x) = n(1-x)-n-1 g’’(x) = n(n+1)(1-x)-n-2 g’’’(x) = n(n+1)(n+2)(1-x)-n-3 … g(k)(x) = n(n+1)…(n+k-1)(1-x)-n-k Từ đó, hệ số của xk trong hàm sinh bằng Như vậy số cách chọn k phần tử có lặp từ n phần tử bằng 5. Một bài toán đếm “bất khả thi” Từ đầu bài đến giờ ta đã thấy những ứng dụng của hàm sinh. Tuy nhiên, những điều này ta cũng có thể làm được bằng những cách khác. Bây giờ ta xét một bài toán đếm rất khó chịu. Có bao nhiêu nhiêu cách sắp một giỏ n trái cây thoả mãn các điều kiện ràng buộc sau: Số táo phải chẵn Số chuối phải chia hết cho 5 Chỉ có thể có nhiều nhất 4 quả cam Chỉ có thể có nhiều nhất 1 quả đào Ví dụ, ta có 7 cách sắp giỏ trái cây có 6 trái: Táo 6 4 4 2 2 0 0 Chuối 0 0 0 0 0 5 5 Cam 0 2 1 4 3 1 0 Đào 0 0 1 0 1 0 1 Các điều kiện ràng buộc này quá phức tạp và có cảm giác như việc đi tìm lời giải là vô vọng. Nhưng ta hãy xem hàm sinh sẽ xử lý bài toán này thế nào. Trước hết, ta đi tìm hàm sinh cho số cách chọn táo. Có 1 cách chọn 0 quả táo, có 0 cách chọn 1 quả táo (vì số táo phải chẵn), có 1 cách chọn 2 quả táo, có 0 cách chọn 3 quả táo …Như thế ta có A(x) = 1 + x2 + x4 + … = 1/(1-x2) Tương tự, hàm sinh cho số cách chọn chuối là B(x) = 1 + x5 + x10 + … = 1/(1-x5) Bây giờ, ta có thể chọn 0 quả cam bằng 1 cách, 1 quả cam bằng 1 cách, … Nhưng ta không thể chọn hơn 4 quả cam, vì thế ta có C(x) = 1 + x + x2 + x3 + x4 = (1-x5)/(1-x) Và tương tự, hàm sinh cho số cách chọn đào là D(x) = 1 + x = (1-x2)/(1-x) Theo quy tắc xoắn, hàm sinh cho cách chọn từ cả 4 loại trái cây bằng Gần như tất cả được giản ước với nhau! Chỉ còn lại 1/(1-x)2 mà ta đã tìm được chuỗi luỹ thừa từ trước đó. Như thế số cách sắp giỏ trái cây gồm n trái cây đơn giản bằng n+1. Điều này phù hợp với kết quả mà ta đã tìm ra trước đó, vì có 7 cách sắp cho giỏ 6 trái cây. Thật là thú vị! 6. Các hàm sinh thường gặp 6.1. Định lý nhị thức mở rộng. Với u là một số thực và k là số nguyên không âm. Lúc đó hệ số nhị thức mở rộng được định nghĩa như sau Định lý 2. Cho x là số thực với |x| < 1 và u là một số thực. Lúc đó Định lý này có thể được chứng minh khá dễ dàng bằng cách sử dụng định lý Taylor. Ví dụ. Tìm khai triển luỹ thừa của các hàm sinh (1+x)-n và (1-x)-n Giải: Theo định lý nhị thức mở rộng, có thể suy ra Theo định nghĩa Từ đó Thay x bằng –x, ta được Ví dụ. Tìm khai triển luỹ thừa của (1-x)-1/2 Giải: Theo định lý nhị thức mở rộng, ta có Theo định nghĩa Từ đó Thay x bằng –x, ta được 6.2. Bảng các hàm sinh thường gặp Hàm số Khai triển luỹ thừa ak 1/(1-x) 1 + x + x2 + x3 + … 1 1/(1+x) 1 – x + x2 – x3 + … (-1)k 1/(1-ax) 1 + ax + a2x2 + a3x3 + … ak (1-xn+1)/(1-x) 1 + x + x2 + …+ xn 1 nếu k £ n, 0 nếu k > n (1+x)n 1/(1-x)n 1/(1-x)2 1 + 2x + 3x2 + 4x3 + … k+1 1/(1-ax)2 1 + 2ax + 3a2x2 + 4a3x3 + … (k+1)ak 1/(1-xr) 1 + xr + x2r + x3r + … 1 nếu r | k và 0 trong trường hợp ngược lại 1/(1+xr) 1 - xr + x2r - x3r + … (-1)s nếu k=sr và 0 trong trường hợp ngược lại ln(1+x) x – x2/2 + x3/3 – x4/4 + … 0 khi k = 0 và (-1)k/k ln(1-x) - x – x2/2 – x3/3 – x4/4 – … 0 khi k = 0 và -1/k arctgx x + x3/3 + x5/5 + … 0 với k chẵn và 1/k với k lẻ 7. Các ví dụ có lời giải 7.1. Cấp số nhân cộng Ta thử tìm lại công thức tính số hạng tổng quát cho cấp số nhân cộng, tức là dãy số xác định bởi a0 = a, an = axn-1 + d với mọi n = 1, 2, 3, … Đặt F(x) = a0 + a1x + a2x2 + a3x3 + … Ta có F(x) = a0 + a1x + a2x2 + a3x3 + … = a0 + (qa0 + d)x + (qa1+d)x2 + (qa2+d)x3 + … = a0 + qx(a0+a1x+a2x2+…) + dx(1+x+x2+…) = a + qxF(x) + dx/(1-x) Từ đó suy ra Ta tìm phân tích dạng Quy đồng mẫu số chung, ta được a + (d-a)x = A + B – (B+qA)x. Từ đó A + B = a, B + qA = a – d Suy ra A = d/(1-q) và B = a – d/(1-q). Cuối cùng, áp dụng các công thức khai triển quen thuộc, ta được . 7.2. Phương trình sai phân không thuần nhất Tiếp theo, ta xem hàm sinh “làm việc” thế nào đối với các phương trình sai phân không thuần nhất. Xét bài toán: Tìm công thức tổng quát của dãy số cho bởi a0 = 1, an = 2an-1 + 3n với n = 1, 2, 3, .. Theo đúng sơ đồ trên, ta xét F(x) = a0 + a1x + a2x2 + a3x3 + … Và thực hiện việc khai triển vế phải: F(x) = a0 + a1x + a2x2 + a3x3 + … = a0 + (2a0+3)x + (2a1+32)x2 + (2a2+33)x3 + … = (1 + 3x + (3x)2 + (3x)3 + …) + 2x(a0+a1x+a2x2+…) = 1/(1-3x) + 2xF(x) Từ đó suy ra Áp dụng công thức khai triển luỹ thừa cho các hàm số thường gặp, ta tìm được an = 3n+1 – 2n+1. Ta xem xét một ví dụ khác: Tìm công thức tổng quát của dãy số cho bởi a0 = 1, an = 2an-1 + n.3n. Đặt F(x) = a0 + a1x + a2x2 + a3x3 + … Xét F(x) = a0 + a1x + a2x2 + a3x3 + … = a0 + (2a0+1.3)x + (2a1+2.32)x2 + (2a2+3.33)x3 + … = 1 + 3x(1 + 2.(3x) + 3(3x)2 + …) + 2x(a0+a1x+a2x2+…) = 1 + 3x/(1-3x)2 + 2xF(x) Từ đó suy ra Dùng phương pháp hệ số bất định, ta tìm được phân tích Và từ đó an = 3(n+1)3n – 9.3n + 7.2n = (n-2)3n+1 + 7.2n. 7.3. Trường hợp phương trình đặc trưng có nghiệm kép Tiếp theo, ta xem xét hàm sinh “xử lý” trường hợp phương trình đặc trưng có nghiệm kép như thến nào. Xét bài toán: Tìm công thức tổng quát của dãy số xác định bởi a0 = 1, a1 = 4, an = 4(an-1-an-2) với mọi n = 2, 3, 4, … Theo sơ đồ chung, ta xét F(x) = a0 + a1x + a2x2 + a3x3 + a4x4 + … Bỏ qua hai số hạng đầu, các số hạng từ a2 trở đi được tính theo các số hạng trước đó F(x) = a0 + a1x + (4a1-4a0)x2 + (4a2-4a1)x3 + (4a3-4a2)x4 + … = 1 + 4x + 4x(a1x+a2x2+a3x3+…) – 4x2(a0+a1x+a