第六章 符号运算
1.53 符号对象
1.符号数值、变量和表达式的创建方法
2.认识函数
sym、syms
3.说明
符号数学工具箱
符号数学工具箱引入了一种特殊的数据类型 - 符号对象
该数据类型包括符号数字,符号变量,符号表达式和符号函数,还包含符号矩阵及上述变量组成的符号数组。
符号数学工具箱提供求解、绘图和操作符号数学方程的功能
4.实例演示
%1_53
%freexyn
1/6 %双精度浮点型1/6,在Matlab中使用小数表达
x=sym(1/6) %创建符号变量,分数形式表达
class(x) %测试x类型为符号对象
sin(pi) %对双精度浮点pi值求sin值,有舍入误差
sin(sym(pi)) %对符号对象数值pi求sin值,完整表达
%% 创建符号变量
sym('x') %方法1
syms x %方法2 声明后可直接使用,无输出结果,但工作区会存储
syms x y z
sym('x',[1 5]) %方法1的形式也可赋值多个符号变量,并自动编号
%% 创建符号表达式
f=2*x+1
g=x*y+z
1.54 符号函数和符号矩阵
1.符号函数和符号矩阵的创建和应用
2.说明
符号函数和符号矩阵的用法与常规的矩阵和函数相同,差异在于处理的数据类型不同,用符号对象运算时,需要首先声明符号对象。
3.实例演示
%1_54
syms x %声明符号对象x
f=2*x+1 %符号表达式
f(x)=2*x+1 %符号函数
f(1) %结果是符号对象3,与双精度3不同
syms f(x,y) %直接创建(声明)没有函数表达式的函数
f(x,y) %调用
f(1,2) %运算结果
%% 符号矩阵
syms a b c d %声明符号变量
A=[a b;c d] %符号矩阵,结果每行用中括号单独表达
B=[a 1;c 3] %混合类型符号矩阵
sum(A) %符号矩阵运算,与常规矩阵算法相同
sum(B)
sym('x',[2 2]) %创建2行2列矩阵,自动添加下标
sym('x%d%d',[2 2]) %分别引用2个下标
sym('x%d2018%d',[2 2]) %2个下标中间添加数字
%% 普通矩阵转化为符号矩阵
C=hilb(3) %创建3阶希尔伯特矩阵
sym(C) %转化为符号矩阵
1.55 基本运算
1.符号对象的算术运算、关系运算和逻辑运算
2.认识函数
isAlways %判断符号表达式是否为真
3.说明
符号对象的基本代数运算与浮点型数据的运算大体相同
4.实例演示
%1_55
1+1
sym(1)+1
syms a b x %声明符号变量
a+1
a+b
f=a+b+1
f+x
g(x)=a*x+b %函数运算
g(10)
m=[a b;b a] %符号矩阵运算
m+1
m.*2 %每个元素都乘2
m*m %矩阵乘法
%% 关系运算
1<2 %浮点型关系运算返回逻辑值
sym(1)<2 %先转换为符号型再运算,返回符号型表达式
isAlways(sym(1)<2) %用符号表达式的判断函数,返回逻辑值
a=0)
isAlways(abs(a)*abs(b)>=abs(a*b))
isAlways(abs(a)>=0 | 1>2) %第一项为真,取或运算后,结果为真
isAlways(abs(a)>=0 & 1>2) %结果为假
a | b
a & b
1.56 使用假设
1.符号变量使用假设