MATLAB - 二重积分
MATLAB - 数值积分
Section titled “MATLAB - 数值积分”积分是微积分中的一个基本概念,用于计算面积、体积和总累积量等。虽然有些函数可以进行解析积分,但许多实际问题需要使用数值积分来近似求解。
MATLAB 提供了一套强大的数值积分器,用于计算单重、二重和三重积分,旨在处理各种函数和积分域。
单重、二重和三重积分
Section titled “单重、二重和三重积分”- 单重积分,$$\int_a^b f(x) , dx$$,计算二维曲线下的面积。
- 二重积分,$$\iint_R f(x,y) , dA$$,计算三维区域 R 上表面下的体积。
- 三重积分,$$\iiint_V f(x,y,z) , dV$$,计算超空间体积或在三维体积 V 上累积量。
MATLAB 的数值积分套件
Section titled “MATLAB 的数值积分套件”现代 MATLAB 中用于数值积分的主要函数是:
integral(fun, xmin, xmax):用于单重积分。integral2(fun, xmin, xmax, ymin, ymax):用于二重积分。integral3(fun, xmin, xmax, ymin, ymax, zmin, zmax):用于三重积分。
对于所有这些函数,fun 是一个函数句柄(function handle),通常使用 @ 语法定义。例如:f = @(x,y) x.^2 + y.^2;。
使用 integral2 求解二重积分
Section titled “使用 integral2 求解二重积分”integral2 函数数值计算函数 fun(x,y) 在平面区域上的二重积分。
% 对于矩形区域q = integral2(fun, xmin, xmax, ymin, ymax)
% 对于非矩形区域(y 限制取决于 x)q = integral2(fun, xmin, xmax, ymin, ymax)
% 带有附加选项q = integral2(fun, xmin, xmax, ymin, ymax, Name, Value)fun:待积分函数的句柄。它必须是向量化的(vectorized),这意味着它可以接受x和y的数组作为输入。xmin,xmax:x的积分限制,必须是有限的标量。ymin,ymax:y的积分限制。它们可以是标量(用于矩形区域)或取决于x的函数句柄(用于非矩形区域)。
示例 1:矩形区域
Section titled “示例 1:矩形区域”计算在由 $$0 \leq x \leq 1$$ 和 $$0 \leq y \leq 2$$ 定义的矩形区域上,曲面 $$f(x,y) = x^2 + y^2$$ 下方的体积。
% 1. 定义向量化函数句柄fun = @(x, y) x.^2 + y.^2;
% 2. 定义积分限制xmin = 0;xmax = 1;ymin = 0;ymax = 2;
% 3. 计算二重积分volume = integral2(fun, xmin, xmax, ymin, ymax);
% 4. 显示结果fprintf('The calculated volume is: %f\n', volume);% 输出:计算出的体积为:3.333333示例 2:非矩形(三角形)区域
Section titled “示例 2:非矩形(三角形)区域”让我们在由 x 轴、直线 $$y=2x$$ 和直线 $$x=1$$ 围成的三角形区域上积分函数 $$f(x,y) = e^{-x^2}y$$。
积分限制为:$$0 \leq x \leq 1$$ 和 $$0 \leq y \leq 2x$$。
% 1. 定义向量化函数句柄fun = @(x, y) exp(-x.^2) .* y;
% 2. 定义 x 限制(外层积分)xmin = 0;xmax = 1;
% 3. 定义 y 限制为 x 的函数句柄(内层积分)ymin = @(x) 0;ymax = @(x) 2*x;
% 4. 计算积分result = integral2(fun, xmin, xmax, ymin, ymax);
% 5. 显示结果fprintf('The integral over the triangle is: %f\n', result);% 输出:三角形区域上的积分值为:0.632121最佳实践和高级用法
Section titled “最佳实践和高级用法”你可以使用 Name,Value 对来控制积分的精度:
'RelTol':相对容差,默认值为1e-6。'AbsTol':绝对容差,默认值为1e-10。
例如,要请求更高的精度:
q = integral2(fun, xmin, xmax, ymin, ymax, 'AbsTol', 1e-12, 'RelTol', 1e-9);MATLAB 的积分器是自适应的,通常可以处理积分域边界处的奇异点。然而,对于复杂情况或域内部的奇异点,你可能需要将积分拆分为多个部分以避免问题点。
选择积分方法
Section titled “选择积分方法”'Method' 选项允许你选择积分算法('auto'、'tiled'、'iterated')。默认值 'auto' 通常是最佳选择,因为它会根据提供的限制选择最优方法。