使用符号对象来表示数学对象
要使用Symbolic Math Toolbox™解决数学问题,可以定义符号对象来表示各种数学对象。下面的例子讨论了这些符号对象在命令窗口中的用法:
象征性的数量
符号标量变量、函数和表达式
象征性的方程
符号向量和矩阵
符号矩阵变量
符号矩阵函数
象征性的数量
定义一个数字为符号数指导MATLAB®以精确的形式来处理数字,而不是使用数值近似值。例如,用一个符号数字来表示一个反三角函数的参数 .
创建符号数字
使用信谊
,并将其分配给一个
.
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
符号标量变量、函数和表达式
将变量、函数和表达式定义为符号对象使您能够使用这些符号对象执行代数运算,包括简化公式和求解方程。例如,使用符号标量变量、函数和表达式来表示二次函数 .为简洁起见,符号标量变量也称为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
你也可以解二次方程
.使用解决
求二次方程的根。解决
将两个解作为两个符号数的向量返回金宝搏官方网站。
Sols = solve(f)
Sols = -2 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) == 1
来eqn
.标识符eqn
是一个表示三角问题的符号方程。Eqn = g(t) = 1
Eqn = 2* cost * sint = 1
使用解决
求这个三角问题的解。
Sol = solve(eqn)
Sol = /4
符号向量与矩阵
使用符号向量和矩阵来表示和求解线性方程组。
你可以用两个符号方程的向量来表示方程组。你也可以把方程组表示成一个矩阵问题,包括一个符号数矩阵和一个符号变量向量。为简洁起见,符号对象的任何向量称为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
使用符号矩阵变量计算关于向量的微分。
符号矩阵变量用紧凑矩阵表示法表示矩阵、向量和标量。符号矩阵变量在排版中提供了简洁的显示,并更清晰地显示数学公式。您可以在“符号数学工具箱”中输入基于矢量和矩阵的表达式作为符号矩阵变量。
创建三个符号矩阵变量x
,y
,一个
使用信谊
命令使用矩阵
语法。非标量符号矩阵变量在“命令窗口”和“实时编辑器”中以粗体显示。
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”。*一个.'
(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
使用符号矩阵函数求一个矩阵多项式的值。
符号矩阵函数表示一个依赖参数的函数,它接受矩阵、向量和标量作为输入参数。符号矩阵函数以紧凑矩阵表示法操作矩阵,在排版中提供简洁的显示,并更清晰地显示数学公式。您可以在“符号数学工具箱”中输入基于矢量和矩阵的公式作为符号矩阵函数。
创建一个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)] |
|
|
符号表达式 |
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 是大小的n th维度 |
信谊 |
符号矩阵变量 (自从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 |
|
|
另请参阅
信谊
|信谊
|symfun
|symmatrix
|symfunmatrix
|symfunmatrix2symfun
|symmatrix2sym
|str2sym