Nội dung

Chuỗi Taylor - Một cách dễ nhớ

Khai triển Taylor (Taylor expansion) là một trong những ý tưởng đẹp nhất của toán học. Ý tưởng đằng sau của nó khá đơn giản: hầu hết các hàm số (giả sử gọi là $f$) đều trơn (smooth) (khả vi vô hạn lần) trên một khoảng $(a,b)$ nào đó, hay $f\in C^\infty(a,b)$. Trong khi đó, ta cũng biết rằng các đa thức (polynomials) cũng trơn (trên toàn bộ $\mathbb{R}$). Vậy nên, với mỗi hàm trơn, ta có thể dùng một đa thức để xấp xỉ (approximate) hàm đó đủ tốt.

Trên thực tế, đa thức có thể chứa vô số hạng tử (term). Và nếu ta thực sự dùng đến vô số hạng tử (vì hàm ban đầu khả vi vô hạn lần trên khoảng $(a,b)$) thì hoàn toàn có thể “khớp” chính xác với hàm ban đầu. Bên cạnh đó, vì thao tác trên đa thức thường dễ hơn nhiều so với các loại hàm khác, nên cách xấp xỉ này thường giúp ta “lách” các bài toán khó (hàm trơn ban đầu) bằng cách chuyển qua xử lí bài toán dễ hơn (hàm đa thức).

Công thức Taylor chính là chìa khóa. Nó chỉ ra cách tìm ra khai triển đa thức (polynomial expansion) cho mỗi hàm trơn $f$ cho trước. Tuy nhiên, dù ý tưởng của nó khá đơn giản, công thức của nó thì lại không dễ ăn như thế. Người mới học có thể thấy phức tạp, và ngay cả những ai có kinh nghiệm cũng dễ quên nếu lâu ngày không đụng đến.

Trong bài viết này, tôi sẽ chia sẻ một mẹo nhỏ giúp tôi tự suy diễn lại công thức Taylor từ đầu mỗi khi cần (tức là tôi cũng chẳng nhớ nổi).

Bắt đầu từ hai bàn tay trắng

Ý tưởng của khai triển Taylor là ta có thể thay thế hàm trơn $f$ bằng một tổng vô hạn (infinite sum) các hạng tử đa thức (polynomial terms), kí hiệu $Tf$. Nói cách khác

$$f(x) = Tf(x) \qquad\qquad(1)$$

Do đó, bước đầu tiên, ta viết ra một đa thức bậc $n$ tổng quát như sau:

