.. raw:: html .. _sec_integral_calculus: Giải tích Tích phân =================== .. raw:: html Phép vi phân mới chỉ là một nửa nội dung của môn giải tích truyền thống. Một nửa quan trọng khác, phép tích phân, bắt nguồn từ một câu hỏi có vẻ không mấy liên quan, “Diện tích của phần bên dưới đường cong này là bao nhiêu?” Dù vậy, phép tích phân lại liên hệ mật thiết tới phép vi phân thông qua *định lý cơ bản của giải tích* (*fundamental theorem of calculus*). .. raw:: html Ở mức độ kiến thức học máy ta thảo luận trong cuốn sách này, ta không cần thiết phải hiểu sâu sắc về phép tích phân. Tuy nhiên, chúng tôi sẽ giới thiệu khái quát để đặt nền tảng cho bất kỳ ứng dụng nào ta sẽ gặp sau này. .. raw:: html Diễn giải Hình học ------------------ .. raw:: html Giả sử ta có hàm :math:`f(x)`. Để đơn giản, giả sử :math:`f(x)` không âm (không cho ra số bé hơn không). Điều chúng ta muốn tìm hiểu là: diện tích của phần được giới hạn giữa :math:`f(x)` và trục :math:`x` là bao nhiêu? .. code:: python %matplotlib inline from d2l import mxnet as d2l from IPython import display from mpl_toolkits import mplot3d from mxnet import np, npx npx.set_np() x = np.arange(-2, 2, 0.01) f = np.exp(-x**2) d2l.set_figsize() d2l.plt.plot(x, f, color='black') d2l.plt.fill_between(x.tolist(), f.tolist()) d2l.plt.show() .. figure:: output_integral-calculus_vn_1b8b09_1_0.svg .. raw:: html Trong đa số trường hợp, diện tích của vùng này sẽ là vô cực hoặc không xác định (ví dụ như hàm :math:`f(x) = x^{2}`), nên ta thường nói về diện tích trong một khoảng giữa hai cận, ví dụ :math:`a` và :math:`b`. .. code:: python x = np.arange(-2, 2, 0.01) f = np.exp(-x**2) d2l.set_figsize() d2l.plt.plot(x, f, color='black') d2l.plt.fill_between(x.tolist()[50:250], f.tolist()[50:250]) d2l.plt.show() .. figure:: output_integral-calculus_vn_1b8b09_3_0.svg .. raw:: html Ta sẽ ký hiệu phần diện tích này với dấu tích phân như dưới đây: .. math:: \mathrm{Area}(\mathcal{A}) = \int_a^b f(x) \;dx. .. raw:: html Ta có thể sử dụng bất kì ký hiệu nào vì biến tích phân bên trong là tùy ý, cũng giống như biến chỉ số của phép tổng trong :math:`\sum`: .. math:: \int_a^b f(x) \;dx = \int_a^b f(z) \;dz. .. raw:: html Có một cách truyền thống để hiểu rõ hơn cách ta có thể xấp xỉ phép tích phân: ta có thể tưởng tượng cắt phần giữa :math:`a` và :math:`b` thành :math:`N` lát theo chiều dọc. Nếu :math:`N` lớn, ta có thể xấp xỉ phần diện tích mỗi lát bằng một hình chữ nhật, và sau đó tính tổng các diện tích để có được phần diện tích phía dưới đường cong. Hãy cùng lập trình và xét qua một ví dụ. Ta sẽ biết cách tính được giá trị thật sự của phép tích phân ở mục sau. .. code:: python epsilon = 0.05 a = 0 b = 2 x = np.arange(a, b, epsilon) f = x / (1 + x**2) approx = np.sum(epsilon*f) true = np.log(2) / 2 d2l.set_figsize() d2l.plt.bar(x.asnumpy(), f.asnumpy(), width=epsilon, align='edge') d2l.plt.plot(x, f, color='black') d2l.plt.ylim([0, 1]) d2l.plt.show() f'approximation: {approx}, truth: {true}' .. figure:: output_integral-calculus_vn_1b8b09_5_0.svg .. parsed-literal:: :class: output 'approximation: 0.79448557, truth: 0.34657359027997264' .. raw:: html Một vấn đề đó là trong khi cách này có thể làm một cách số học, ta chỉ có thể sử dụng cách tiếp cận phân tích này cho các hàm cực đơn giản như .. math:: \int_a^b x \;dx. .. raw:: html Bất kì hàm số nào hơi phức tạp hơn một chút như trong ví dụ trình bày ở đoạn mã trên .. math:: \int_a^b \frac{x}{1+x^{2}} \;dx. .. raw:: html nằm ngoài phạm vi ta có thể giải quyết bằng phương pháp này. .. raw:: html Thay vào đó, ta sẽ tiếp cận theo hướng khác. Ta sẽ làm việc một cách trực quan với khái niệm diện tích, và học công cụ tính toán chính được dùng để tính tích phân: *định lý cơ bản của giải tích*. Đây sẽ là nền tảng của ta trong quá trình học tích phân. .. raw:: html Định lý Cơ bản của Giải tích ---------------------------- .. raw:: html Để đào sâu hơn nữa vào lý thuyết tích phân, chúng tôi xin phép giới thiệu hàm .. math:: F(x) = \int_0^x f(y) dy. .. raw:: html Hàm này tính diện tích giữa :math:`0` và :math:`x` tùy thuộc vào việc :math:`x` thay đổi như thế nào. Để ý rằng đây là tất cả những gì ta cần, bởi vì .. math:: \int_a^b f(x) \;dx = F(b) - F(a). .. raw:: html Đây là một ký hiệu toán học biểu diễn diện tích khoảng giữa hai cận bằng hiệu diện tích của khoảng có cận xa hơn trừ đi diện tích của khoảng có cận gần hơn như trong :numref:`fig_area-subtract`. .. raw:: html .. _fig_area-subtract: .. figure:: ../img/sub-area.svg Minh họa tại sao ta có thể đơn giản bài toán tính diện tích dưới đường cong giữa hai điểm thành bài toán tính toán phần diện tích phía bên trái của một điểm. .. raw:: html Vì thế, ta có thể tính tích phân trong khoảng bất kỳ bằng việc tìm :math:`F(x)`. .. raw:: html Để làm điều này, hãy xem xét một thí nghiệm. Như thường làm trong giải tích, hãy tưởng tượng điều gì sẽ xảy ra khi ta dịch chuyển :math:`x` một khoảng nhỏ. Bằng nhận xét phía trên, ta có .. math:: F(x+\epsilon) - F(x) = \int_x^{x+\epsilon} f(y) \; dy. .. raw:: html Điều này cho ta biết hàm số :math:`F(x)` thay đổi bằng với diện tích phía dưới một đoạn cực nhỏ của hàm :math:`f(y)`. .. raw:: html Đây là lúc mà ta cần xấp xỉ. Nếu nhìn vào phần diện tích nhỏ đó, ta thấy phần diện tích này gần với diện tích của một hình chữ nhật với chiều cao là giá trị tại :math:`f(x)` và chiều rộng là :math:`\epsilon`. Thật vậy, khi :math:`\epsilon \rightarrow 0` phép xấp xỉ này càng chính xác. Vì thế, ta có thể kết luận .. math:: F(x+\epsilon) - F(x) \approx \epsilon f(x). .. raw:: html Tuy nhiên, ta có thể để ý rằng: phương trình này có dạng giống với khi ta tính đạo hàm của :math:`F`! Vì thế ta có được một sự thật khá bất ngờ rằng: .. math:: \frac{dF}{dx}(x) = f(x). .. raw:: html Đây chính là *định lý cơ bản của giải tích*. Ta có thể viết nó dưới dạng mở rộng là .. math:: \frac{d}{dx}\int_{-\infty}^x f(y) \; dy = f(x). :label: eq_ftc .. raw:: html Nó lấy ý tưởng về tìm kiếm diện tích (một *tiên nghiệm* khá khó), và giảm tải thành một mệnh đề đạo hàm (một khái niệm toán học đã được nghiên cứu sâu). Một lưu ý cuối là định lý này không cho ta biết dạng thực sự của :math:`F(x)`. Thực chất, :math:`F(x) + C` với :math:`C` bất kỳ đều có đạo hàm như nhau. Đây là sự thật chúng ta chấp nhận trong lý thuyết tích phân. Đáng mừng là khi làm việc với tích phân hữu hạn, phần hằng số bị loại bỏ, và vì thế không ảnh hưởng đến kết quả. .. math:: \int_a^b f(x) \; dx = (F(b) + C) - (F(a) + C) = F(b) - F(a). .. raw:: html Công thức trên có thể khá trừu tượng và vô nghĩa, nhưng nó cho ta một góc nhìn mới trong việc tính tích phân. Cách tiếp cận của ta không còn là phải “cắt ra và cộng lại” để tính diện tích, mà chỉ cần tìm một hàm số có đạo hàm là hàm hiện có! Đây là một điều tuyệt vời vì giờ ta có thể liệt kê hàng loạt các phép tích phân phức tạp chỉ bằng cách đảo ngược lại bảng trong :numref:`sec_derivative_table`. Ví dụ, ta biết đạo hàm của :math:`x^{n}` là :math:`nx^{n-1}`. Vì thế, bằng cách sử dụng định lý cơ bản :eq:`eq_ftc`, ta có: .. math:: \int_0^{x} ny^{n-1} \; dy = x^n - 0^n = x^n. .. raw:: html Tương tự, ta biết đạo hàm của :math:`e^{x}` là chính nó, nên: .. math:: \int_0^{x} e^{x} \; dx = e^{x} - e^{0} = e^x - 1. .. raw:: html Bằng cách này, ta có thể phát triển toàn bộ lý thuyết tích phân bằng cách tự do tận dụng những ý tưởng từ giải tích vi phân. Mỗi quy tắc tích phân đều bắt nguồn từ đây. .. raw:: html .. _integral_example: Quy tắc Đổi biến ---------------- .. raw:: html Cũng như vi phân, có một số quy tắc giúp việc tính tích phân dễ xử lý hơn. Thật ra, mọi quy tắc trong giải tích vi phân (như quy tắc tích, quy tắc tổng, và quy tắc dây chuyền) đều có một quy luật tương ứng cho giải tích tích phân (lần lượt là tích phân từng phần, tích phân của tổng, và quy tắc đổi biến số). Trong mục này, ta sẽ tìm hiểu quy tắc được cho là quan trọng nhất trong danh sách trên: quy tắc đổi biến số. .. raw:: html Đầu tiên, giả sử ta có một hàm tích phân: .. math:: F(x) = \int_0^x f(y) \; dy. .. raw:: html Giả sử ta muốn biết hàm này trông như thế nào khi kết hợp nó với một hàm nữa để có được :math:`F(u(x))`. Bằng quy tắc dây chuyền, ta có .. math:: \frac{d}{dx}F(u(x)) = \frac{dF}{du}(u(x))\cdot \frac{du}{dx}. .. raw:: html Ta có thể biến nó thành một mệnh đề tích phân bằng cách sử dụng định lý cơ bản :eq:`eq_ftc` ở trên, để có .. math:: F(u(x)) - F(u(0)) = \int_0^x \frac{dF}{du}(u(y))\cdot \frac{du}{dy} \;dy. .. raw:: html Biết rằng :math:`F` chính nó là một tích phân giúp vế bên trái có thể được viết lại là .. math:: \int_{u(0)}^{u(x)} f(y) \; dy = \int_0^x \frac{dF}{du}(u(y))\cdot \frac{du}{dy} \;dy. .. raw:: html Tương tự, :math:`F` là một tích phân nên theo định lý cơ bản :eq:`eq_ftc`, :math:`\frac{dF}{dx} = f`, do đó: .. math:: \int_{u(0)}^{u(x)} f(y) \; dy = \int_0^x f(u(y))\cdot \frac{du}{dy} \;dy. :label: eq_change_var .. raw:: html Đây là quy tắc *đổi biến số*. .. raw:: html Để có một chứng minh trực quan hơn, xét chuyện gì sẽ xảy ra khi ta lấy tích phân hàm :math:`f(u(x))` giữa :math:`x` và :math:`x+\epsilon`. Với :math:`\epsilon` nhỏ, tích phân này xấp xỉ :math:`\epsilon f(u(x))`, phần diện tích của hình chữ nhật tương ứng. Bây giờ, hãy so sánh với tích phân của :math:`f(y)` từ :math:`u(x)` tới :math:`u(x+\epsilon)`. Ta biết rằng :math:`u(x+\epsilon) \approx u(x) + \epsilon \frac{du}{dx}(x)`, vậy nên phần diện tích của hình chữ nhật này xấp xỉ :math:`\epsilon \frac{du}{dx}(x)f(u(x))`. Do đó, để đồng hóa diện tích hai hình chữ nhật này, ta phải nhân phần thứ nhất với :math:`\frac{du}{dx}(x)` như minh họa trong :numref:`fig_rect-transform`. .. raw:: html .. _fig_rect-transform: .. figure:: ../img/rect-trans.svg Minh họa cho biến đổi của một hình chữ nhật mỏng dưới sự thay đổi biến số. .. raw:: html Điều này cho ta biết .. math:: \int_x^{x+\epsilon} f(u(y))\frac{du}{dy}(y)\;dy = \int_{u(x)}^{u(x+\epsilon)} f(y) \; dy. .. raw:: html Đây là quy tắc đổi biến số được biểu diễn cho một hình chữ nhật nhỏ. .. raw:: html Chọn :math:`u(x)` và :math:`f(x)` một cách thích hợp sẽ cho phép tính những tích phân cực kỳ phức tạp. Ví dụ, nếu ta chọn :math:`f(y) = 1` và :math:`u(x) = e^{-x^{2}}` (có nghĩa là :math:`\frac{du}{dx}(x) = -2xe^{-x^{2}}`)): .. math:: e^{-1} - 1 = \int_{e^{-0}}^{e^{-1}} 1 \; dy = -2\int_0^{1} ye^{-y^2}\;dy, .. raw:: html và khi sắp xếp lại ta có .. math:: \int_0^{1} ye^{-y^2}\; dy = \frac{1-e^{-1}}{2}. .. raw:: html Nhận xét về Quy ước Ký hiệu --------------------------- .. raw:: html Những độc giả tinh mắt sẽ nhận thấy điều kì lạ từ những phép tính trên. Ví dụ như .. math:: \int_{e^{-0}}^{e^{-1}} 1 \; dy = e^{-1} -1 < 0, .. raw:: html có thể âm. Khi nghĩ về các diện tích, có thể là hơi lạ khi ta thấy một giá trị âm, vậy nên nó đáng để ta tìm hiểu kĩ hơn về các quy ước này. .. raw:: html Các nhà toán học có khái niệm về diện tích có dấu. Điều này thể hiện theo hai cách. Đầu tiên, với :math:`f(x)` nhỏ hơn 0, thì diện tích cũng sẽ âm. Ví dụ: .. math:: \int_0^{1} (-1)\;dx = -1. .. raw:: html Thứ hai, tích phân tiến từ phải sang trái, thay vì từ trái sang phải, cũng có diện tích âm .. math:: \int_0^{-1} 1\; dx = -1. .. raw:: html Diện tích chuẩn (từ trái sang phải của một hàm số dương) thì luôn dương. Bất kỳ kết quả nào thu được bằng cách lật hàm này (giả sử lật đối xứng qua trục :math:`x` để lấy tích phân của một hàm âm, hoặc lật đối xứng qua trục :math:`y` để lấy tích phân ngược thứ tự) sẽ tạo ra diện tích âm. Và việc lật hai lần sẽ làm cặp dấu âm triệt tiêu nhau, từ đó lại có diện tích dương. .. math:: \int_0^{-1} (-1)\;dx = 1. .. raw:: html Thực tế, trong: numref:\ ``sec_geometry-linear-algebraic-ops``, ta đã bàn về cách định thức biểu diễn diện tích có dấu theo cách tương tự. .. raw:: html Tích phân bội ------------- .. raw:: html Trong một số trường hợp, ta sẽ cần phải làm việc với số lượng chiều lớn hơn. Ví dụ: giả sử ta có một hàm hai biến :math:`f(x, y)` và muốn biết thể tích phía dưới :math:`f` khi :math:`x` nằm trong đoạn :math:`[a, b]` và :math:`y` trong đoạn :math:`[c, d]`. .. code:: python # Construct grid and compute function x, y = np.meshgrid(np.linspace(-2, 2, 101), np.linspace(-2, 2, 101), indexing='ij') z = np.exp(- x**2 - y**2) # Plot function ax = d2l.plt.figure().add_subplot(111, projection='3d') ax.plot_wireframe(x, y, z) d2l.plt.xlabel('x') d2l.plt.ylabel('y') d2l.plt.xticks([-2, -1, 0, 1, 2]) d2l.plt.yticks([-2, -1, 0, 1, 2]) d2l.set_figsize() ax.set_xlim(-2, 2) ax.set_ylim(-2, 2) ax.set_zlim(0, 1) ax.dist = 12 .. figure:: output_integral-calculus_vn_1b8b09_7_0.svg .. raw:: html Ta có thể viết thành tích phân sau: .. math:: \int_{[a, b]\times[c, d]} f(x, y)\;dx\;dy. .. raw:: html Giả sử ta muốn tính tích phân này. Ta có thể tính tích phân theo cận :math:`x` trước rồi chuyển sang cận :math:`y`, nghĩa là: .. math:: \int_{[a, b]\times[c, d]} f(x, y)\;dx\;dy = \int_c^{d} \left(\int_a^{b} f(x, y) \;dx\right) \; dy. .. raw:: html Hãy cùng quan sát tại sao. .. raw:: html Hãy xem xét hình trên, nơi ta đã phân chia hàm thành :math:`\epsilon \times \epsilon` ô vuông với chỉ số nguyên :math:`i, j`. Trong trường hợp này, tích phân xấp xỉ: .. math:: \sum_{i, j} \epsilon^{2} f(\epsilon i, \epsilon j). .. raw:: html Một khi đã rời rạc hóa bài toán, ta có thể cộng dồn các giá trị trên các ô vuông này theo bất kỳ thứ tự nào mà không phải lo lắng về việc giá trị cuối cùng thay đổi. Điều này được minh họa trong :numref:`fig_sum-order`. Đặc biệt, có thể nói rằng .. math:: \sum _ {j} \epsilon \left(\sum_{i} \epsilon f(\epsilon i, \epsilon j)\right). .. raw:: html .. _fig_sum-order: .. figure:: ../img/sum-order.svg Minh họa cách phân rã một tổng trên nhiều ô vuông dưới dạng tổng trên các cột (1), sau đó cộng các tổng của cột với nhau (2). .. raw:: html Tổng bên trong chính xác là phiên bản rời rạc của tích phân: .. math:: G(\epsilon j) = \int _a^{b} f(x, \epsilon j) \; dx. .. raw:: html Sau cùng, nếu kết hợp hai biểu thức này với nhau, ta có: .. math:: \sum _ {j} \epsilon G(\epsilon j) \approx \int _ {c}^{d} G(y) \; dy = \int _ {[a, b]\times[c, d]} f(x, y)\;dx\;dy. .. raw:: html Kết hợp tất cả lại: .. math:: \int _ {[a, b]\times[c, d]} f(x, y)\;dx\;dy = \int _ c^{d} \left(\int _ a^{b} f(x, y) \;dx\right) \; dy. .. raw:: html Lưu ý rằng, một khi đã rời rạc hóa, tất cả những gì ta làm là sắp xếp lại thứ tự tính tổng một danh sách các số. Điều này có vẻ hiển nhiên, tuy nhiên kết quả này (được gọi là *Định lý Fubini*) không phải lúc nào cũng đúng! Đối với loại toán học gặp phải khi thực hiện tác vụ học máy (các hàm liên tục), không có gì đáng lo ngại, tuy vậy ta có thể tạo các ví dụ mà cách này không áp dụng được (ví dụ: hàm :math:`f(x, y) = xy(x^2-y^2)/(x^2+y^2)^3` trên hình chữ nhật :math:`[0,2]\times[0,1]`). .. raw:: html Lưu ý rằng việc chọn tính tích phân theo cận :math:`x` trước, cận :math:`y` sau là tùy ý. Ta cũng có thể chọn thực hiện :math:`y` trước, :math:`x` sau: .. math:: \int _ {[a, b]\times[c, d]} f(x, y)\;dx\;dy = \int _ a^{b} \left(\int _ c^{d} f(x, y) \;dy\right) \; dx. .. raw:: html Thông thường, ta sẽ rút gọn thành ký hiệu vector và nói rằng tích phân trên miền :math:`U = [a, b]\times [c, d]` là: .. math:: \int _ U f(\mathbf{x})\;d\mathbf{x}. .. raw:: html Đổi biến trong Tích phân bội ---------------------------- .. raw:: html Tương tự như tích phân đơn biến, việc đổi biến trong tích phân bội là một kỹ thuật quan trọng. Chúng tôi sẽ tổng hợp kết quả mà không chứng minh và trình bày. .. raw:: html Chúng ta cần một hàm để tái tham số hoá miền tích phân. Ta có thể coi hàm này là :math:`\phi: \mathbb{R}^n \rightarrow \mathbb{R}^n`, nhận :math:`n` biến thực và trả về :math:`n` giá trị thực khác. Để giữ cho các biểu thức rõ ràng, ta giả sử :math:`\phi` là *đơn ánh (injective)* tức nó cho đầu ra khác nhau với đầu vào khác nhau (:math:`\phi(\mathbf{x}) = \phi(\mathbf{y}) \implies \mathbf{x} = \mathbf{y}`). .. raw:: html Trong trường hợp này, ta có: .. math:: \int _ {\phi(U)} f(\mathbf{x})\;d\mathbf{x} = \int _ {U} f(\phi(\mathbf{x})) \left|\det(D\phi(\mathbf{x}))\right|\;d\mathbf{x}. .. raw:: html trong đó :math:`D\phi` là *Jacobian* của :math:`\phi`, ma trận của các đạo hàm riêng của :math:`\boldsymbol{\phi} = (\phi_1(x_1, \ldots, x_n), \ldots, \phi_n(x_1, \ldots, x_n))`, .. math:: D\boldsymbol{\phi} = \begin{bmatrix} \frac{\partial \phi _ 1}{\partial x _ 1} & \cdots & \frac{\partial \phi _ 1}{\partial x _ n} \\ \vdots & \ddots & \vdots \\ \frac{\partial \phi _ n}{\partial x _ 1} & \cdots & \frac{\partial \phi _ n}{\partial x _ n} \end{bmatrix}. .. raw:: html Khi xét kĩ hơn, ta nhận thấy điều này tương tự như quy tắc dây chuyền đơn biến :eq:`eq_change_var`, ngoại trừ việc ta đã thay thế :math:`\frac{du}{dx}(x)` bằng :math:`\left|\det(D\phi(\mathbf{x}))\right|`. Hãy cùng xem ta có thể giải thích hạng tử này như thế nào. Hãy nhớ lại rằng :math:`\frac{du}{dx}(x)` cho thấy việc áp dụng :math:`u` kéo dãn trục :math:`x` như thế nào. Tương tự, ở không gian nhiều chiều, :math:`\left|\det(D\phi(\mathbf{x}))\right|` cho thấy áp dụng :math:`\boldsymbol{\phi}` sẽ kéo dãn diện tích (hoặc thể tích, siêu thể tích) của một hình vuông nhỏ (hoặc một *khối lập phương* nhỏ) như thế nào. Nếu :math:`\boldsymbol{\phi}` là một phép nhân với ma trận, thì ta đã biết định thức có ảnh hưởng như thế nào. .. raw:: html Đi sâu hơn một chút, ta có thể chỉ ra rằng *Jacobian* đưa ra xấp xỉ tốt nhất cho một hàm đa biến :math:`\boldsymbol{\phi}` tại một điểm bằng ma trận theo cách giống như khi xấp xỉ đạo hàm và gradient bằng các đường hoặc mặt phẳng. Do đó, định thức Jacobian tương ứng với hệ số tỷ lệ ta đã xác định trong không gian một chiều. .. raw:: html Việc này cần đi sâu vào một số chi tiết, vì vậy đừng lo lắng nếu bạn chưa hiểu ngay. Hãy cùng xem qua một ví dụ mà ta sẽ dùng sau này. Xét tích phân: .. math:: \int _ {-\infty}^{\infty} \int _ {-\infty}^{\infty} e^{-x^{2}-y^{2}} \;dx\;dy. .. raw:: html Rất khó tính trực tiếp tích phân này, nhưng nếu đổi biến, thì ta có thể đạt được tiến triển đáng kể. Nếu đặt :math:`\boldsymbol{\phi}(r, \theta) = (r \cos(\theta), r\sin(\theta))` (nghĩa là :math:`x = r \cos(\theta)`, :math:`y = r \sin(\theta)`), thì ta có thể áp dụng công thức đổi biến để có: .. math:: \int _ 0^\infty \int_0 ^ {2\pi} e^{-r^{2}} \left|\det(D\mathbf{\phi}(\mathbf{x}))\right|\;d\theta\;dr, .. raw:: html với: .. math:: \left|\det(D\mathbf{\phi}(\mathbf{x}))\right| = \left|\det\begin{bmatrix} \cos(\theta) & -r\sin(\theta) \\ \sin(\theta) & r\cos(\theta) \end{bmatrix}\right| = r(\cos^{2}(\theta) + \sin^{2}(\theta)) = r. .. raw:: html Vì vậy, tích phân được viết lại là: .. math:: \int _ 0^\infty \int _ 0 ^ {2\pi} re^{-r^{2}} \;d\theta\;dr = 2\pi\int _ 0^\infty re^{-r^{2}} \;dr = \pi, .. raw:: html trong đó đẳng thức cuối cùng là phép tính mà ta đã sử dụng trong :numref:`integration_example`. .. raw:: html Chúng ta sẽ lại gặp tích phân này khi chúng ta học về các biến ngẫu nhiên liên tục trong :numref:`sec_random_variables`. Tóm tắt ------- .. raw:: html - Lý thuyết tích phân cho phép chúng ta giải đáp các câu hỏi về các diện tích hoặc thể tích. - Định lý cơ bản của giải tích cho phép vận dụng kiến thức về đạo hàm để tính toán các diện tích thông qua quan sát rằng đạo hàm của diện tích tới một điểm nào đó được xác định bởi giá trị tại điểm đó của hàm đang được tích phân. - Tích phân trong không gian nhiều chiều có thể được tính bằng cách lặp qua các tích phân đơn biến. Bài tập ------- .. raw:: html 1. Tính :math:`\int_1^2 \frac{1}{x} \;dx`. 2. Áp dụng công thức đổi biến để tính :math:`\int_0^{\sqrt{\pi}}x\sin(x^2)\;dx`. 3. Tính :math:`\int_{[0,1]^2} xy \;dx\;dy`. 4. Áp dụng công thức đổi biến để tính :math:`\int_0^2\int_0^1xy(x^2-y^2)/(x^2+y^2)^3\;dy\;dx` và :math:`\int_0^1\int_0^2f(x, y) = xy(x^2-y^2)/(x^2+y^2)^3\;dx\;dy` để thấy sự khác nhau giữa chúng. Thảo luận --------- - Tiếng Anh: `MXNet `__ - Tiếng Việt: `Diễn đàn Machine Learning Cơ Bản `__ Những người thực hiện --------------------- Bản dịch trong trang này được thực hiện bởi: - Đoàn Võ Duy Thanh - Phạm Hồng Vinh - Phạm Đăng Khoa - Lê Khắc Hồng Phúc - Nguyễn Văn Cường