MATLAB R2018b学习笔记(14)

系列文章目录

第1章 MATLAB R2018b环境
第2章 MATLAB 数值计算
第3章 MATLAB符号计算
第4章 MATLAB计算的可视化和GUI设计
第5章 MATLAB程序设计
第6章 线性控制系统分析与设计
第7章 Simulink仿真环境
第8章 MATLAB高级应用



第三章、MATLAB符号计算


前言


14、符号表达式的代数运算

14.1符号表达式的代数运算

由于MATLAB采用了重载技术,使得符号表达式的运算符和基本函数都与数值计算中的几乎完全相同,因此符号运算的编程很方便。
1.符号运算中的运算符
符号运算中的运算符有以下2种。
(1)基本运算符。
①运算符“+”、“-”、“”、“\”、“/”、“^”分别实现符号矩阵的加、减、乘、左除、右除、求幂运算。
②运算符“.
”、“./”、“.\”、“.^”分别实现符号数组的乘、左除、右除、求幂,即数组间元素与元素的运算。
③运算符“ ’ ”、“.’ ”分别实现符号矩阵的共辄转置、非共辄转置。
(2)关系运算符。
①在符号对象的比较中,没有“大于”、“大于等于”、“小于”、“小于等于”的概念,只有是否“等于”的概念。
②运算符“==”、“~=”分别对运算符两边的符号对象进行“相等”、“不等”的比较。当为“真”时,比较结果用1表示;当为“假”时,比较结果则用0表示。
2.函数运算
函数运算有以下几种:
(1)三角函数和双曲函数。
三角函数包括sin、cos、tan;双曲函数包括sinh、cosh、tanh;三角反函数除了atan2函数仅能用于数值计算外,其余 asin、acos、atan函数在符号运算中与数值计算的使用方法相同。
(2)指数和对数函数。
在符号计算中,指数函数 sqrt、exp、expm 的使用方法与数值计算的使用方法完全相同;对数函数在符号计算中只有自然对数 log(表示 In),而没有数值计算中的log2和 log10。
(3)复数函数。
在符号计算中,复数的共辄 conj、求实部real、求虚部 imag 和求模abs 函数与数值计算中的使用方法相同。但注意,在符号计算中,MATLAB没有提供求相角的命令。
(4)矩阵代数命令。
在符号计算中,MATLAB提供的常用矩阵代数命令有diag,triu、tril、inv、det、rank、poly、expm和 eig 等,它们的用法几乎与数值计算中的情况完全一样。
在这里插入图片描述

14.2符号数值任意精度控制和运算

1.Symbolic Math Toolbox中的算术运算方式
在 Symbolic Math Toolbox中有3种不同的算术运算。
(1)数值型:MATLAB的浮点运算。
(2)有理数型:精确符号运算。
(3) VPA 型:任意精度运算。
2.任意精度控制
任意精度的VPA型运算可以使用digits和 vpa命令来实现。
语法:digits(n) %设定默认的精度
说明:n为所期望的有效位数。digits 函数可以通过改变默认的有效位数来改变精度,随后,每次进行Maple 函数计算时都以新精度为准。当有效位数增加时,计算时间和占用的内存也增加。digits命令用来显示默认的有效位数,默认为32位。
语法:S=vpa(s,n) %将s表示为n位有效位数的符号对象
说明:s可以是数值对象或符号对象,但计算的结果S一定是符号对象;当参数n省略时则以给定的digits指定精度。vpa命令只对指定的符号对象s按新精度进行计算,并以同样的精度显示计算结果,但并不改变全局的digits参数。
在这里插入图片描述
3.Symbolic Math Toolbox中的3种运算方式的比较
在这里插入图片描述程序分析:
(1)3种运算方式中数值型运算的速度最快。
(2)有理数型符号运算的计算时间最长和占用内存最大,产生的结果非常准确。
(3)VPA型的任意精度符号运算比较灵活,可以设置任意有效精度,当保留的有效位数增加时,每次运算的时间和使用的内存也会增加。
(4)数值型变量al结果显示的有效位数并不是存储的有效位数,在本书第1章中曾介绍显示的有效位数由“format”命令控制,

14.3符号对象与数值对象的转换

在前面介绍了Symbolic Math Toolbox有3种不同的算术运算:数值型、有理数型和VPA型。MATLAB提供了一系列的转换命令可以实现不同类型对象的转换。
1.将数值对象转换为符号对象
前面已经介绍了sym命令可以把数值型对象转换成为有理数型符号对象,vpa命令可以将数值型对象转换为任意精度的VPA型符号对象。
2.将符号对象转换为数值对象
使用double函数可以将有理数型和 VPA型符号对象转换成为数值对象。
语法:N=double(S) %将符号变量S转换为数值变量N
在这里插入图片描述另外,也可以使用执行字符串命令eval,直接得出符号对象的数值结果。
在这里插入图片描述


总结

本次学习内容:符号表达式的代数运算;符号数值任意精度控制;符号对象与数值对象的转换。

文章内容来自MATLAB实用教程/郑阿奇主编,ISBN 978-7-121-29138-8。若有侵权行为,请联系我自行删除。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力努力再努力@李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值