MATLAB 中的符号与数值计算

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

引言

MATLAB 是一个为解决工程、科学研究和数学问题而设计的计算环境。众所周知,MATLAB 是一个非常方便的工具,它提供了一个良好的平台来解决各种难题,从简单的算术计算到复杂的建模。MATLAB 的可用性源于其解决数值和符号问题的能力,这使得它对专业人士和研究人员来说高效可靠。

符号计算

符号计算是一种数学计算形式,它涉及对符号表达式进行计算,而无需对数字进行计算。符号计算与数值计算不同,数值计算的操作结果是通过数字的近似值获得的。这使得符号计算能够提供精确的解决方案和操作,这在理论和分析应用中极具价值。在 MATLAB 中,符号计算意味着应用符号数学工具箱,该工具箱提供了计算符号表达式的工具。

使用符号数学获取精确解

当需要精确解且不能使用四舍五入值时,决策变量最适合解决问题。

  • 代数方程的符号解涉及根据原始变量而非四舍五入的十进制数字来求解方程。
  • 以符号方式进行微分/积分更安全,因为产生的结果是精确的,并且以函数形式表示。
  • 数学以更简单的形式显示或表示。它表示精确的形式。

符号计算在物理、工程和数学中很常见,因为证明、推导或理论工作的解决方案必须是精确的。

符号计算中的常见操作

1. 简化

  • 简化将数学表达式简化为等效值,但采用最简单或最短的形式。
  • 例如,(x2+2x+1) 的符号可以简化为 (x+1)2
  • MATLAB 函数:simplify(expression)

2. 微分和积分

对于微分,计算机代数系统是符号微分,它给出给定函数的导数的精确值,而在积分中,我们有符号积分,它提供给定函数的实际反导数或定积分。

  • 示例 (微分):sin(x) 的导数是 cos(x)。
  • 示例 (积分):x2 的积分是 x3/3 + C。
  • MATLAB 函数:这里,我们将使用诸如 diff(expression, variable) 进行微分和 int(expression, variable) 进行积分的保护措施。

3. 符号方程求解

  • 此外,符号计算可以求解变量中的方程,而无需近似数值方法。
  • 示例:求解 x2 - 4 = 0 会得到精确解 x = 2 和 x = -2。
  • MATLAB 函数:solve(equation, variable)

数值计算

数值计算基本上是使用数值方法和算法来虚拟解决数学问题的过程。与符号计算不同,数值计算只能帮助您处理近似值,通常以浮点数的形式,并且在处理大型数据集和解决问题时效率更高。这种方法对于解决所有那些笨重到无法利用数学解决的问题非常有用。

使用数值方法获取近似解

当无法或不切实际地找到精确解时,数值方法最有效。这些方法基于迭代方法和计算技术,以提供令人满意的准确性结果。例如,虽然特定定积分的计算可能涉及符号上找到数值近似值,但数值计算方法可能会使用梯形法则或简单辛普森法则等数值方法。

自然数值计算所计算的近似解在距离、工程、物理、金融和计算科学等领域都有应用,其中适用性和有效性是核心价值。

数值计算中的常见应用

1. 矩阵运算

数值计算特别适用于矩阵操作,矩阵在信号处理、计算机视觉和科学数据模拟等许多应用中都很常见。

主要操作包括

MATLAB 中的示例

2. 数值积分和微分

对于没有封闭形式的函数,近似技术广泛用于获取积分和导数的数值解。Python 将用于数值微分和积分技术,例如 MATLAB 中的积分函数。

MATLAB 中的示例

3. 数值方程求解

数值计算的另一个实际用途是数值求解方程。例如,MATLAB 提供了一个求解函数,可以近似求解无法通过应用符号工具求解的非线性方程组。

MATLAB 中的示例

关键区别

1. 准确性

