MATLAB2:符号对象的创建及符号计算

文章目录

  • 一、实验目的
  • 二、实验内容
  • 三、仿真结果
  • 四、实践中遇到的问题及解决方法


一、实验目的

  1.理解符号对象和数值对象之间的差别,以及它们之间的互相转换。
  2.了解符号运算和数值运算的特点、区别和优缺点。
  3.掌握符号对象的基本操作和运算,以及符号运算之间的基本应用。

二、实验内容

  1. 用syms定义具有“限定性”的参数属性:

syms x‘Flag’; %定义符号参数x
Flag表示参数属性,可取以下“限定性”选项:
  A、‘positive’ % 表示那些符号参数取正实数。
  B、‘real’ % 表示那些符号参数限定为实数。
  C、‘unreal’ % 表示那些符号参数为不限定的复数

  2.符号变量定义只能用“空格”隔离

  3.findsym自动认定表达式中的独立自变量的使用方式:

指令说明
findsym(EXPR)确认表达式EXPR中所有“自由”符号变量
findsym(EXPR,N)确认出靠x最近的N个独立自变量;x为首选自由变量,其后排列规则为:与x的ASCII码值之差的绝对值小的字母优先;差值相同时, ASCII码值大的字母优先

注:EXPR可以是符号矩阵,确认是对整个矩阵进行的,不是矩阵元素

  4. findsym的使用规范(新版本中使用symvar函数):

指令说明
findsym所确认的是表达式中的“自由”,“独立”的符号变量。k不自由,z不独立,所以不被该指令认作自由变量。
findsym(EXPR,N)把EXPR表达式中N个最靠近x的自由符号变量确认为“独立自由变量”。注意大小写。大写字母离小写x的距离总是比其他小写字母远

  5.矩阵的简单指令:

指令说明
det(A)矩阵A的行列式
inv(A)矩阵A的逆
eig(A)矩阵A的特征值

  6.符号计算中的算符:
  A、 基本运算符

指令说明
+ - * \ / ^矩阵运算
.* .\ ./ .^数组运算
’ .’共轭转置、非共轭转置

  B、关系运算符
  只有是否等于的概念:== ~=。没有大于、大于等于、小于、小于等于的概念。

  7.符号计算中的基本函数

A、三角函数、双曲函数及反函数:除atan2仅用于数值计算外,其他函数使用方法相同
B、指数、对数函数:没有数值计算中的log2,log10,其它如sqrt,exp,自然对数log使用方法都相同。
C、复数函数:MATLAB没有提供相角angle指令。
D、矩阵代数指令:使用方法几乎完全相同。

  8. 符号对象的识别

A、用class获得每种矩阵的类别
B、用isa判断每种矩阵的类别(若返回1,表示判断正确)
C、利用whos观察内存变量的类别和其它属性

  9. 符号对象的置换操作

指令说明
RES=subs(ES,old,new)用new置换ES中的old后产生RES。
RES=subs(ES,new)用new置换ES中的自由变量后产生RES。

  10. 符号微分

指令说明
dfdvn=diff(f,v,n)f为矩阵时,求导对元素逐个进行,但自变量定义在整个矩阵上;v缺省时,自变量由findsym自动辨认;n缺省为1;在数值计算中,diff是求差分的

  11. 符号序列的求和

指令说明
s=symsum(f,v,a,b)f若为矩阵,求和对每个元素进行,但自变量定义在整个矩阵上;v缺省,自变量由findsym自动辨认;b可以取有限整数或无穷大;a,b缺省,默认求和区间为[0,v-1]

  12. 符号积分

指令说明
intf=int(f,v)f对v的不定积分(不带积分常数)
intf=int(f,v,a,b)f对v的定积分;f若为矩阵,积分对每个元素进行;v缺省,自变量由findsym自动辨认;a,b是积分上下限,可以取任何值或符号表达式

  13. 符号表达式的极限

指令说明
limit(f,x,a)求符号表达式f对x趋近于a的极限
limit(f,‘x’,‘a’,‘left’)求符号表达式f对x趋近于a的左极限
limit(f,‘x’,‘a’,‘right’)求符号表达式f对x趋近于a的右极限

  14.符号变换和符号卷积

