主要内容

使用符号变量的假设

默认的假设

在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实因是多项式吗x2+ 1表示没有根:

Syms x real clear x x = sym('x');解(x^2 + 1 == 0, x)
ans =空sym: 0-by-1

这个多项式的复根消失了,因为符号变量x仍然有假设x是存储在符号引擎中的实数。要清除假设,请输入

信谊x

在清除假设之后,符号对象将留在MATLAB工作区中。如果你想同时删除符号对象和它的假设,使用两个命令:

  1. 要清除假设,请输入

    信谊x
  2. 若要删除符号对象,请输入

    清晰的x

有关清除符号变量的详细信息,请参见清除假设并重置符号引擎

相关的话题