1、符号对象的建立
(1)sym函数
sym函数用于建立单个符号对象,其常用调用格式为:
符号对象名=sym(A)

将由A来建立符号对象。其中,A可以是一个数值常量、数值矩阵或数值表达式(不加单引号),此时符号对象为一个符号常量;A也可以是一个变量名(加单引号),这时符号对象为一个符号变量

(2)syms命令
syms命令可以一次定义多个符号变量,其—般调用格式如下:
syms 符号变量名1 符号变量名2 … 符号变量名n

其中,变量名不能加单引号,相互之间用空格隔开。

例1:符号常量的例子

t = sym(2);   %将数值2转换为符号对象并武值给t,得到一个表达式
t+1/2
sin(sym(pi/3))    %将π/3转换为符号对象,并对该符号对象求正弦值,得到一个表达式
sin(pi/3)         %对π/3做数值计算,得到一个数值计算结果%输出结果
ans = 5/2ans = 3^(1/2)/2ans =0.8660

例2:符号变量的例子

a = 5;   %定义数值变量a,b
b = -8;
x = sym('a');   %定义符号变量x,y,它们份别代表变量a和b
y = sym('b');
w = (a+b)*(a-b)    %做数值计算
s = (x+y)*(x-y)    %做符号计算
eval(s)             %调用eval函数,将符号表达式转换为数值结果,因为ab已经赋值%输出结果
w =-39s = (a + b)*(a - b)ans =-39

用符号对象进行计算更像是一种演算和推理,得到的是一个精确的数学表达武;数值计算的结果是一个数值。

例3:多个符号变量

syms a b c d;   %定义多个符号变量
w1 = a+b+c+d
w2 = a*b*c*d
w3 = (a+b)*(c-d)%输出结果
w1 = a + b + c + dw2 = a*b*c*dw3 = (a + b)*(c - d)

2、符号对象的运算
(1)四则运算
符号表达式的四则运算与数值运算一样,用+、-、*、/、^运算符实现,其运算结果依然是一个符号表表达式。

(2)关系运算
6种关系运算符:<、<=、>、>=、==、~=o
对应的6个函数:lt( )、le( )、gt( )、ge()、eq()、ne( )

若参与运算的是符号表达式,其结果是一个符号关系表达式;若参与运算的是符号矩阵,其结果是由符号关系表达式组成的矩阵

在进行符号对象的运算前,可用assume函数对符号对象设置值域,函数调用格式为:
assume(condition)
assume(expr,set)

第一种格式指定变量满足条件condition,第二种格式指定表达式expr属于集合set。

(3)逻辑运算
3种逻辑运算符:&(与)、l(或)和~(非)。
4个逻辑运算函数: and( )、or( )、not( )和xor( )。