指令说明
F=fourier(f,t ,w)求以t为符号变量f的fourier变换F
f=ifourier (F,w,t)求以w为符号变量的F的fourier反变换f

  15.表达式化简

指令说明
simplify(f)对表达式化简,注意不是simple函数

  16.sym()涉及到表达式的一律用str2sym(),例如:

A、str2sym(pi + sqrt(5))
B、f1 = subs(f,sin(x),str2sym(‘log(y)’))

三、仿真结果

1.观察一个数(在此处@记述)在以下四条不同指令作用下的异同:
   a=@
  b=sym(@)
   c=sym(@,‘d’)
   d=sym(‘@’) %这给出完全准确值
  在此,@分别代表具体数值7/3,pi/3,pi*3^(1/3);而异同通过vpa(abs(a-d)),vpa(abs(b-d)),vpa(abs(c-d))等来观察。
答:分析:d=sym(‘@’)对应的是完全准确值,通过上述程序观察a,b,c和d 的误差,可以得到:a,b的输出结果是一致的,但与d对应的完全准确值不完全一样,在a,b取值7/3,pi/3时,a,b,d对应结果是等价的,没有误差;而c=sym(@,‘d’)为数值类数字@的‘十进制浮点’近似表达,默认为32位,与d的误差绝对不是0。

>> a=7/3;b=sym(7/3);c=sym(7/3,'d');d=sym('7/3');
x1=vpa(abs(a-d)), x2=vpa(abs(b-d)),x3=vpa(abs(c-d))
x1 =
0.0
x2 =
0.0
x3 =
0.00000000000000014802973661668756666666667788716
>> a=pi/3;b=sym(pi/3);c=sym(pi/3,'d');d=str2sym('pi/3');
x1=vpa(abs(a-d)),x2=vpa(abs(b-d)),x3=vpa(abs(c-d))
x1 =
0.0
x2 =
0.0
x3 =0.00000000000000011483642827992216762806615818554
>>a=pi*3^(1/3);b=sym(pi*3^(1/3));c=sym(pi*3^(1/3),'d');d=str2sym('pi*3^(1/3)');
x1=vpa(abs(a-d)),x2=vpa(abs(b-d)),x3=vpa(abs(c-d))
x1 =
0.00000000000000026601114166290944374842393221638
x2 =
0.00000000000000026601114166290944374842393221638
x3 =
0.0000000000000002660111416629094726767991785515

2.说出以下三条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”对象?3/7+0.1,sym(3/7+0.1),vpa(sym(3/7+0.1))
答:

>> class(3/7+0.1)
class(sym(3/7+0.1))
class(vpa(sym(3/7+0.1)))
ans ='double'
ans ='sym'
ans =
'sym'

故3/7+0.1是“双精度”对象,而sym(3/7+0.1),vpa(sym(3/7+0.1)) 是“符号”对象。

3.在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是独立自由变量?sym(‘sin(wt)’),sym(‘aexp(-X)’),sym(‘zexp(jtheta)’)。
答:在MATLAB中运行指令(-8)(1/3)后,不会得到-2,结果是1.0000 + 1.7321i。它的全部方根有3个,分别为1.0000 + 1.7321i,-2.0000 + 0.0000i,1.0000 - 1.7321i。计算(-8)(1/3)全部方根的M脚本文件为:

>> symvar(str2sym('sin(w*t)'))
symvar(str2sym('a*exp(-X)'))
symvar(str2sym('z*exp(j*theta)'))ans =[ t, w]
ans =[ X, a]
ans =[ theta, z]

4.计算二重积分int(int(x2+y2,y,1,x^2),x,1,2)。
答:

>> syms x y;
>> int(int(x^2+y^2,y,1,x^2),x,1,2)
ans =
1006/105