然而,就其精度而言,符号计算和数值计算之间存在一个关键区别,那就是精度。

  • 符号计算:符号计算给出与先前论点不同的精确数学结果。当需要获得问题解的近似数值以及在直接数值解无法产生准确位置的分析问题中(例如求解方程、推导公式或验证理论结果)时,它最有用。
  • 示例:符号求解 x2 - 4 = 0 得到 x = ±2,保持精确值。
  • 数值计算:数值计算借助浮点算术通过近似值来解决问题;因此,它以小数形式产生结果。尽管不准确,但这种方法通常很有用,并且产生的解比符号数学快好几倍。
  • 示例:根据精度设置,数值求解 x2 - 4 = 0 可能会得到 x = 2.0000001。

2. 性能

符号计算和数值计算在输出时间和资源利用方面也存在差异。

  • 符号计算:与大型或复杂问题中的其他方法相比,使用符号方法需要更多的内存和计算时间。这是因为符号操作需要处理和存储精确的数学方程,这很快就会失控。
  • 数值计算:精确计算以其在数据驱动计算和实时模型中的效率而闻名,从而实现了最快的性能。

3. 应用

符号计算和数值计算服务于不同的目的,使其适用于不同类型的任务。

  • 符号计算:符号计算在需要计算结果并伴随一些理论理解的情况下最有效。数学的一些活动包括找到函数的精确表达式、使分母合理化、求解方程和证明结果,所有这些都需要符号操作。
  • 数值计算:在解决实际工程和科学问题时,数值操作必不可少。在进行模拟、优化和数值分析时,它被证明非常高效,尤其是在速度至关重要的情况下。

汇总表

方面符号计算数值计算
精度提供精确结果(例如,π,e)提供近似结果(例如,3.1416)
性能对于大型或复杂问题较慢对于大型任务更快更高效
应用理论推导、公式简化模拟、实时问题解决

MATLAB 符号计算和数值计算工具

1. 符号数学工具箱

符号数学工具箱是 MATLAB 中的一个应用程序,它向用户提供精确的符号计算。此软件包提供了多种程序,可以代数和符号地更改和求解数学表达式。

主要功能和特点

  • syms: 它用于指示一个人想要使用符号或名称来表示特定的函数或值。在执行符号操作时,需要符号变量。

示例

  • solve: 用符号求解方程。它可以处理线性方程、非线性方程和方程组。

示例

  • simplify: 用于将每个复杂的符号表达式转换为其基本形式。方程插值在使方程更易于理解方面非常有用,特别是对于方程创建者而言。

示例

应用

  • 获取代数中线性方程的解析解。
  • 编写斯特林近似的正负形式。
  • 消除工程和物理中使用的技术中更高程度的刚度。

2. 数值计算函数

数值计算是 MATLAB 的计算应用程序,主要基于近似、速度和可伸缩性,即使对于大型问题也是如此。这些工具是模拟和实际使用的基本工具。

核心数值函数

  • fsolve: 提供非线性方程的数值解。当无法实现符号解时,此函数很适用。

示例

  • integral: 计算函数从给定下限到上限的定积分值。据报道,它比基于符号计算的其他方法在评估复杂积分方面更快、更数值稳定。

示例

  • eig: 在线计算矩阵的特征值和特征向量。此函数在线性代数应用程序中无处不在。

示例

应用

  • 求解大量变量的方程组。
  • 在控制系统的稳定性分析中研究用于控制目的的特征值。
  • 对实际数据集执行数值微分和积分操作。

3. 符号计算与数值计算的集成

MATLAB 还有另一个重要优势:该程序可以结合符号计算和数值计算。这种结合使用两种方法的方式可以获取符号表达式,然后对它们进行定量计算。

从符号到数值的转换

  • 为了从符号结果中计算数值,必须使用 double 函数。

示例

将符号推导与数值评估相结合

  • 代数推导公式,然后评估一组值的数值应用结果。

示例

应用

  • 使用符号模型描述数学模型的行为,并使用数值工具设计其行为。
  • 将精确解与数值技术集成,以实现高效计算。
  • 利用符号和数值技术在不同复杂系统上提高效率。