MATLAB - 二重积分



数学中的积分是一个表示曲线下面积的概念。它是微积分中的一个基本概念,可以被认为是量的累积。积分用于求面积、体积、中心点以及许多有用的东西。

积分主要有两种类型

定积分 - 计算曲线在两个特定点之间的面积。

不定积分 - 表示一组函数,并包含一个积分常数。

定积分示例

如果你有一个函数 f(x),从 a 到 b 的定积分写成 -

$$\mathrm{\displaystyle\int_{b}^{a} f(x) \: dx}$$

这给出了 f(x) 从 x = a 到 x = b 的曲线下面积。

什么是二重积分?

二重积分将单积分的概念扩展到两个变量的函数。它用于计算三维空间中曲面下的体积。函数 f(x,y) 在 xy 平面上的区域 R 上的二重积分写成。

$$\mathrm{\iint_{R} \: f(x,y) \: dA}$$

其中 dA 表示区域 R 中的一个微小面积元素。

二重积分示例

如果你有一个函数 f(x,y),并且你想找到曲面在矩形区域 R = [a,b] x [c,d] 上的体积,则二重积分是。

$$\mathrm{\iint_{R} \: f(x,y) \: dA \: = \: \int_{a}^{b}\int_{c}^{d}f(x,y)dy \: dx}$$

MATLAB 和二重积分

MATLAB 是一种强大的数值计算工具,包括评估积分和二重积分。

MATLAB 中的单积分

要在 MATLAB 中计算单积分,可以使用 integral 函数。例如,要找到 f(x) = x2 从 0 到 1 的积分 -

f = @(x) x.^2;
result = integral(f, 0, 1);
disp(result);

MATLAB 中的二重积分

要在 MATLAB 中计算二重积分,可以使用 integral2 函数。以下是如何计算 f(x,y) = x2 + y2 在该区域上的二重积分。

$$\mathrm{0 \: \leq \: x \: \leq \: 1 \: and \: 0 \: \leq \: y \: \leq \: 1}$$

f = @(x, y) x.^2 + y.^2;
result = integral2(f, 0, 1, 0, 1);
disp(result);

在这个例子中

f 是一个表示 f(x,y) = x2 + y2 的匿名函数。

integral2 计算在 x 和 y 的指定限值上的二重积分。

现在让我们更详细地了解 integral2() 方法。

使用 integral2() 函数的 Matlab 二重积分

integral2() 函数数值计算二重积分。

语法

q = integral2(fun,xmin,xmax,ymin,ymax)
q = integral2(fun,xmin,xmax,ymin,ymax,Name,Value)

语法解释

q = integral2(fun,xmin,xmax,ymin,ymax):在此语法中

  • fun 是您要积分的函数。它用 x 和 y 表示。
  • xmin 和 xmax 是 x 变量的限值。该函数将从 x=xmin 积分到 x=xmax。
  • ymin 和 ymax 这些是 y 变量的限值。积分将从 y=ymin 执行到 y=ymax。这些是常数或 x 的函数。

q = integral2(fun,xmin,xmax,ymin,ymax,Name,Value):在此语法中

  • fun - 要积分的函数。
  • xmin 和 xmax - x 变量的限值。
  • ymin 和 ymax - y 变量的限值。
  • “名称,值” 对允许您自定义 MATLAB 执行积分的方式。

常见的“名称,值”对

  • 'RelTol' - 设置精度相关的容差。
  • 'AbsTol' - 设置精度绝对容差。
  • 'Method' - 指定积分方法(例如,'auto'、'iterated'、'tiled')。
  • 'Waypoints' - 指定积分器应包含的中间点。

使用 integral2() 函数求解二重积分

示例 1

使用 integral2() 对边界处具有奇异性的三角形区域进行积分。

我们想计算函数 f(x,y) 在 xy 平面上的三角形区域上的积分。边界处的奇异性意味着该函数在区域的边界处可能变得无限大或未定义。这可能使积分更难以计算,但 MATLAB 的 integral2 可以通过适当的限值和函数定义来处理此类情况。

定义三角形区域

考虑一个顶点位于点 (0,0)、(1,0) 和 (0,1) 的三角形区域。该区域可以用以下限值描述 -

0  ≤ x ≤1

0 ≤ y ≤ 1−x

让我们考虑函数

$$\mathrm{f(x, y) \: = \: \frac{1}{\sqrt{x^{2} \: + \: y^{2}}}}$$

