主要内容

使用符号对象来表示数学对象

要使用Symbolic Math Toolbox™解决数学问题,可以定义符号对象来表示各种数学对象。下面的例子讨论了这些符号对象在命令窗口中的用法:

  • 象征性的数量

  • 符号标量变量、函数和表达式

  • 象征性的方程

  • 符号向量和矩阵

  • 符号矩阵变量

  • 符号矩阵函数

象征性的数量

定义一个数字为符号数指导MATLAB®以精确的形式来处理数字,而不是使用数值近似值。例如,用一个符号数字来表示一个反三角函数的参数 θ 1 1 / 2

表示反三角函数辐角的符号数

创建符号数字 1 / 2 使用信谊,并将其分配给一个

A = sym(1/根号2)
A = 2^(1/2)/2

求sin的逆函数一个.结果就是符号数π/ 4

thetaSym = asin(a)
thetaSym = /4

可以将符号数转换为可变精度算术vpa.结果是一个有32位有效数字的十进制数。

thetaVpa = vpa(thetaSym)
thetaVpa = 0.78539816339744830961566084581988

若要将符号数转换为双精度数,请使用.有关是使用数值运算还是符号运算的详细信息,请参见选择数字或符号算术

thetaDouble = double(thetanym)
thetaDouble = 0.7854

符号标量变量、函数和表达式

将变量、函数和表达式定义为符号对象使您能够使用这些符号对象执行代数运算,包括简化公式和求解方程。例如,使用符号标量变量、函数和表达式来表示二次函数 f x x 2 + x 2 .为简洁起见,符号标量变量也称为a符号变量

表示二次函数的符号标量变量、函数和表达式。

创建一个符号标量变量x使用信谊.你也可以使用信谊创建符号标量变量。有关是否使用的更多信息信谊信谊,请参阅选择syms或sym功能

定义一个符号表达式X ^2 + X - 2来表示二次方程的右边并赋值给f (x).标识符f (x)Now指的是符号函数它表示二次函数。符号函数接受标量作为输入参数。

符号x f(x) = x^2 + x - 2
F (x) = x^2 + x -2

然后,您可以通过在圆括号内提供二次函数的输入参数来求值。例如,evaluatef (2)

fVal = f(2)
fVal = 4

你也可以解二次方程 f x 0 .使用解决求二次方程的根。解决将两个解作为两个符号数的向量返回金宝搏官方网站。

Sols = solve(f)
Sols = -2 1

象征性的方程

将数学方程定义为符号方程使您能够找到方程的解。例如,用一个符号方程来解三角函数问题 2 t 因为 t 1

表示三角问题的符号方程

创建一个符号函数g (t)使用信谊.指定符号表达式2 * sin (t) * cos (t)g (t)

符号g(t) g(t) = 2*sin(t)*cos(t)
G (t) = 2*cos(t)* sint
定义方程,使用= =运算符并赋值数学关系G (t) == 1eqn.标识符eqn是一个表示三角问题的符号方程。
Eqn = g(t) = 1
Eqn = 2* cost * sint = 1

使用解决求这个三角问题的解。

Sol = solve(eqn)
Sol = /4

符号向量与矩阵

使用符号向量和矩阵来表示和求解线性方程组。

x + 2 y u 4 x + 5 y v

你可以用两个符号方程的向量来表示方程组。你也可以把方程组表示成一个矩阵问题,包括一个符号数矩阵和一个符号变量向量。为简洁起见,符号对象的任何向量称为a象征性的向量任何关于符号对象的矩阵称为a象征性的矩阵

表示线性方程组和矩阵问题的符号向量和矩阵

创建两个符号方程eq1而且eq2.把这两个方程合并成一个符号向量。

Syms u v x y eq1 = x + 2*y = u;= 4*x + 5*y == v;Eqns = [eq1, eq2]
Eqns = [x + 2*y == u, 4*x + 5*y == v]

使用解决求所表示方程组的解金宝搏官方网站命令解决返回一个结构年代以方程中每个变量命名的字段。您可以使用点表示法访问这些解,如金宝搏官方网站S.x而且S.y

S = solve(eqns);S.x
Ans = (2*v)/3 - (5*u)/3
S.y
Ans = (4*u)/3 - v/3

求解线性方程组的另一种方法是将其转换为矩阵形式。使用equationsToMatrix将方程组转换为矩阵形式,并将输出赋给一个而且b.在这里,一个是符号矩阵和b是一个符号向量。用矩阵除法算子求解矩阵问题。

[A,b] = equationsToMatrix(eqns,x,y)
A = [1,2] [4,5] b = u v
sols = A\b
Sols = (2*v)/3 - (5*u)/3 (4*u)/3 - v/3

符号矩阵变量

自从R2021a

使用符号矩阵变量计算关于向量的微分。

α y T 一个 x α x y T 一个 α y x T 一个 T

符号矩阵变量用紧凑矩阵表示法表示矩阵、向量和标量。符号矩阵变量在排版中提供了简洁的显示,并更清晰地显示数学公式。您可以在“符号数学工具箱”中输入基于矢量和矩阵的表达式作为符号矩阵变量。

表示关于向量的微分的符号矩阵变量

