MATLAB syms

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

引言

MATLAB 是一个先进的数学计算平台,主要应用于工程、自然科学和数学领域。其主要优势之一是能够进行数值和代数计算。在进行数值运算(包括数值计算和估算)时,MATLAB 中的符号数学功能使用户能够操作符号和代数表达式,并以符号形式对数学问题进行精确计算。

符号数学在 MATLAB 中可用,主要通过 Symbolic Math Toolbox 提供。该工具箱使用符号变量和表达式作为用户界面,用于执行广泛的数学运算,例如代数计算、积分、微分以及方程的解析解。

符号数学的重要性

  • 代数:当解决方案必须以“通用”形式存储,而不是数值浮点近似形式时,代数问题需要符号数学。
  • 微积分:已处理数学(特别是符号数学)能力的一些示例如确切的微分和积分。
  • 复杂的数学问题:在许多情况下,物理学、控制理论、信号处理或工程学等许多其他学科中的一个问题需要以某种形式编写表达式,以便在最终以数值方式求解或分析之前对其进行代数处理。

例如

  • MATLAB 可以计算微分方程和偏微分方程,这些方程在微分方程中是必需的,并以函数形式而非近似数字的形式给出答案。
  • 在方程组中,可以使用符号数学来代数求解一个方程组,以获得给定系统中变量的精确解。

syms 命令

在 MATLAB 中,用于执行多种符号计算的工具通过 syms 命令调用。它允许您声明一个变量,并在后续的方程中使用该变量,而不将其绑定到特定图形。这些符号变量随后用于表示数学符号,您可以进行简化、微分和积分。

syms 命令的一般用法是定义表示方程中未知数或参数的符号变量。通过 syms,MATLAB 将系统从数值计算转换为对已定义的变量或表达式的符号计算。

例如,分配符号变量的命令如下

这将生成一个符号变量 x,现在可以在代数表达式、方程和函数中使用。当您在 MATLAB 中键入 x 这样的字母时,它将其视为符号而不是数字,从而允许您代数地对表达式执行计算。

创建符号表达式的示例

在这里,expr1 是一个符号表达式,可以对其进行符号运算,例如符号化地化简、微分或求解。

在 MATLAB 中设置符号变量

可以说,MATLAB 中的 syms 命令是执行符号计算的骨干。syms 使得输入符号变量成为可能,该变量在化简、微分、积分以及方程求解等操作中始终保持为代数符号。

使用 syms 创建符号变量

在 MATLAB 中声明符号变量的语法非常简单,如下所示。要定义符号变量,只需键入 syms 和变量名。

语法

这将形成一个符号变量 x。您现在可以将 x 作为符号用于表达式:这还包括 代数表达式、方程,甚至函数。

示例

在此示例中,f 是一个关于符号变量 x 的表达式。符号计算的优点在于 MATLAB 可以对该表达式进行符号运算,而不是对表达式进行数值求值。

与数值变量的区别

  • 数值变量:固定的数值变量保存固定的数值,并在计算中包含时,MATLAB 会对其进行数值计算。例如
  • 符号变量:'syms' 变量被声明且没有赋值;它们是符号,只有在赋值或发生更改时才被实际化。在符号计算的情况下,操作是代数执行的,从而能够使用公式而不是值进行计算。

区别在于计算:数值计算会产生确定的值。另一方面,符号计算会保留代数公式和方程。

一次创建多个符号变量

有时,一次声明多个符号变量可能很有必要。在基本 MvPath 分析中,使用 syms 命令单独声明每个变量可能需要很长时间,因此,您可以使用 syms 命令在一行中声明尽可能多的变量。

语法

此命令创建三个符号变量:x、y 和 z。

示例

在这里,符号表达式 expr 包含变量 x、y 和 z。通过一次性定义它们,您可以避免反复引用定义,从而节省时间。

更多变量的替代语法:如果您有更多变量,也可以将它们写成向量/数组格式来生成多个符号变量

此语法生成一个符号变量向量:x1、x2 和 x3。您也可以将其用于矩阵

当然,在这种情况下,矩阵 A 将表示一个 2x2 的矩阵,但其元素是符号实体,可以对其进行符号计算。

指定变量类型

MATLAB 允许用户不仅将符号变量定义为变量的标量符号,还可以定义为整个数组、向量或矩阵。当将该软件应用于求解矩阵代数或多变量微积分的方程组时,这些功能特别有用。

声明符号数:如果您希望定义一个可用于进一步计算的符号数,也可以像定义变量一样进行,

这将以代数方式进行,使得 a 在求解 3a 或 cosh(a^1/2) 等方程时成为一个常数。

符号向量和矩阵:这基本上意味着通过在 MATLAB 中键入 syms 然后为要声明的数组、向量和矩阵指定大小来完成。此功能在求解 线性代数、优化和多变量表达式问题时尤其重要。

  • 符号向量:通过在调用 syms 命令时定义向量的大小,可以声明符号向量

这形成了一个 3x1 的符号变量列向量 x1、x2、x3,我们可以继续使用此表示法。这意味着对于向量,现在可以代数地执行诸如加法、乘法等操作。

示例

  • 符号矩阵:同样,您可以创建符号矩阵。例如

这形成了一个由元素 A 1,1、A 1,2、A 2,1 和 A 2,2 组成的符号 2x2 矩阵,可以对其进行计算处理,包括行列式、逆运算甚至矩阵运算。

示例

在表达式中使用符号数组:一旦有了符号数组,就可以使用它们来执行数学运算。例如,您可以设置符号向量和矩阵,并对它们执行操作,例如矩阵乘法、矩阵加法或符号化求解矩阵方程。

在这种情况下,C 是一个符号矩阵,代表矩阵 A 和 B 的直接积,并且就像您在其他数学计算中找到的更基本的矩阵表达式一样,它也受到几种操作的约束。

示例:使用符号数组

现在,让我们在可应用的示例中将所有内容结合起来。设一个三变量线性方程组表示为 = {x+2y−3z=5, 3x−2y+4z=11, 5x+4y−3z=9} 现在,如果您必须设计一个符号方程组来表示这个网络,可以这样做。

步骤 1:创建符号变量

步骤 2:创建符号方程组

步骤 3:符号化求解方程组

在此示例中,solve 将返回 x、y、z 的解的模式,没有任何近似值,但只会以符号形式返回其结果。


下一个主题MATLAB 逆函数