此函数在原点 (0,0) 处具有奇异性,在该点处它变得无限大。

% Define the function with a singularity at the boundary
fun = @(x, y) 1 ./ sqrt(x.^2 + y.^2);

% Define the limits for x
xmin = 0;
xmax = 1;

% Define the limits for y as functions of x
ymin = 0;
ymax = @(x) 1 - x;

% Compute the double integral over the triangular region
q = integral2(fun, xmin, xmax, ymin, ymax);

% Display the result
disp(q);

代码说明

我们使用 MATLAB 中的匿名函数句柄定义如下所示的函数。

$$\mathrm{f(x, y) \: = \: \frac{1}{\sqrt{x^{2} \: + \: y^{2}}}}$$

设置积分限值:对于 x,限值从 0 到 1。

对于 y,下限为 0,上限为 1−x。请注意,ymin 设置为 0(常数),而 ymax 是 x 的函数。

计算积分:我们使用 integral2 函数计算二重积分。通过确保 ymin 是常数并且 ymax 是 x 的函数,我们满足了 integral2 函数的要求。

积分结果使用 disp(q) 显示。

当您在 matlab 中执行代码时,我们得到的输出为 -

% Define the function with a singularity at the boundary
fun = @(x, y) 1 ./ sqrt(x.^2 + y.^2);

% Define the limits for x
xmin = 0;
xmax = 1;

% Define the limits for y as functions of x
ymin = 0;
ymax = @(x) 1 - x;

% Compute the double integral over the triangular region
q = integral2(fun, xmin, xmax, ymin, ymax);

% Display the result
disp(q);
   1.2465

示例 2

使用 integral2() 计算具有特定方法和误差容差的参数化函数的二重积分。

要计算具有其他选项(如积分方法和误差容差)的参数化函数的二重积分,您可以使用带有“名称,值”对参数的 integral2 函数。

示例函数和区域

让我们考虑在顶点位于点 (0,0)、(1,0) 和 (0,1) 的三角形区域上的函数。

$$\mathrm{f(x, y) \: = \: \frac{1}{\sqrt{x^{2} \: + \: y^{2}}}}$$

以下是如何使用 MATLAB 设置和计算此积分,以及积分方法和误差容差的其他选项

% Define the function with a singularity at the boundary
fun = @(x, y) 1 ./ sqrt(x.^2 + y.^2);

% Define the limits for x
xmin = 0;
xmax = 1;

% Define the limits for y as functions of x
ymin = 0;
ymax = @(x) 1 - x;

% Define additional options: Relative Tolerance, Absolute Tolerance, and Method
options = {'RelTol', 1e-6, 'AbsTol', 1e-8, 'Method', 'auto'};

% Compute the double integral over the triangular region with additional options
q = integral2(fun, xmin, xmax, ymin, ymax, options{:});

% Display the result
disp(q);

代码说明

该函数使用匿名函数句柄定义。

$$\mathrm{f(x, y) \: = \: \frac{1}{\sqrt{x^{2} \: + \: y^{2}}}}$$

设置积分限值

For x, the limits are from 0 to 1.

对于 y,下限为 0(常数),上限为 1−x(x 的函数)。

我们定义的其他选项为 -

'RelTol', 1e-6 指定 10-6 的相对容差

'AbsTol', 1e-8 指定 10-8 的绝对容差

'Method', 'auto' 让 MATLAB 自动选择最合适的方法。如果需要,还可以指定其他方法,如 'iterated' 或 'tiled'。

integral2 函数被调用,其中包含函数、积分限值以及在 options 细胞数组中指定的其他选项。options{:} 语法将细胞数组解包成以逗号分隔的参数列表。

积分结果使用 disp(q) 显示。

当您在 matlab 命令窗口中执行代码时,我们得到的输出如下

% Define the function with a singularity at the boundary
fun = @(x, y) 1 ./ sqrt(x.^2 + y.^2);

% Define the limits for x
xmin = 0;
xmax = 1;

% Define the limits for y as functions of x
ymin = 0;
ymax = @(x) 1 - x;

% Define additional options: Relative Tolerance, Absolute Tolerance, and Method
options = {'RelTol', 1e-6, 'AbsTol', 1e-8, 'Method', 'auto'};

% Compute the double integral over the triangular region with additional options
q = integral2(fun, xmin, xmax, ymin, ymax, options{:});

% Display the result
disp(q);
   1.2465
广告