(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§。

(6)符号运算中变量的确定
①如果没有明确指定自变量,MATLAB将按以下原则确定主变量并对其进行相应运算:
寻找除i、j之外,在字母顺序上最接近x的小写字母。若表达式中有两个符号变量与x的距离相等,则ASCII码大者优先。
② symvar()函数可以用于查找一个符号表达式中的符号变量,函数的调用格式为:
symvar(s,n)
函数返回符号表达式s中的n个符号变量。因此,可以用symvar(s,1)查找表达式s的主变量。

例4:四则运算

syms x;
f = 2*x^2+3*x-5;
g = x^2-x+7;
f+g    %即将同次项的系数相加减,其结果是一个符号表达式%输出结果
ans =3*x^2 + 2*x + 2

例5:关系运算

syms x;    %定义符号变量
assume(x<0);   %指定x小于0
abs(x)==x   %建立关系表达式,x的绝对值等于x,x为负数,所以x的绝对值就相当于-x%输出结果
ans =-x == xsyms x;
assume(x,'positive');    %指定x为正数
abs(x)==x    %x为正数,所以x的绝对值就是本身%输出结果
ans =x == x

例6:逻辑运算

syms x;
y1 = x>0 & x<10
y2 = and(x>0,x<10)   %逻辑与运算%输出结果
y1 =0 < x & x < 10y2 =0 < x & x < 10
syms x;
y3 = x>5 | x<-5
y4 = or(x>5,x<-5)   %逻辑或运算%输出结果
y3 = 5 < x | x < -5 y4 = 5 < x | x < -5
syms x;
y5 = ~x
y6 = not(x)     %逻辑非%输出结果
y5 = ~xy6 =~x
syms x;
y7 = xor(x>12,x<0)   %逻辑异或运算%输出结果
12 < x xor x < 0

例7:因式分解与展开运算

syms a b;
s = a^3-b^3;
factor(s)   %进行因式分解
factor(12)   %将正数12分解质因子,素数的质因子只有它本身,用这个性质可以判断一个数是否为素数%输出结果
ans = [ a - b, a^2 + a*b + b^2]ans =2     2     3
syms x y z;
s1 = x^2+23-3*x^3+5*x^2-y^3+12*z-y^3+2*y^4+20*z;
expand(s1)   %合并同类项%输出结果
ans =- 3*x^3 + 6*x^2 + 2*y^4 - 2*y^3 + 32*z + 23

例8:其它运算:求方程ax^2+bx+C=0的根。

方法一:提取表达式系数和多项式求根的方法
syms a b c x;    %定义符号变量
f = a*x^2+b*x+c    %建立符号表达式f
g = coeffs(f,x)     %调用函数将关于x的系数提取出来,得到排列顺序为从低次到高次的系数向量
g = g(end:-1:1)     %翻转系数排序,得到系数向量的标准形式
roots(g)%输出结果
f = a*x^2 + b*x + c g = [ c, b, a]g = [ a, b, c]ans =-(b + (b^2 - 4*a*c)^(1/2))/(2*a)-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
方法二:代数方法求根
syms a b c x;
solve(a*x*x+b*x+c == 0)   %①直接将方程作为solve函数的参数求解syms a b c x;
f = a*x*x+b*x+c==0;    %②将方程作为符号表达式f,然后用solve函数求符号表达式f的解
solve(f)syms a b c x;
solve(a*x*x+b*x+c-0)      %③可以将符号方程所有的项都移到左边syms a b c x;
f = a*x*x+b*x+c;    %④将方程作为符号表达式f,省略了右边等于0
solve(f)%四种方法输出结果一致
ans =-(b + (b^2 - 4*a*c)^(1/2))/(2*a)-(b - (b^2 - 4*a*c)^(1/2))/(2*a

3、符号矩阵
符号矩阵也是一种符号表达式,所以符号表达式运算都可以在矩阵意义下进行。
注意:这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。
例9:建立符号矩阵并化简。

syms a b x y alp;   %定义符号变量
m = [a^3-b^3 sin(alp)^2+cos(alp)^2;(15*x*y-3*x^2)/(x-5*y) 78]    %建立符号矩阵
simplify(m)   %调用函数对矩阵进行化简%输出结果
m = [                    a^3 - b^3, cos(alp)^2 + sin(alp)^2][ (- 3*x^2 + 15*y*x)/(x - 5*y),                      78]ans = [ a^3 - b^3,  1][      -3*x, 78]

diag( )、inv( )、det()、rank( )、trace( )等都可以直接应用于符号矩阵。

7.1 matlab符号对象(符号对象的建立和四则运算)相关推荐

  1. MATLAB学习之符号运算

    创建符号变量 数值与符号的转换 数值矩阵转换为符号矩阵 符号替换 本文介绍MATLAB中的符号运算: 1. 创建符号变量 符号常量是不含变量的符号表达式,用 sym 命令来创建符号常量. sym('常 ...

  2. Matlab系列之符号运算(上)

    Matlab系列之符号运算 前言 创建符号对象 基本操作 符号变量的基本操作 符号表达式的基本操作 四则运算 多项式的操作 符号表达式化简 符号表达式的替换 反函数求解 复合函数 更多精彩等你发现~ ...

  3. MATLAB基础——设置符号变量sym,syms,symfun,symvar

    在数学运算中,运算的结果如果是一个数值,可以称这类运算为数值运算:如果运算结果为表达式,在MATLAB中称为符号运算,符号计算是对未赋值的符号对象(可以是常数.变量.表达式)进行运算和处理. 这类函数 ...

  4. [MATLAB]曲面与曲面对象(光照+反射)

    本博文源于中南大学<科学计算与MATLAB语言> 曲线对象 曲面对象 光照处理 图形对象的反射特性 曲线对象 建立曲线对象 line函数的调用格式为: 句柄变量=line(x,y,z,属性 ...

  5. Matlab多项式和符号函数简介

    本篇博客是B站教学视频的学习笔记,视频教程地址:https://www.bilibili.com/video/BV1hE411Q7T4,Up主讲的很好,部分内容有删减.部分内容为我自己的理解,由于本人 ...

  6. 第十一章:MATLAB:符号运算(符号与数值,符号矩阵)

    第十一章:MATLAB符号运算 11.1. 符号与数值 11.1.1. 符号与数值间的转换 实例-数值与符号转换 11.1.2. 符号表达式与数值表达式的精度设置 实例-魔方矩阵的数值解 实例-稀疏矩 ...

  7. matlab求线性方程组的符号解,符号代数线性方程组的MATLAB求解.PPT

    符号代数线性方程组的MATLAB求解 建模常见问题MATLAB求解 Content 符号代数线性方程(组)的MATLAB求解 最优化方法的MATLAB实现 一维搜索问题 线性规划 无约束非线性最优化问 ...

  8. matlab程序特殊符号,matlab中怎么输入特殊符号

    matlab中怎么输入特殊符号: word文档中怎么插入心形特殊符号?,缺失:matlab中怎么输入特殊符号12628/11 以下是的一些我们精选的word文档中怎么插入心形特殊符号? word文档中 ...

  9. matlab特殊符号代替,matlab中特殊符号

    matlab中特殊符号: 教你用输入法打出任意特殊符号,缺失:matlab中3248/9 最近老有人问我这个符号怎么打,那个符号怎么打. 我每次回答的都是,你要打的是特殊符号,这种特殊符号不能用输入法 ...

最新文章

  1. 2021年大数据Flink(三十七):​​​​​​​Table与SQL ​​​​​​案例四
  2. Java面试题大汇总,2021年附答案解析
  3. 掌贝获2000万美元B+轮融资,和智投资领投、味千中国和金沙江创投跟投
  4. Javascript中的arguments数组对象
  5. [转]char * 和字符数组
  6. Qt pro文件语法
  7. NHibernate Configuring
  8. finereport9.0破解版|finereport10.0破解并发数|finereport授权注册|FineBI5.0破解lic
  9. 惠普1020打印机查看已打印页数
  10. html页面中添加分页符,在生成的HTML中插入分页符.doc
  11. Spring Data JPA 多条件判空查询
  12. 代数基础 | Kronecker积
  13. 阿里云 DNS 新增云上线路的智能解析功能
  14. Verilog设计流程:综合(一)
  15. Dialer中界面组成、Call对象和log分析
  16. 字典树(Trie树)两种实现方式详解
  17. 星域cdn概念股票_星域CDN获工信部牌照 CDN行业步入规范时代
  18. 乾元通多链路通信设备保障高铁网络稳定
  19. 华擎 FM2A75 PRO4刷Bios历险
  20. 2021-2027全球与中国工业气压调节器市场现状及未来发展趋势

热门文章

  1. EXT.NET高效开发(一)——概述
  2. C# Socket与实现
  3. USB学习5---android usb驱动源代码目录说明
  4. ubuntun_11.04安装
  5. WINCE6.0+S3C2443下WatchDog学习
  6. php url %,php常用的url处理函数集
  7. docker安装redis提示没有日记写入权限_浅析Linux下Redis的攻击面(一)
  8. 烂泥:centos安装及配置DNS服务器
  9. rails.vim环境安装(ubuntu)
  10. Android加载/处理超大图片神器!SubsamplingScaleImageView(subsampling-scale-image-view)【系列1】...