MATLAB 中的微积分

2025年7月25日 | 阅读 8 分钟

引言

微积分是数学最基础的分支,包括微分和积分。它在工程、物理、经济学、生物学以及计算机科学中的问题研究和解决中至关重要。

  • 微分: 用于建模常数变化,如速度、加速度以及二项式、代数和农产品等的增长率。
  • 积分: 对于确定面积、体积以及其他与时间相关的量(如能量和成本)的累积具有重要意义。

MATLAB 在解决微积分问题中的作用

MATLAB 是一个技术计算环境,具有启发性,因为它用于矩阵实验室数值计算、数据分析和可视化。

  • 内置函数: 微分的标准工具 `diff`、积分的 `integral` 和 `trapz`,以及用于求解微分方程的工具,如 `ode45` 和 `ode23`。
  • 符号数学工具箱: 支持获取幂级数表示、单项式和其他函数,从而能够高精度计算导数、积分和极限。
  • 数值方法: 克服了线性方法无法应用的复杂现实情况,提供了估算解的数值方法。
  • 可视化: 提供了函数、其一阶和二阶导数以及积分的可视化功能,以更深入地了解它们的行为。

使用 MATLAB 进行微积分应用的优势

  • 易用性: MATLAB 具有易于理解的语法和详细的文档,即使是新手也能有效使用。
  • 符号和数值的灵活性: 用户可以根据问题的类型,将符号和数值方法进行相当大的组合。
  • 可视化功能: 使用 MATLAB 对开发导数和积分等概念的图形表示做出了重大贡献。
  • 自动化和自定义: 使用 MATLAB,用户可以编写脚本和函数来执行重复计算,并根据特定用途单独定义它们。
  • 与其他工具集成: MATLAB 还与其他软件和工具箱协同工作,以促进机器学习、优化和控制结构分析等任务的高级操作。
  • 时间效率: 这是因为 MATLAB 使用优化的算法,这大大缩短了解决涉及大规模或复杂微积分问题的计算时间。

用于微分的 MATLAB 函数

使用 `diff` 进行符号微分

使用 `diff` 符号进行微分。在 MATLAB 中,微分可以通过两种方式完成;第一种是使用符号数学工具箱中的 `diff` 函数。该过程需要精确计算符号表达式或函数的导数。

执行符号微分的步骤

  • 在进行推导之前,请使用 "syms" 定义符号变量。
  • 在这种情况下,使用 `diff` 函数计算导数。

示例

  • 高阶导数: 对于高阶导数,可以向 `diff` 函数传递一个额外的参数。

优点

  • 提供精确的符号解。
  • 最适用于理论分析,也可帮助进行一些可视化。

有限差分数值微分

当处理离散数据或通过编程定义的函数时,数值微分至关重要。MATLAB 提供了各种使用有限差分近似导数的方法。

有限差分方法通过使用函数值在小值 `h` 上的变化比例来估计导数的值。

示例

  • 当函数作为采样数据提供,用于近似未知函数的实际值时。
  • 其潜在应用受制于不允许使用符号计算的条件。
  • 数值导数的内置函数: MATLAB 还具有数值微分所需的特定函数,例如 `gradient`。

优点

  • 分析不精确和嘈杂环境中的数据。
  • 在处理大数据时效率尤其高。

微分在工程和科学中的应用

差异性在工程和科学等各种学科中普遍存在。例如,从位置时间图中区分速度和加速度,包括工程和科学。

1. 运动分析

  • 根据位置-时间数据计算速度和加速度。
  • 示例:通过数值微分技术审查运动的概念。

2. 优化问题: 找到不定导数以确定极值点(最大值,最小值)。根据利润或成本函数检查业务情况。

3. 信号处理: 过滤以提取特征,例如图像边缘检测或波形斜率检测。

4. 流体力学: 通过找到速度梯度或剪切应力来理解流动特性。

用于积分的 MATLAB 函数

