使用符号变量的假设
默认的假设
在Symbolic Math Toolbox™中,默认情况下,符号变量是复杂变量。例如,如果您声明z
作为符号变量使用
信谊z
然后MATLAB®假设z
是一个复变量。您总是可以检查符号变量是假定为复杂变量还是实数变量假设
.如果z
是复杂的,假设(z)
返回一个空的符号对象:
假设(z)
ans =空sym: 1乘0
设置的假设
要对符号变量设置假设,请使用假设
函数。例如,假设变量x
是负的
Syms x assume(x >= 0)
假设
用新的假设替换之前对变量的所有假设。如果您想在现有假设中添加一个新的假设,请使用assumeAlso
.例如,加上假设x
也是整数。现在是变量x
为非负整数:
assumeAlso (x,“整数”)
假设
而且assumeAlso
让您声明一个变量或表达式属于以下集合之一:整数、正数、有理数和实数。
或者,您可以在使用声明符号变量时设置假设信谊
或信谊
.例如,创建真正的符号变量一个
而且b
为正符号变量c
:
A = sym(' A ', 'real');B = sym(' B ', 'real');C = sym(' C ', 'positive');
或者更有效:
a, b,实,c,正
你可以给一个符号对象赋值的假设信谊
或信谊
都是实数、有理、整数和正数。
检查现有假设
若要查看对符号变量设置的所有假设,请使用假设
函数,并将变量名作为输入参数。例如,该命令返回变量当前使用的假设x
:
假设(x)
要查看MATLAB工作区中所有符号变量使用的所有假设,请使用假设
不带输入参数:
假设
详细信息请参见检查变量设置的假设.
删除符号对象和他们的假设
符号对象和它们的假设是分开存储的。当你设定一个假设x
是真正的使用
符号x assume(x,'real')
你实际上创建了一个符号对象x
假设这个物体是实数。对象存储在MATLAB工作空间中,假设存储在符号引擎中。从MATLAB工作区中删除符号对象时使用
清晰的x
假设x
真实存在于符号引擎中。如果您声明了一个新的符号变量x
后使用信谊
,它继承了这样的假设x
是实数,而不是默认假设。如果以后你解一个方程,用符号变量简化一个表达式x
,你可能会得到不完整的结果。
请注意
如果使用信谊
,现有的假设被清除。如果使用信谊
,现有的假设没有被澄清。
例如,假设x
实因是多项式吗x
2+ 1表示没有根:
Syms x real clear x x = sym('x');解(x^2 + 1 == 0, x)
ans =空sym: 0-by-1
这个多项式的复根消失了,因为符号变量x
仍然有假设x
是存储在符号引擎中的实数。要清除假设,请输入
信谊x
在清除假设之后,符号对象将留在MATLAB工作区中。如果你想同时删除符号对象和它的假设,使用两个命令:
要清除假设,请输入
信谊x
若要删除符号对象,请输入
清晰的x
有关清除符号变量的详细信息,请参见清除假设并重置符号引擎.