四、实践中遇到的问题及解决方法

  1.问题:在MATLAB中输入sym(‘pi/3’),findsym(sym(‘sin(wt)’))等,总是不能运行
  解决方法:新版本的MATLAB中:
  a、sym()涉及到表达式的一律用str2sym()
  b、取消findsym函数,建议使用symvar函数。故问题中涉及的表达式应该为:str2sym()str2sym(‘pi/3’),symvar(str2sym(‘sin(w*t)’))
  2.问题:分不清数据类型是“双精度”对象,还是“符号”对象?
  解决方法:二者不同点在于:
  a、精度不同:双精度对象大约是16位有效数字,而符号对象是无误差的。
  b、能够进行的运算不同:尽管二者可以调用的部分数学函数名字相同,但真正的函数其实是不一样的。双精度数可以进行比较大小等关系运算,符号对象不能(较新的版本也可以,但结果一般是表达式而非逻辑值)。符号对象里面可以包括未知数,可以进行微积分等各种公式推导,双精度对象不能。
  c、占用内存和运算速度不同:符号对象占用的存储空间比双精度数据大得多,一个双精度数一般是8字节,而一个符号量至少是100多个字节。运算速度方面双精度数据也快得多。
  3.问题:不知道如何定义变量x为正实数?
  解决方法:在syms定义时,加上具有“限定性”的参数属性。该题可以定义为syms(x,’ positive’)
  4.问题:不会求某个点的左右极限
  解决方法:熟记求左右极限的公式

a、limit(f,'x','a','left')	 %求符号表达式f对x趋近于a的左极限
b、limit(f,'x','a','right')	 %求符号表达式f对x趋近于a的右极限

  其中,需要注意与求某点极限的不同:求左右极限需要将自变量以及该点用单引号‘’括起来
  5.问题:不知道如何求绝对值?
  解决方法:一开始,我认为abs()只有求解复数的模的功能,其实不然,它还可以用来求解绝对值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【随笔】Git -- 基本概念和使用方式(五)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

GIS、CAD数据为基础进行城市排水系统水力建模方法

佳文推荐 城市内涝水文水动力模型介绍 在城市排水防涝规划过程中,水文水动力耦合模型已经成为一种不可或缺的分析工具。在模型建立、城市内涝风险评估、排水系统性能诊断以及海绵城市规划等方面,内涝耦合模型提供了相应的模拟及分析工具: …

【Rust】——提取函数消除重复代码和泛型

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

ISBN信息查询api接口

基本说明: 接口地址:http://data.isbn.work/openApi/getInfoByIsbn?isbn{isbn}&appKey{appkey}返回格式:json请求方式:get请求示例:http://data.isbn.work/openApi/getInfoByIsbn?isbn9787513159074&appKey…

前端请求的有几种方法

vue前端请求api的有几种方法 使用 XMLHttpRequest (原生方式):使用 Fetch API:使用 Axios:使用 Vue Resource:使用其他第三方库:Vue 自身配合生命周期钩子: unfetch插件和 fetch有什么区别?vue2…

C语言:编译与链接

目录 前言1. 翻译环境与运行环境2.翻译环境:预编译编译汇编链接3. 运行环境 前言 我们写一个程序,例如test.c或是test.h这些源文件,头文件,事实上这些代码都是文本文件,但是计算机能够看得懂,并且直接执行…

【概率基础】生成式模型与判别式模型最大的区别是什么?两者可以互相转化吗?

1. 生成式模型与判别式模型最大的区别 生成式模型与判别式模型最大的区别在于它们对数据的建模方式和目标。 建模方式: 生成式模型(Generative models)尝试学习输入数据和输出标签的联合概率分布 P ( X , Y ) P(X, Y) P(X,Y)。它关注于如何根…

React常见跳转方式汇总

在React中&#xff0c;路由跳转通常是通过使用react-router-dom库实现的&#xff0c;它是React的一个第三方库&#xff0c;专门用于处理在React应用程序中的路由。以下是如何在不同的情况下使用react-router-dom进行路由跳转&#xff1a; 使用<Link>或<NavLink>组…

电路笔记 :灯光画 元器件焊接+连锡处理

https://oshwhub.com/qazwsx1987/dengguanghua_0#P3 基础工具 常用的电路焊接工具&#xff1a; 工具描述电烙铁我买了一个便携电烙铁&#xff0c;但是烙铁头温度太低&#xff0c;焊锡总是粘在烙铁头上&#xff08;因为电量不足&#xff09;, 打火机秒变电烙铁焊台用于支撑工…

3分钟教你弄懂【01背包问题】

