【matlab】科学计算与MATLAB语言(MOOC课程)笔记八
专题七 符号计算
目录
一 符号对象
1. 符号对象的建立
这里的符号对象包括符号常量和符号变量,在MATLAB中建立符号对象会用到函数sym()和命令syms。
1.1 sym函数
sym函数用于建立单个符号对象。其常用的调用格式为:符号对象名=sym(A),将由A来建立符号对象。其中,A可以是一个数值常量、数值矩阵、数值表达式(不加单引号),此时符号对象是一个符号常量;A也可以是一个变量名(加单引号),此时符号对象是一个符号变量。
举个例子:分别使用符号常量和符号变量。
右例中,如果希望将符号表达式转换为数值结果,可以使用eval函数,如下(接着右例继续编写):
1.2 syms命令
syms命令可以一次定义多个符号变量。其一般调用格式是:
syms 符号变量名1 符号变量名2 … 符号变量名n
其中,变量名不能加单引号,相互之间用空格隔开。例如,输入命令>>syms a b c d,生成4个符号变量之后,可以操作这4个变量,例如>>a = 5。
2. 符号对象的运算
2.1 四则运算
符号表达式的四则运算与数值运算一样,用+、-、*、/、^运算符实现,,其运算结果依然是一个符号表达式。
举个例子。
其结果ans仍然是一个符号表达式。
2.2 关系运算
- 6种关系运算符:<、<=、>、>=、==、~=
- 对应的6个函数是:lt()、le()、gt()、ge()、eq()、ne()
在进行符号对象的运算前,可用assume函数对符号对象设置值域,函数调用格式是:
- assume(condition)
- assume(expr, set)
第一种格式指定变量满足条件condition,第二种格式指定表达式expr属于集合set。
举个例子。
2.3 逻辑运算
- 3种逻辑运算符:&(与)、|(或)、~(非)
- 4个逻辑运算函数:and()、or()、not()、xor()
举个例子。
2.4 因式分解与展开运算
MATLAB提供了对符号表达式进行因式分解、展开、合并的函数,函数的调用格式为:
- factor(s):对符号表达式s进行因式分解。
- expand(s):对符号表达式s进行展开。
- collect(s):对符号表达式s合并同类项。
- collect(s, v):对符号表达式s按变量v合并同类项。
举个例子:因式分解a³-b³。
2.5 其它运算
- 提取有理分式的分子分母:[n, d] = numden(s)。
- 提取符号表达式的系数:c = coeffs(s, x)。
- 符号表达式化简:simplify(s)。