$$Tf(x) = \textcolor{#FF1394}{a_0}+\textcolor{#FF1394}{a_1}(x-c)+\textcolor{#FF1394}{a_2}(x-c)^2+\textcolor{#FF1394}{a_3}(x-c)^3+\dots\qquad\qquad(2)$$

Trong đó $\textcolor{#FF1394}{a_0}, \textcolor{#FF1394}{a_1}, \textcolor{#FF1394}{a_2}, \dots$ là các hệ số (coefficients) của từng hạn tử đa thức, và $c$ là hằng số (constant) ứng với một vị trí nào đó trên trục $x$ mà ta cần xấp xỉ (trường hợp $c = 0$, khai triển Taylor lúc này còn được gọi là khai triển Maclaurin). Dĩ nhiên $c$ phải nằm trong khoảng $(a,b)$. Vế phải của (1) còn được gọi là chuỗi lũy thừa (power series). Ta có thể viết gọn lại thành:

$$Tf(x)=\sum_{j=0}^\infty \textcolor{#FF1394}{a_j}(x-c)^j\qquad\qquad(3)$$

Đến đây, thứ mà ta thấy rắc rối nhất, cũng hay quên nhất chính là các hệ số $\textcolor{#FF1394}{a_0}, \textcolor{#FF1394}{a_1}, \textcolor{#FF1394}{a_2}, \dots$ trong phương trình (equation) (2) đó. Vậy nên, mục tiêu lúc này là tìm ra một công thức khéo léo nào đó để suy ra các hệ số trên thật dễ dàng khi cần.

Với một hàm $f$ cho trước và hằng $c$. Vì cả 2 vế đều là hàm trơn (ít nhất thì vế trái là trơn trên $(a,b)$, còn vế phải thì trơn trên toàn $\mathbb{R}$), nên chắc chắn khả vi vô hạn lần — tức là ta có thể tính đạo hàm bậc nhất, bậc hai, bậc ba,… đến bao nhiêu tuỳ thích.

Lấy đạo hàm về phải của phương trình (1), ta được:

$$ \begin{align*} Tf'(x) &= \textcolor{#FF1394}{a_1}+2\textcolor{#FF1394}{a_2}(x-c)+3\textcolor{#FF1394}{a_3}(x-c)^2+4\textcolor{#FF1394}{a_4}(x-c)^3+\dots\\ Tf''(x) &= 2\textcolor{#FF1394}{a_2}+6\textcolor{#FF1394}{a_3}(x-c)+12\textcolor{#FF1394}{a_4}(x-c)^2+20\textcolor{#FF1394}{a_5}(x-c)^3+\dots\\ Tf'''(x) &= 6\textcolor{#FF1394}{a_3}+24\textcolor{#FF1394}{a_4}(x-c)+60\textcolor{#FF1394}{a_5}(x-c)^2+120\textcolor{#FF1394}{a_6}(x-c)^3+\dots\\ \vdots \end{align*} $$

Nếu tinh ý, ta sẽ nhận ra rằng khi tính tại $x = c$ (bao gồm cả $Tf(x)$), hầu hết các hạng tử sẽ về 0, chỉ để lại các hệ số $\textcolor{#FF1394}{a_0}, \textcolor{#FF1394}{a_1}, \textcolor{#FF1394}{a_2}, \dots$ nhân với một hằng số. Tức là:

$$ \begin{align*} Tf(c) &= \textcolor{#FF1394}{a_0}\\ Tf'(c) &= \textcolor{#FF1394}{a_1}\\ Tf''(c) &= 2\textcolor{#FF1394}{a_2}\\ Tf'''(c) &= 6\textcolor{#FF1394}{a_3}\\ \vdots \end{align*} $$

Và cũng không hề ngẫu nhiên, các hằng số đó bằng giai giừa của số bậc đạo hàm. Tức là

$$ \begin{align*} Tf(c) &= 1*\textcolor{#FF1394}{a_0} &= 0! &* \textcolor{#FF1394}{a_0}\\ Tf'(c) &= 1*\textcolor{#FF1394}{a_1} &= 1! &* \textcolor{#FF1394}{a_1}\\ Tf''(c) &= 2*\textcolor{#FF1394}{a_2} &= 2! &* \textcolor{#FF1394}{a_2}\\ Tf'''(c) &= 6*\textcolor{#FF1394}{a_3} &= 3! &* \textcolor{#FF1394}{a_3}\\ \vdots \end{align*} $$

Tổng quát hoá lên, ta được:

$$Tf^{(n)}(c) = n! * \textcolor{#FF1394}{a_n}.$$

Trong khi đó, từ (1), ta cũng suy ra được $Tf^{(n)}(c) = f^{(n)}(c)$, vậy nên

$$f^{(n)}(c) = n! * \textcolor{#FF1394}{a_n}.$$

Giờ đây, ta có một hệ phương trình đơn giản có thể giải cho các hệ số $\textcolor{#FF1394}{a_0}, \textcolor{#FF1394}{a_1}, \textcolor{#FF1394}{a_2}, \dots$. Chỉ cần chia cả hai vế cho $n!.$ Điều này dẫn đến kết quả sau:

$$ \begin{align*} \textcolor{#FF1394}{a_0} &= \frac{f(c)}{0!}\\ \textcolor{#FF1394}{a_1} &= \frac{f'(c)}{1!}\\ \textcolor{#FF1394}{a_2} &= \frac{f''(c)}{2!}\\ \textcolor{#FF1394}{a_3} &= \frac{f'''(c)}{3!}\\ \vdots \end{align*} $$

Quy luật ở đây khá đẹp. Hệ số bậc $n$ chỉ đơn giản là đạo hàm bậc $n$ của hàm ban đầu, tính tại $c$, rồi chia cho $n!.$ Giờ chúng ta đã có các hệ số cần thiết. Bước tiếp theo là thay chúng vào biểu thức tổng quát (2) như sau:

$$ \begin{aligned} Tf(x) &= \textcolor{#FF1394}{a_0} + \textcolor{#FF1394}{a_1}(x-c) + \textcolor{#FF1394}{a_2}(x-c)^2 + \textcolor{#FF1394}{a_3}(x-c)^3 + \dots\\ &= \textcolor{#FF1394}{\frac{f(c)}{0!}}+\textcolor{#FF1394}{\frac{f'(c)}{1!}}(x-c)+\textcolor{#FF1394}{\frac{f''(c)}{2!}}(x-c)^2+\textcolor{#FF1394}{\frac{f'''(c)}{3!}}(x-c)^3+\dots \end{aligned} $$

Đây chính là cái ta cần. Kết quả sẽ là một xấp xỉ tốt cho hàm ban đầu. Càng thêm nhiều số hạng, xấp xỉ càng gần với hàm gốc.

Kết quả: Công thức Taylor

Bước cuối cùng là viết chuỗi vô hạn này dưới dạng tổng gọn:

$$ f(x) = \sum_{j=0}^\infty \textcolor{#FF1394}{\frac{f^{(j)}(c)}{j!}}(x-c)^j $$

Bài học rút ra rất đơn giản: đừng lãng phí thời gian học thuộc công thức, hãy học phương pháp. Nếu bạn nắm được logic cơ bản của khai triển Taylor, bạn có thể dễ dàng suy diễn lại công thức từ đầu khi cần.

Tham khảo