背包问题 介绍 将有限物品按找最大价值装进有限体积的背包中去 核心步骤 1.确定状态表示 2.确定边界和遍历顺序 3.找到状态转移方程 先上 Coding #include <iostream> using namespace std;const int N 300; int itemSize[N]; //每件物品的大小&#xff08;体积…

《仙剑7》登陆Xbox主机平台年末大作空窗期

首发一年后&#xff0c;《仙剑奇侠传7》终于登陆Xbox主机平台&#xff0c;而这也恰逢Xbox平台年末大作的窗口期。 随着年底大作的稀缺&#xff0c;以及海外3A RPG《星空》的延期&#xff0c;2022年底的这段时间给Xbox玩家体验《刀剑7》留下了一段空白。 可以说是因祸得福。 《仙…

天星数科以金融数字化转型为核心,提升服务实体经济质效

数字化转型是金融行业把握新一轮科技革命和产业变革新机遇的选择。去年召开的中央金融工作会议&#xff0c;将数字金融作为金融五篇文章之一&#xff0c;要求金融机构加快数字化转型&#xff0c;提高金融服务便利性和竞争力。天星数科全面贯彻新发展理念&#xff0c;以金融数字…

详解Python内建函数map()和reduce()

Python内建了map()和reduce()函数。 我们先看map。map()函数接收两个参数&#xff0c;一个是函数&#xff0c;一个是Iterable&#xff0c;map将传入的函数依次作用到序列的每个元素&#xff0c;并把结果作为新的Iterator返回。 现在&#xff0c;我们用Python代码实现&#xf…

【C语言】结构体详解

文章目录 1、前言2、结构体变量的创建和初始3、结构体的特殊声明3、结构体的自引用5、结构体的内存对齐5.1 对齐规则5.2 为什么存在内存对齐?5.3 修改对齐数 6、结构体实现位段6.1 什么是位段6.2 位段的内存分配6.3 位段的跨平台问题6.4 位段的应用6.5 位段使用的注意事项 7、…

春耕农业气象环境监测站来帮忙

春耕春种&#xff0c;是大地苏醒的序曲&#xff0c;是生机盎然的交响乐章。在这播种希望、耕耘未来的美好时节&#xff0c;{鸣乔电子科技}农业气象环境监测站犹如一位贴心的助手&#xff0c;为农业生产保驾护航。 随着科技的进步&#xff0c;农业气象环境监测站不再是简单的温…

前端必会的一些基础

1、如何把obj对象 添加到arr数组对象内 2、手机号、邮箱、隐藏用户手机号中间四位正则 3、两个数组 数组a未全部人员 数组b为已选中人员 默认选中 4、数组去重、 5、localStorage 存取 数组 方法 6、数据filter过滤 7、请求接口时header 请求格式不对 需要怎么转换&#xf…

电脑桌面便签软件,好用的电脑桌面便签工具

在数字化时代&#xff0c;我们的工作效率在很大程度上依赖于所选工具的优劣。优秀的工具能助力我们事半功倍&#xff0c;而低效的工具则可能导致我们陷入冗杂操作&#xff0c;白白耗费大量时间。在此&#xff0c;我要向大家推荐一款极为出色的电脑桌面便签软件--好用便签。 好…

java.lang.RuntimeException: java.lang.IllegalArgumentException

填上红框内容&#xff0c;亲测可行 报错如下&#xff1a; java: java.lang.IllegalArgumentException java.lang.RuntimeException: java.lang.IllegalArgumentExceptionat com.sun.tools.javac.main.Main.compile(Main.java:553)at com.sun.tools.javac.api.JavacTaskImpl.do…

【EPLAN】授权-MAX100.17问题解决

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决EPLAN 客户端授权连接时出现-MAX100.17 报错问题&#xff1b; 2、 问题场景 用于解决在EPLAN 客户端授权连接时&#xff0c;出现-MAX100.17 报错&#xff1a;无法建立与EPLAN Client Service[MAX 100.17] 的连…

【MATLAB源码-第9期】基于matlab的DQPSK的误码率BER和误符号率SER仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 DQPSK信号的解调与2DPSK信号的解调类似&#xff0c;也有两种方法&#xff0c;分别是极性比较法和相位比较法 极性比较法。其原理方框图如下图所示。由于DQPSK信号可以看做是两路2DPSK信号的合成&#xff0c;解 调时也可以分别…