Matlab符号数学Symbolic Math Toolbox™帮助文档(全)
符号数学快速入门
- 创建符号数、变量和表达式
- 创建符号数
- 创建符号变量
- 创建符号表达式
- 重用符号对象的名称
- 创建符号函数
- 创建符号数组
- 使用现有符号变量
- 创建矩阵时生成元素
- 创建符号数字矩阵
- 执行符号计算
- 对符号表达式求微分
- 带有一个变量的表达式
- 偏导数
- 二阶偏导数和混合导数
- 对符号表达式求积分
- 一元表达式的不定积分
- 多变量表达式的不定积分
- 定积分
- 如果MATLAB找不到一个积分的近似形式
- 解方程
- 用一个符号变量解代数方程组
- 用多个符号变量求解代数方程组
- 解代数方程组
- 化简符号表达式
- 符号表达式中的替换
- 用数字代替符号变量
- 多元表达式中的替换
- 用一个符号变量替换另一个符号变量
- 将矩阵代入多项式
- 替换符号矩阵的元素
- 符号函数作图
- 显式函数图
- 隐函数图
- 三维绘图
- 创建曲面图
- 对符号变量使用假设
- 默认假设
- 设置假设
- 检查现有假设
- 删除符号对象及其假设
创建符号数、变量和表达式
此页显示如何创建符号数字、变量和表达式。
创建符号数
您可以使用 sym 创建符号数字。与浮点数不同,符号数字是精确表示。
使用 sym 创建一个符号数,并将其与同一个浮点数进行比较。
sym(1/3)
ans =
1 3 \frac{1}{3} 31
1/3
ans = 0.3333
符号数字以完全有理形式表示,而浮点数字是十进制近似值。符号结果不缩进,而标准MATLAB®结果缩进。
符号数的计算是精确的。通过符号和数字的方法来证明这种精确性。符号结果是精确的,而数值结果是近似值。
sin(sym(pi))
ans = 0
sin(pi)
ans = 1.2246e-16
创建符号变量
可以使用syms或sym创建符号变量。这些功能的典型用途包括:
- sym ——创建带编号的符号变量或在MATLAB函数中创建符号变量。
- syms ——为交互式符号工作流创建新的符号变量,即在MATLAB命令行或MATLAB live脚本中创建符号变量。新的符号变量没有任何假设。
syms命令是sym语法的简写,但是这两个函数处理假设的方式不同。分别使用syms和sym创建符号变量x和y。
syms x
y = sym('y')
y = y
第一个命令在MATLAB工作空间中创建一个符号变量x,将值x赋给变量x。第二个命令用值y创建符号变量y。
使用syms,您可以在一个命令中创建多个变量。创建变量a、b和c。
clear
A = sym('a', [1 20])
A =
( a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 a 11 a 12 a 13 a 14 a 15 a 16 a 17 a 18 a 19 a 20 ) \left(\begin{array}{cccccccccccccccccccc} a_1 & a_2 & a_3 & a_4 & a_5 & a_6 & a_7 & a_8 & a_9 & a_{10} & a_{11} & a_{12} & a_{13} & a_{14} & a_{15} & a_{16} & a_{17} & a_{18} & a_{19} & a_{20} \end{array}\right) (a1a2a3a4a5a6a7a8a9a10a11a12a13a14a15a16a17a18a19a20)
whos
Name Size Bytes Class AttributesA 1x20 8 sym
A是一个由20个符号变量组成的1×20数组。通过组合sym和syms,可以在MATLAB工作空间中创建许多新的符号变量,并使用相应的变量名。
清除工作区。创建新的符号变量a1,…,a10,并分别为它们指定MATLAB变量名a1,…,a10。在MATLAB工作空间中显示变量。
clear
syms(sym('a', [1 10]))
whos
Name Size Bytes Class Attributesa1 1x1 8 sym a10 1x1 8 sym a2 1x1 8 sym a3 1x1 8 sym a4 1x1 8 sym a5 1x1 8 sym a6 1x1 8 sym a7 1x1 8 sym a8 1x1 8 sym a9 1x1 8 sym
MATLAB工作区包含10个符号变量的MATLAB变量。
syms命令是sym语法的一个方便的速记,它的典型用法是为交互式符号工作流创建新的符号变量。使用sym语法创建以下内容:
- MATLAB函数中的符号变量
- 多个编号符号变量
- 其值与MATLAB工作区中的同名变量不同的符号变量
- 符号数,如 sym(5)
- 从先前使用的同名符号变量继承假设的符号变量。
创建符号表达式
假设要使用符号变量来表示黄金分割率 φ = 1 + 5 2 \varphi=\frac{1+\sqrt{5}}{2} φ=21+5 ,以下指令
clear
phi = (1 + sqrt(sym(5)))/2;
达到了这个目的。现在你可以在 phi 上执行各种数学运算。例如:
f = phi^2 - phi - 1
f =
( 5 2 + 1 2 ) 2 − 5 2 − 3 2 {{\left(\frac{\sqrt{5}}{2}+\frac{1}{2}\right)}}^2 -\frac{\sqrt{5}}{2}-\frac{3}{2} (25 +21)2−25 −23
现在假设您想研究二次函数 f = ax² + bx + c 。首先,创建符号变量a、b、c和x:
syms a b c x
然后,将表达式赋给 f :
f = a*x^2 + b*x + c
f =
a x 2 + b x + c a\,x^2 +b\,x+c ax2+bx+c
- 提示
要创建符号数字,请使用 sym 命令。不要使用 syms 函数创建常量符号表达式。例如,要创建值为 5 的表达式,请输入 f = sym(5) 。命令 f = 5 没有将 f 定义为符号表达式。
重用符号对象的名称
如果将变量设置为符号表达式,然后对变量应用syms命令,MATLAB软件将从变量中删除先前定义的表达式。例如,
clear
syms a b
f = a + b
f = a + b
如果接着键入
syms f
f
f = f
然后,MATLAB从表达式 f 中删除值 a+b 。可以使用 syms 命令清除先前在MATLAB会话中分配给它们的定义变量。 syms 清除了变量的假设:复数、实数、整数和正数。这些假设与符号对象分开存储。但是,使用 sym 重新创建变量并不能清除它的假设。
创建符号函数
符号函数表示数学函数。使用符号函数进行微分、积分、求解常微分方程(ODE)和其他数学运算。使用 syms 创建符号函数。
使用 syms 创建带有变量 x 和 y 的符号函数f。创建f会自动创建 x 和 y 。
clear
syms f(x,y)
给 f 指定一个数学表达式:
f(x,y) = x^2*y
f(x,y) =
x 2 y x^2 \,y x2y
找到 f(3,2) 处的函数值:
f(3,2)
ans = 18
符号函数接受数组输入。计算 x 和 y 的多个值的 f :
xVal = 1:5;
yVal = 3:7;
f(xVal, yVal)
ans =
( 3 16 45 96 175 ) \left(\begin{array}{ccccc}3 & 16 & 45 & 96 & 175\end{array}\right) (3164596175)
您可以区分符号函数,集成或简化它们,用值替换它们的参数,以及执行其他数学运算。例如,求 f(x,y) 对 x 的导数,结果 dfx 也是一个符号函数。
dfx = diff(f,x)
dfx(x, y) =
2 x y 2\,x\,y 2xy
计算 x = y + 1 时的 df(x,y):
dfx(y+1,y)
ans =
2 y ( y + 1 ) 2\,y\,{\left(y+1\right)} 2y(y+1)
如果要创建一个常量函数,例如 f(x,y) = 1 ,则必须首先创建 f(x,y) 。如果不创建 f(x,y) ,那么赋值 f(x,y) = 1 抛出一个错误。
创建符号数组
使用现有符号变量
循环矩阵具有这样的性质:每一行都是通过循环置换前一行来获得的。例如,使用以下命令创建元素为 a 、 b 和 c 的符号循环矩阵:
clear
syms a b c
A = [a b c; c a b; b c a]
A =
( a b c c a b b c a ) \left(\begin{array}{ccc} a & b & c\\ c & a & b\\ b & c & a \end{array}\right) ⎝⎛acbbaccba⎠⎞
由于矩阵 A 是循环的,所以每行每列的元素之和是相同的。求第一行所有元素的和:
sum(A(1,:))
ans = a + b + c
要检查第一行元素的总和是否等于第二列元素的总和,请使用 isAlways 函数:
isAlways(sum(A(1,:)) == sum(A(2,:)))
ans = logical1
总和是相等的。从这个例子中,您可以看到使用符号对象与使用常规MATLAB®数字对象非常相似。
创建矩阵时生成元素
sym 函数还允许您定义符号矩阵或向量,而无需事先定义其元素。在这种情况下, sym 函数在创建矩阵的同时生成符号矩阵的元素。该函数使用相同的形式显示所有生成的元素:基(必须是有效的变量名)、行索引和列索引。使用 sym 的第一个参数指定生成元素名称的基。可以使用任何有效的变量名作为基。要检查名称是否是有效的变量名,请使用 isvarname 函数。默认情况下, sym 通过下划线分隔行索引和列索引。例如,使用元素A1_1,…,A2_4创建 2 乘 4 矩阵 A :
clear
A = sym('A', [2 4])
A =
( A 1 , 1 A 1 , 2 A 1 , 3 A 1 , 4 A 2 , 1 A 2 , 2 A 2 , 3 A 2 , 4 ) \left(\begin{array}{cccc} A_{1,1} & A_{1,2} & A_{1,3} & A_{1,4} \\ A_{2,1} & A_{2,2} & A_{2,3} & A_{2,4} \end{array}\right) (A1,1A2,1A1,2A2,2A1,3A2,3A1,4A2,4)
要控制生成的矩阵元素名称的格式,请在第一个参数中使用 %d :
A = sym('A%d%d', [2 4])
A =
( A 11 A 12 A 13 A 14 A 21 A 22 A 23 A 24 ) \left(\begin{array}{cccc} A_{11} & A_{12} & A_{13} & A_{14} \\ A_{21} & A_{22} & A_{23} & A_{24} \end{array}\right) (A11A21A12A22A13A23A14A24)
创建符号数字矩阵
sym 的一个特别有效的用法是将矩阵从数字形式转换为符号形式。如下命令生成3×3希尔伯特矩阵。
clear
A = hilb(3)
A = 3x31.0000 0.5000 0.33330.5000 0.3333 0.25000.3333 0.2500 0.2000
通过将 sym 应用于 A ,可以获得3×3希尔伯特矩阵的精确符号形式:
A = sym(A)
A =
( 1 1 2 1 3 1 2 1 3 1 4 1 3 1 4 1 5 ) \left(\begin{array}{ccc} 1 & \frac{1}{2} & \frac{1}{3}\\ \frac{1}{2} & \frac{1}{3} & \frac{1}{4}\\ \frac{1}{3} & \frac{1}{4} & \frac{1}{5} \end{array}\right) ⎝⎛12131213141314151⎠⎞
执行符号计算
对符号表达式求微分
使用Symbolic Math Toolbox™ 软件,你可以求解
- 单变量表达式的导数
- 偏导数
- 二阶及高阶导数
- 混合导数
带有一个变量的表达式
要求解符号表达式的微分,请使用 diff 命令。以下示例说明如何获取符号表达式的一阶导数:
clear
syms x
f = sin(x)^2;
diff(f)
ans = 2cos(x)sin(x)
偏导数
对于多变量表达式,可以指定微分变量。如果未指定任何变量,MATLAB®会根据其与字母 x 的接近程度选择默认变量:
syms x y
f = sin(x)^2 + cos(y)^2;
diff(f, y)
ans = -2cos(y)sin(y)
二阶偏导数和混合导数
要获取符号表达式 f 相对于变量 y 的二阶导数,请输入:
syms x y
f = sin(x)^2 + cos(y)^2;
diff(f, y, 2)
ans =
2 s i n ( y ) 2 − 2 c o s ( y ) 2 2\,{\mathrm{sin}\left(y\right)}^2 -2\,{\mathrm{cos}\left(y\right)}^2 2sin(y)2−2cos(y)2
用导数两次得到相同的结果: diff(diff(f, y)) 。要获取混合导数,请使用两个微分命令。例如:
syms x y
f = sin(x)^2 + cos(y)^2;
diff(diff(f, y), x)
ans = 0
对符号表达式求积分
你可以执行符号表达式的积分操作,包括:
- 不定积分与定积分
- 多变量表达式的积分
一元表达式的不定积分
假设您要积分一个符号表达式。第一步是创建符号表达式:
clear
syms x
f = sin(x)^2;
要求不定积分,请输入
int(f)
ans =
x 2 − s i n ( 2 x ) 4 \frac{x}{2}-\frac{\mathrm{sin}\left(2\,x\right)}{4} 2x−4sin(2x)
多变量表达式的不定积分
如果表达式依赖于多个符号变量,则可以指定一个积分变量。如果未指定任何变量,MATLAB将根据字母 x 的接近程度选择默认变量:
syms x y n
f = x^n + y^n;
int(f)
ans =
x y n + x x n n + 1 x\,y^n +\frac{x\,x^n }{n+1} xyn+n+1xxn
也可以将表达式 f=xn+yn 与 y 积分
int(f, y)
ans =
x n y + y y n n + 1 x^n \,y+\frac{y\,y^n }{n+1} xny+n+1yyn
如果积分变量是 n ,输入
int(f, n)
ans =
x n l o g ( x ) + y n l o g ( y ) \frac{x^n }{\mathrm{log}\left(x\right)}+\frac{y^n }{\mathrm{log}\left(y\right)} log(x)xn+log(y)yn
定积分
要求定积分,请将积分极限作为int函数的最后两个参数:
int(f, 1, 10)
{ l o g ( 10 ) + 9 y if n = − 1 10 10 n − 1 n + 1 + 9 y n if n ≠ − 1 \left\lbrace \begin{array}{cl} \mathrm{log}\left(10\right)+\frac{9}{y} & \;\textrm{if}\;\;n=-1\\ \frac{10\,{10}^n -1}{n+1}+9\,y^n & \;\textrm{if}\;\;n\not= -1 \end{array}\right. {log(10)+y9n+11010n−1+9ynifn=−1ifn=−1
如果MATLAB找不到一个积分的近似形式
如果 int 函数无法计算积分,则返回未解析的积分:
syms x
int(sin(sinh(x)))
ans =
∫ s i n ( s i n h ( x ) ) d x \int \mathrm{sin}\left(\mathrm{sinh}\left(x\right)\right)\textrm{d}x ∫sin(sinh(x))dx
解方程
可以求解不同类型的符号方程,包括:
- 单符号变量代数方程
- 具有多个符号变量的代数方程
- 代数方程组
用一个符号变量解代数方程组
使用双等号(==)定义一个等式。然后,您可以通过调用 solve 函数来求解方程。例如,求解此方程:
clear
syms x
solve(x^3 - 6*x^2 == 6 - 11*x)
ans =
( 1 2 3 ) \left(\begin{array}{c} 1\\ 2\\ 3 \end{array}\right) ⎝⎛123⎠⎞
如果不指定方程的右侧,则 solve 假定它为零:
solve(x^3 - 6*x^2 + 11*x - 6)
ans =
( 1 2 3 ) \left(\begin{array}{c} 1\\ 2\\ 3 \end{array}\right) ⎝⎛123⎠⎞
用多个符号变量求解代数方程组
如果一个方程包含多个符号变量,则可以指定一个变量来求解该方程。例如,求解关于 y 的多变量方程:
syms x y
solve(6*x^2 - 6*x^2*y + x*y^2 - x*y + y^3 - y^2 == 0, y)
ans =
( 1 2 x − 3 x ) \left(\begin{array}{c} 1\\ 2\,x\\ -3\,x \end{array}\right) ⎝⎛12x−3x⎠⎞
如果不指定任何变量,则会得到按字母顺序最接近 x 变量的方程的解。
解代数方程组
你也可以解方程组。例如:
syms x y z
[x, y, z] = solve(z == 4*x, x == y, z == x^2 + y^2)
x =
( 0 2 ) \left(\begin{array}{c} 0\\ 2 \end{array}\right) (02)
y =
( 0 2 ) \left(\begin{array}{c} 0\\ 2 \end{array}\right) (02)
z =
( 0 8 ) \left(\begin{array}{c} 0\\ 8 \end{array}\right) (08)
化简符号表达式
Symbolic Math Toolbox提供了一组简化函数,允许您操作符号表达式的输出。例如,下面的多项式的黄金比率 φ \varphi φ(phi)
clear
phi = (1 + sqrt(sym(5)))/2;
f = phi^2 - phi - 1
f =
( 5 2 + 1 2 ) 2 − 5 2 − 3 2 {{\left(\frac{\sqrt{5}}{2}+\frac{1}{2}\right)}}^2 -\frac{\sqrt{5}}{2}-\frac{3}{2} (25 +21)2−25 −23
您可以通过输入如下指令来化简这个答案并得到一个简短的结果:
simplify(f)
ans = 0
符号化简并不总是那么直截了当。没有普遍的简化函数,因为一个符号表达式的最简单表示的含义无法明确定义。不同的问题需要同一数学表达式的不同形式。知道什么形式对解决你的特定问题更有效,你可以选择适当的简化函数。
例如,为了表示多项式的阶数或对多项式进行符号微分或积分,请使用标准多项式形式,将所有括号相乘,并将所有相似项相加。要重写标准形式的多项式,请使用 expand 函数:
syms x
f = (x^2 - 1)*(x^4 + x^3 + x^2 + x + 1)*(x^4 - x^3 + x^2 - x + 1);
expand(f)
ans = x*10 - 1
factor 化简函数显示多项式根。如果一个多项式不能被有理数分解,那么 factor 函数的输出就是标准多项式形式。例如,要计算如下三阶多项式的因式,请输入:
g = x^3 + 6*x^2 + 11*x + 6;
factor(g)
ans =
( x + 3 x + 2 x + 1 ) \left(\begin{array}{ccc} x+3 & x+2 & x+1 \end{array}\right) (x+3x+2x+1)
多项式的嵌套(Horner)表示对于数值计算是最有效的:
h = x^5 + x^4 + x^3 + x^2 + x;
horner(h)
ans =
x ( x ( x ( x ( x + 1 ) + 1 ) + 1 ) + 1 ) x\,{\left(x\,{\left(x\,{\left(x\,{\left(x+1\right)}+1\right)}+1\right)}+1\right)} x(x(x(x(x+1)+1)+1)+1)
符号表达式中的替换
用数字代替符号变量
可以使用 subs 函数将符号变量替换为数值。例如,在点 x=1/3 处计算符号表达式 f :
clear
syms x
f = 2*x^2 - 3*x +1;
subs(f, 1/3)
ans =
2 9 \frac{2}{9} 92
subs 函数不会更改原始表达式 f :
f
f =
2 x 2 − 3 x + 1 2\,x^2 -3\,x+1 2x2−3x+1
多元表达式中的替换
当表达式包含多个变量时,可以指定要对其进行替换的变量。例如,用 x=3 替换符号表达式中的值
syms x y
f = x^2*y + 5*x*sqrt(y);
输入如下指令
subs(f, x, 3)
f =
9 y + 15 y 9\,y+15\,\sqrt{y} 9y+15y
用一个符号变量替换另一个符号变量
也可以用一个符号变量替换另一个符号变量。例如,要将变量 y 替换为变量 x ,请输入
subs(f, y, x)
ans =
x 3 + 5 x 3 2 x^3 +5\,x^{\frac{3}{2}} x3+5x23
将矩阵代入多项式
也可以将矩阵代入具有数值系数的符号多项式。将矩阵代入多项式有两种方法:逐元素和按矩阵乘法规则。
逐元素替换。要在每个元素处代入矩阵,请使用 subs 命令:
syms x
f = x^3 - 15*x^2 - 24*x + 350;
A = [1 2 3; 4 5 6];
subs(f,A)
ans =
( 312 250 170 78 − 20 − 118 ) \left(\begin{array}{ccc} 312 & 250 & 170\\ 78 & -20 & -118 \end{array}\right) (31278250−20170−118)
可以对矩形矩阵或正方形矩阵进行逐元素替换。
矩阵意义上的替代。如果你想用标准的矩阵乘法规则把一个矩阵替换成多项式,那么矩阵必须是平方的。例如,可以将幻方 A 替换为多项式 f :
1.创建多项式:
syms x
f = x^3 - 15*x^2 - 24*x + 350;
2.创建幻方矩阵:
A = magic(3)
A = 3x38 1 63 5 74 9 2
3.得到一个包含多项式 f 的数值系数的行向量:
b = sym2poly(f)
b = 1x41 -15 -24 350
4.将幻方矩阵 A 代入多项式 f 。矩阵 A 替换多项式中 x 的所有出现。常数乘以单位矩阵 eye(3) 代替f的常数项:
A^3 - 15*A^2 - 24*A + 350*eye(3)
ans = 3x3-10 0 00 -10 00 0 -10
polyvalm 命令提供了获得相同结果的简单方法:
polyvalm(b,A)
ans = 3x3-10 0 00 -10 00 0 -10
替换符号矩阵的元素
要替换符号矩阵中的一组元素,还可以使用 subs 命令。假设你想替换符号循环矩阵 A 的一些元素
syms a b c
A = [a b c; c a b; b c a]
A =
( a b c c a b b c a ) \left(\begin{array}{ccc} a & b & c\\ c & a & b\\ b & c & a \end{array}\right) ⎝⎛acbbaccba⎠⎞
要将 A 的 (2, 1) 元素替换为 β \beta β(beta) ,将矩阵中的变量 b 替换为变量 α \alpha α(alpha) ,请输入
alpha = sym('alpha');
beta = sym('beta');
A(2,1) = beta;
A = subs(A,b,alpha)
A =
( a α c β a α α c a ) \left(\begin{array}{ccc} a & \alpha & c\\ \beta & a & \alpha \\ \alpha & c & a \end{array}\right) ⎝⎛aβααaccαa⎠⎞
符号函数作图
Symbolic Math Toolbox提供以下作图函数:
- fplot 在笛卡尔坐标系中创建符号表达式、方程式或函数的二维绘图。
- fplot3 创建三维参数化绘图。
- ezpolar 以极坐标创建绘图。
- fsurf 创建曲面图。
- fcontour 创建等高线图。
- fmesh 创建网格图。
显式函数图
使用 fplot 创建二维线图。打印表达式 x 3 − 6 x 2 + 11 x − 6 x^3 - 6\,x^2 + 11\,x - 6 x3−6x2+11x−6。
clear
syms x
f = x^3 - 6*x^2 + 11*x - 6;
fplot(f)
为 x 轴和 y 轴添加标签。使用 texlabel(f) 生成标题。
xlabel('x')
ylabel('y')
title(texlabel(f))
grid on
隐函数图
用 fimplicit 绘制方程和隐函数。
绘制方程在区间的图线。
syms x y
eqn = (x^2 + y^2)^4 == (x^2 - y^2)^2;
fimplicit(eqn, [-1 1])
三维绘图
用 fplot3 绘制三维参数线。
绘制参数式曲线 { x = t 2 sin ( 10 t ) y = t 2 cos ( 10 t ) z = t \left\{ \begin{array}{c} x=t^2\sin \left( 10t \right)\\ y=t^2\cos \left( 10t \right)\\ z=t\\ \end{array} \right. ⎩⎨⎧x=t2sin(10t)y=t2cos(10t)z=t:
syms t
fplot3(t^2*sin(10*t), t^2*cos(10*t), t)
创建曲面图
使用 fsurf 创建三维曲面。
绘制抛物面 z = x 2 + y 2 z=x^2+y^2 z=x2+y2。
syms x y
fsurf(x^2 + y^2)
对符号变量使用假设
默认假设
在Symbolic Math Toolbox™中,默认情况下,符号变量是复数变量。例如,如果声明 z 如下
syms z
那么MATLAB®将假设 z 是一个复数变量。您可以通过使用 assumptions 来检查符号变量是否假定为复数变量或实数变量。如果 z 是复数,assumptions(z) 返回一个空的符号对象:
assumptions(z)
ans = Empty sym: 1-by-0
设置假设
要对符号变量设置假设,请使用 assume 函数。例如,假设变量 x 为非负:
syms x
assume(x >= 0)
假设用新假设替换了之前对变量的所有假设。如果要将新假设添加到现有假设中,请使用 assumeAlso 。例如,添加假设x也是一个整数。现在变量x是一个非负整数:
assumeAlso(x,'integer')
assume 和 assumeAlso 还允许您声明变量或表达式属于以下集合之一:整数(integer)、正数(positive)、有理数(rational)和实数(real)。
或者,可以在使用sym或syms声明符号变量时设置假设。例如,创建实符号变量 a 和 b ,以及正符号变量 c :
a = sym('a', 'real');
b = sym('b', 'real');
c = sym('c', 'positive');
或更高效地:
syms a b real
syms c positive
检查现有假设
若要查看对符号变量设置的所有假设,请使用带有变量名称的 assumptions 函数作为输入参数。例如,此命令返回当前用于变量 x 的假设:
assumptions(x)
ans =
( x ∈ Z 0 ≤ x ) \left(\begin{array}{cc} x\in \mathbb{Z} & 0\le x \end{array}\right) (x∈Z0≤x)
删除符号对象及其假设
符号对象及其假设分别存储。当你设定一个符号实数 x 如下:
syms x
assume(x, 'real')
你实际上创建了一个符号对象x,并假设这个对象是实数。对象存储在MATLAB工作空间中,假设存储在符号引擎(symbolic engine)中。使用如下语句从MATLAB工作区中删除符号对象时
clear x
x 是实的假设仍然存在于符号引擎中。如果稍后使用 sym 声明一个新的符号变量 x ,它将继承 x 是实数的假设,而不是默认的假设。如果以后用符号变量 x 来求解方程并简化表达式,可能会得到不完整的结果。
注意:如果使用 syms 声明变量,则清除现有假设。如果使用 sym 声明变量,则不会清除现有假设。
例如,假设 x 是实数,则多项式 x2+1 没有根:
syms x real
clear x
x = sym('x');
solve(x^2 + 1 == 0, x)
ans = Empty sym: 1-by-0
这个多项式的复根消失了,因为符号变量x仍然假设x是实存储在符号引擎中。要清除假设,请输入
syms x
此时
solve(x^2 + 1 == 0, x)
ans =
( − i i ) \left(\begin{array}{c} -\mathrm{i}\\ \mathrm{i} \end{array}\right) (−ii)
清除假设后,符号对象将保留在MATLAB工作空间中。如果要同时删除符号对象及其假设,请使用两个命令:
syms a b c z
clear x a b c z
whos
Name Size Bytes Class Attributesans 2x1 8 sym
Matlab符号数学Symbolic Math Toolbox™帮助文档(全)相关推荐
- Matlab中提供了符号计算工具箱(Symbolic Math Toolbox),可以进行符号运算
Matlab中提供了符号计算工具箱(Symbolic Math Toolbox),可以进行符号运算.以下是一些常见的符号运算示例: 定义符号变量 要定义一个符号变量,可以使用 syms 函数.例如,要 ...
- MATLAB Symbolic Math Toolbox
Symbolic Math Toolbox 是MATLAB进行符号运算的工具箱,其符号运算引擎是MuPAD,具有比较强大的符号计算功能.但与专业的符号运算软件Mathematics比较,还是有欠缺,具 ...
- matlab绘制sign函数,MATLAB的Symbolic Math Toolbox详解
MATLAB 符号数学工具箱 入门 创建符号数字,变量和表达式 创建符号数字 创建符号变量 创建符号表达式 重复使用符号对象名 创建符号函数 创建符号矩阵 使用存在的符号变量 创建矩阵的同时生成元素 ...
- matlab simulink 数学符号,MATLAB符号数学
符号数学定义对符号(不是数字!)进行数学运算.例如, a + a为2a.符号数学函数位于MATLAB的Symbolic Math Toolbox中.工具箱包含相关功能, 并且是MATLAB的附加组件. ...
- JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载
JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载 JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet ...
- JAVA帮助文档全系列
JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境.它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运 ...
- Python爬虫实战 下载原力创付费文档---全屏阅览式
下载原力创付费文档-全屏阅览式 一.项目需求: 从目标网址下载付费文档,并保存为word形式 网址点这里 二.思路 1.利用selenium实现异步加载,获取图片url 2.爬取图片 3.将图片写进w ...
- Matlab符号数学(Symbolic Math with MATLAB)MATLAB解方程
创建符号变量 用符号而不是数值表示数字. 存储数字符号 % 你可以把一个数存储为数值格式,就像我们经常做的那样 x = 3; % 你也可以把这个数存储为符号格式,使用sym()函数 xsym = sy ...
- 计算机中人民币符号在哪儿,人民币符号电脑怎么打(如何在文档中输入人民币符号)...
2021-07-12 访客:次 这篇文章跟大家分享如何在Word文档中输入人民币和美元货币符号.下图左一为单横线人民币符号,左二为双横线人民币符号,右一为美元货币符号. 一.单横线人民币符号 在中 ...
最新文章
- Response.getWriter() 和Response.getOutputStream冲突
- android 牛人必修 ant 编译android工程
- VMware中装Win2012并配置Hyper-v
- HTML5-响应式的实现方式-弹性布局浅谈
- 在Kmplayer中设置多字幕
- 页面金额显示两位小数点问题
- Activiti最全入门教程
- sql常用crud命令
- python学习——把计算GC含量的代码封装成函数
- Redis(十三):Redis实现乐观锁
- 博客园的祥和需要大家共同努力
- 什么是分布式事务?2PC、XA、3PC、TCC
- delphi Hi 和 High
- HIT CSAPP 大作业
- 数据库 | PostgreSQL从入门到精通
- CAJ转换有免费的工具吗?
- mysql 离线安装
- 软件安全期末考试试题21SZ回忆版
- 治理企业“数据悬河”,阿里云DataWorks全链路数据治理新品发布
- not executable: 64-bit ELF file 已解决
热门文章
- idea报错:org.codehaus.plexus.component.repository.exception.ComponentLookupException
- boostrap插件
- 诸葛java_java - 诸葛_子房的个人空间 - OSCHINA - 中文开源技术交流社区
- 代理对推广网站的四个作用
- 开源项目-AMS资产管理系统
- Shiro授权--注解式开发
- 女程序员职业发展的特别之处
- 小鸟伏特加怎么用计算机,小鸟伏特加是什么意思,它是怎么火起来的(网络用语)...
- 经典算法应用之七----10亿数据中取最大的100个数据
- 中信银行信用卡中心风险管理(非技术岗)群面