与MATLAB相关联的符号引擎工作区®工作区通常是空的。MATLAB工作空间跟踪符号变量的值,并在必要时将它们传递给符号引擎进行计算。然而,符号引擎工作区包含关于符号变量的所有假设,例如变量是实数、正数、整数、大于或小于某个值,等等。这些假设可以影响方程的解,简化和转换,如在金宝搏官方网站假设对计算的影响.
例如,创建一个符号变量x
假设它是正的。
Syms x假设(x > 0)
如果你清除变量x
使用命令清晰的x
, MATLAB工作空间没有从符号引擎工作空间中清除假设。
清晰的x的假设
Ans = 0 < x
清除变量的假设x
,使用命令假设(x,“明确的”)
.
Syms x假设(x > 0)假设(x,'clear')假设
ans =空符号:1 × 0
或者,您可以创建一个新的符号变量,而不需要使用信谊
.
信谊x
如果您希望清除符号变量并重新设置符号引擎,请使用该命令清除所有
.
Syms x正面清除所有的假设
ans =空符号:1 × 0
下面展示了MATLAB工作空间和符号引擎工作空间对一系列命令的响应的不同。
一步 | 命令 | MATLAB的工作区 | 象征性的发动机工作空间 |
---|---|---|---|
1 | 信谊x积极 或 信谊x; 假设(x > 0) |
x |
x > 0 |
2 | 清晰的x |
空 | x > 0 |
3. | 信谊x |
x |
空 |
4 | 清除所有 |
空 | 空 |
检查一个变量是否x
,在符号引擎工作空间中有任何假设与MATLAB工作空间相关联,使用假设
函数在MATLAB Live Editor中:
假设(x)
如果函数返回一个空的符号对象,则对该变量没有额外的假设。默认的假设是x
表示任意复数。否则,对变量所代表的值有额外的假设。
例如,在声明符号变量时x
,假设该变量的值为实数。
Syms x真实假设(x)
Ans = in(x, 'real')
另一种设置假设的方法是使用假设
函数。
Syms z假设(z ~= 0);假设(z)
Ans = z ~= 0
要查看MATLAB工作空间中所有变量的假设设置,请使用假设
没有输入参数。
假设
Ans = [in(x, 'real'), z ~= 0]
明确的假设x
和z
.
假设([x z],“明确的”)
假设
ans =空符号:1 × 0
同样,下面的命令也清除假设x
和z
.
信谊x z
假设可以影响许多计算,包括返回的结果解决
和简化
功能。例如,解这个方程时不需要对其变量做任何额外的假设。
(x^4 == 1, x)
Ans = -1 1 -1i
现在,假设x
是实数,解同样的方程。
Syms x实解(x^4 = 1, x)
Ans = 1 1
使用assumeAlso
函数添加假设x
也是积极的。
假设(x > 0) = (x^4 == 1, x)
ans = 1
清算x
并没有改变潜在的假设x
是真实而积极的。
Clear x x = sym('x');假设(x)解(x^4 == 1, x)
Ans = [in(x, 'real'), 0 < x
清算x
与假设(x,“明确的”)
或信谊x
扫清了假设。
信谊x (x)的假设
ans =空符号:1 × 0