- Matlab 教程
- MATLAB - 首页
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 环境设置
- MATLAB - 编辑器
- MATLAB - 在线
- MATLAB - 工作区
- MATLAB - 语法
- MATLAB - 变量
- MATLAB - 命令
- MATLAB - 数据类型
- MATLAB - 运算符
- MATLAB - 日期和时间
- MATLAB - 数字
- MATLAB - 随机数
- MATLAB - 字符串和字符
- MATLAB - 文本格式化
- MATLAB - 时间表
- MATLAB - M 文件
- MATLAB - 冒号表示法
- MATLAB - 数据导入
- MATLAB - 数据输出
- MATLAB - 数据归一化
- MATLAB - 预定义变量
- MATLAB - 决策
- MATLAB - 决策语句
- MATLAB - If End 语句
- MATLAB - If Else 语句
- MATLAB - If…Elseif Else 语句
- MATLAB - 嵌套 If 语句
- MATLAB - Switch 语句
- MATLAB - 嵌套 Switch
- MATLAB - 循环
- MATLAB - 循环
- MATLAB - For 循环
- MATLAB - While 循环
- MATLAB - 嵌套循环
- MATLAB - Break 语句
- MATLAB - Continue 语句
- MATLAB - End 语句
- MATLAB - 数组
- MATLAB - 数组
- MATLAB - 向量
- MATLAB - 转置运算符
- MATLAB - 数组索引
- MATLAB - 多维数组
- MATLAB - 兼容数组
- MATLAB - 分类数组
- MATLAB - 元胞数组
- MATLAB - 矩阵
- MATLAB - 稀疏矩阵
- MATLAB - 表格
- MATLAB - 结构体
- MATLAB - 数组乘法
- MATLAB - 数组除法
- MATLAB - 数组函数
- MATLAB - 函数
- MATLAB - 函数
- MATLAB - 函数参数
- MATLAB - 匿名函数
- MATLAB - 嵌套函数
- MATLAB - 返回语句
- MATLAB - 空函数
- MATLAB - 局部函数
- MATLAB - 全局变量
- MATLAB - 函数句柄
- MATLAB - 滤波函数
- MATLAB - 阶乘
- MATLAB - 私有函数
- MATLAB - 子函数
- MATLAB - 递归函数
- MATLAB - 函数优先级顺序
- MATLAB - 映射函数
- MATLAB - 平均值函数
- MATLAB - 结束函数
- MATLAB - 错误处理
- MATLAB - 错误处理
- MATLAB - Try...Catch 语句
- MATLAB - 调试
- MATLAB - 绘图
- MATLAB - 绘图
- MATLAB - 绘制数组
- MATLAB - 绘制向量
- MATLAB - 条形图
- MATLAB - 直方图
- MATLAB - 图形
- MATLAB - 2D 线性图
- MATLAB - 3D 图
- MATLAB - 格式化绘图
- MATLAB - 对数坐标轴绘图
- MATLAB - 绘制误差条
- MATLAB - 绘制 3D 等值线
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 2D 数组插值
- MATLAB - 3D 数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 2D 逆余弦变换
- MATLAB - 向坐标轴添加图例
- MATLAB - 面向对象
- MATLAB - 面向对象编程
- MATLAB - 类和对象
- MATLAB - 函数重载
- MATLAB - 运算符重载
- MATLAB - 用户定义类
- MATLAB - 复制对象
- MATLAB - 代数
- MATLAB - 线性代数
- MATLAB - 高斯消元法
- MATLAB - 高斯-约旦消元法
- MATLAB - 简化行阶梯形
- MATLAB - 特征值和特征向量
- MATLAB - 积分
- MATLAB - 积分
- MATLAB - 二重积分
- MATLAB - 梯形法则
- MATLAB - 辛普森法则
- MATLAB - 杂项
- MATLAB - 微积分
- MATLAB - 微分
- MATLAB - 矩阵的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用资源
- MATLAB - 快速指南
- MATLAB - 有用资源
- MATLAB - 讨论
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