主要内容

清除假设并重置符号引擎

与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]

明确的假设xz

假设([x z],“明确的”)
假设
ans =空符号:1 × 0

同样,下面的命令也清除假设xz

信谊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