创建三个符号矩阵变量xy,一个使用信谊命令使用矩阵语法。非标量符号矩阵变量在“命令窗口”和“实时编辑器”中以粗体显示。

syms x[4 1]矩阵syms y[3 1]矩阵syms A[3 4]矩阵x y
x =xy =y一个=一个
定义α.求的微分α关于这些向量x而且y用符号矩阵变量表示x而且y
alpha = y.'*A*x
α=y”。*一个x
Dx = diff(,x)
Dx =y”。*一个
Dy = diff(,y)
Dy =x”。*一个.'
替代y(1;2;3]Dx和替代x(1;2;0;1]Dy使用潜艇.求值符号表达式时,必须替换与所定义的符号矩阵变量大小相同的值。
Dx = subs(Dx,y,[1;2;3))
Dx = symmatrix([1;2;3]).'* .一个
Dy = subs(Dy,x,[-1;2;0;1))
Dx = symmatrix([-1;2;0;1]).'*一个.'

符号矩阵函数

自从R2022a

使用符号矩阵函数求一个矩阵多项式的值。

f 一个 一个 2 3. 一个 + 2

符号矩阵函数表示一个依赖参数的函数,它接受矩阵、向量和标量作为输入参数。符号矩阵函数以紧凑矩阵表示法操作矩阵,在排版中提供简洁的显示,并更清晰地显示数学公式。您可以在“符号数学工具箱”中输入基于矢量和矩阵的公式作为符号矩阵函数。

表示矩阵变量的符号表达式的符号矩阵函数

创建一个2乘2的符号矩阵变量一个使用信谊命令使用矩阵语法。创建一个符号矩阵函数f (A)接受一个属性作为输入参数信谊命令使用矩阵keepargs的先前定义一个

f(A) 2个矩阵保持
将多项式表达式赋给符号矩阵函数。
f(A) = A^2 - 3*A + 2*eye(2)
f(A) = 2*symmatrix(eye(2)) - 3*一个+一个^ 2
求函数的矩阵值A = [1 2;2 (1).求值符号矩阵函数时,必须替换与定义的输入参数具有相同大小的值。
fEval = f([1 2;2 (1)
函数宏指令= - 3 * symmatrix ([1, 2, 2, 1]) + symmatrix ([1, 2, 2, 1]) ^ 2 + 2 * symmatrix(眼(2))
函数的求值函数转换为symmatrix的数据类型信谊数据类型。
fSym = symmatrix2sym(fEval)
fSym = [-4, -6] [6,2]

符号对象的比较

这个表格比较了符号数学工具箱中可用的符号对象。

象征性的对象 MATLAB命令示例 符号对象的大小 数据类型
象征性的数量
A = 1/√(sym(2)) theta = asin(A)
A = 2^(1/2)/2 = /4
1——- - - - - -1 信谊
符号标量变量
表示x y u v
1——- - - - - -1 信谊
符号函数
Syms x f(x) = x^2 + x - 2 Syms g(t) [13] g
F (x) = x^2 + x - 2g (t) = [g1(t), g2(t), g3(t)]
  • 未求值函数的大小,例如大小(g),是1——- - - - - -1

  • 被求值函数的大小,例如大小(g (t)),是——- - - - - -n,在那里行大小和n列大小。

  • 未求值函数的数据类型,例如类(g),是symfun

  • 被求值函数的数据类型,例如类(g (t)),是信谊

符号表达式
Syms x expr = x^2 + x - 2 expr = 2*sin(x)*cos(x)
Expr = x^2 + x - 2 Expr = 2*cos(x)*sin(x)
1——- - - - - -1
象征性的方程
Syms u v y eq1 = x + 2*y == u eq2 = 4*x + 5*y == v
方程1 = x + 2*y = u方程2 = 4*x + 5*y = v
1——- - - - - -1 信谊
象征性的向量
Syms u v b = [u v]
B = [u, v]
1——- - - - - -n——- - - - - -1,在那里行大小和n是列的大小 信谊
象征性的矩阵
syms A x y A = [x y;x * y y ^ 2)
A = [x, y] [x*y, y^2]
——- - - - - -n,在那里行大小和n是列的大小 信谊
符号多维数组
syms A [2 1 2
A(:,:,1) = a1_1 a2_1 A(:,:,2) = a1_2 a2_2
sz1——- - - - - -sz2-……szn,在那里szn是大小的nth维度 信谊

符号矩阵变量

自从R2021a

[2 3]矩阵
一个=一个B =B
——- - - - - -n,在那里行大小和n是列的大小 symmatrix

符号矩阵函数

自从R2022a

syms X Y[2 2]矩阵syms f(X,Y)[2 2]矩阵保持f(X,Y) = X*Y - Y*X
f(X, Y) =X* y - y *X
  • 大小未求值的矩阵函数,如大小(f),是1——- - - - - -1

  • 被求值函数的大小,例如大小(f (X, Y)),是——- - - - - -n,在那里行大小和n列大小。

  • 未求值矩阵函数的数据类型,如类(f),是symfunmatrix

  • 被求值函数的数据类型,例如类(f (X, Y)),是symmatrix

另请参阅

|||||||

相关的话题