积分是微积分中的一个中间概念,在涉及曲线下面积和累积量等任何主题中都很有用。MATLAB 具有符号积分和数值积分功能,这使得它对工程师、科学家和数学家来说很方便。

使用 `int` 进行符号积分

MATLAB 的符号数学工具箱提供了 `int` 函数来执行符号积分。该函数能够符号表示被积函数和积分限,然后计算积分的精确解。

语法

示例

计算 f(x)=x2f(x) = x^2 从 0 到 2 的定积分

特点

  • 仅支持定积分和不定积分。
  • 可以处理数字或变量上的任意运算,包括三角函数、对数或指数函数。

使用 `integral`、`trapz` 和 `quad` 进行数值积分

如果没有符号表示,或者如果积分无法用符号表示求解,则可以使用数值方法。

a. 使用 `integral`

`integral` 通过自适应正交法在特定区间内计算给定函数句柄的积分。

语法

示例

计算 sin(x) 从 0 到 π 的积分

b. 使用 `trapz`

子程序 `trapz` 应用梯形规则,用于离散数据点。语法

语法

示例

给定 x=[0,π/2,π] 和 y = sin(x)

c. 使用 `quad` (旧版)

`quad` 是一个较旧的数值积分函数,除了在某些特殊情况下用于数值积分的 `integral` 之外,已不再广泛使用。

语法

二重积分和三重积分

MATLAB 的二重积分和三重积分允许计算体积和其他 N 维结果。

二重积分

对于 ∫∫f(x,y) dx dy

三重积分

对于 ∫∫∫f(x,y,z) dx dy dz

积分在现实世界场景中的应用

  • 物理学: 评估可变力所做的功更加困难。
  • 经济学: 从边际成本函数推导总成本。
  • 工程学: 找到质量的平均距离或找到面积的二阶矩。
  • 环境科学: 预测环境中污染物的总量。

在 MATLAB 中求解微分方程

常微分方程 (ODEs)

MATLAB 具有丰富的功能,允许用户数值求解常微分方程 (ODEs)。这些方法对于建模其变化是时间或其他因素的函数系统是必需的。

1. `ode45` 求解器

  • `ode45` 是 MATLAB 中用于求解非刚性 ODE 的通用且广泛使用的函数。
  • 它采用龙格-库塔 (4 阶和 5 阶) 数值方法,通过自适应步长提供精确的解。

示例

2. `ode23` 求解器

  • `ode23` 适用于精度要求不高或非苛刻的平均问题。
  • 它采用龙格-库塔 (2 阶和 3 阶) 技术,对于不需要高精度的简单 ODE,比第一种方法更高效。

示例

3. `ode15s` 求解器

  • `ode15s` 用于求解刚性 ODE,当传统求解器因解的快速波动而失效时。
  • 它采用数值微分公式 (NDF) 来处理刚性。

示例

使用 PDE 工具箱求解偏微分方程 (PDEs)

1. PDE 工具箱中的工作流程

  • 定义几何:定义或读取现有几何,以给出 PDE 的适用区域。
  • 设置边界条件:对于特定领域的问题,在域的边界上应用条件,例如 f(x) = 固定值或梯度。
  • 定义 PDE 系数:它也采用 MATLAB PDE 方程的标准形式。
  • 求解 PDE:对于时变或稳态,使用内置求解器。
  • 可视化结果:解的映射也提供了对分布的洞察。

2. 示例: 矩形域中的热方程

在动态系统和控制理论中的应用

  1. 动态系统仿真: 研究物体运动的运动学,例如往复、振荡或旋转质量(摆锤、机械臂等)。预测不同环境中存在的行为。
  2. 控制系统分析: 通过 ODE 模型开发反馈系统的控制器。建模现实生活中的结构,包括电路和化学反应器。
  3. 热量和质量传递分析: PDEs 的解提供了对热传导或扩散现象的洞察。
  4. 流体力学和结构力学: 模拟固体和复杂形状和区域的应力、应变和流体流动。

下一个主题if...end 语句