1.符号对象
(1)sym函数
sym函数用于建立单个符号对象,其常用调用格式为:
符号对象名=sym(A)
其中,A可以是一个数值常量、数值矩阵或数值表达式(不加单引号),此时符号对象为一个符号常量。A也可以是一个变量名(加单引号),这时符号对象为一个符号变量。
符号计算的结果是一个精确的数学表达式而数值计算的结果是一个数值。
(2)syms命令syms命令可以一次定义多个符号变量,其一般调用格式如下:
syms 符号变量名1 ,符号变量名2, ... ,符号变量名n。其中,变量名不能加单引号,相互之间用空格隔开。
2. 符号对象的运算
(1)四则运算符号表达式的四则运算与数值运算一样,用+、-、*、/、^ 运算符实现,其运算结果依然是一个符号表达式。
(2)关系运算6种关系运算符:<、<=、>、>=、==、~=。
对应的6个函数:lt()、le()、gt()、ge()、eq()、ne()。
若参与运算的是符号表达式,其结果是一个符号关系表达式。若参与运算的是符号矩阵,其结果是由符号关系表达式组成的矩阵。
在进行符号对象的运算前,可用assume函数对符号对象设置值域,函数调用格式为:assume(condition)
assume(expr,set)
第一种格式指定变量满足条件condition,第二种格式指定表达式expr属于集合set。
(3)逻辑运算
3种逻辑运算符:&(与)|(或)~(非)。
4个逻辑运算函数:and(a,b) or(a,b) not(a) xor(a,b)。
(4)因式分解与展开运算
MATLAB提供了符号表达式的因式分解与展开的函数,函数的调用格式为:
factor(s):对符号表达式s分解因式。
expand(s):对符号表达式s进行展开。
collect(s):对符号表达式s合并同类项。
collect(s,v):对符号表达式s按变量v合并同类项。
(5)其他
提取有理分式的分子分母:[n,d]=numden(s)。
提取符号表达式的系数:c=coeffs(s,x)。
符号表达式化简:simplify(s)。
符号多项式与多项式系数向量之间的转换:
符号多项式转换为多项式系数向量:p=sym2poly(s)。
多项式系数向量转换为符号多项式:s=poly2sym(p)。
例 求方程ax+bx+c=0的根。
3. 符号矩阵
符号矩阵也是一种符号表达式,所以符号表达式运算都可以在矩阵意义下进行。
注意:这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。
例 当a取何值时,以下齐次线性方程组有非零解。
(1-a)x-2y+4z=0 2x+(3-a)y+z=0 x+y+(1-a)z=0
(对于齐次线性方程组Ax=0,当rank(A)<n或|A|=0时,齐次线性方程组有非零解。)
所以当a=0,2或3