MATLAB使用速成 第六章(符号计算)

ops/2024/9/22 16:06:58/

一、符号运算介绍

1、符号运算的特点

(1)符号运算以推理方式进行,不受计算误差累积所带来的困扰。

(2)符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时)。

(3)符号计算指令的调用比较简单,与教科书上的公式相近。

(4)符号计算所需的运行时间相对较长。

2、MATLAB中的符号运算

(1)MATLAB的符号数学工具箱可以完成几乎所有得符号运算功能,如符号表达式的运算、符号矩阵的运算、符号微积分、符号作图、符号代数方程求解、符号微分方程求解等,此外,该工具箱还支持可变精度运算,即支持以指定的精度返回结果。

(2)符号运算举例:

①求一元二次方程ax^{2} + bx + c = 0的根:

②求函数f(x) = (cos x)^{2}的一次导数:

③计算f(x) = x^{2}在区间[a, b]上的定积分:

二、符号对象与基本符号运算

1、符号对象与符号表达式

(1)在进行符号运算时,必须先定义基本的符号对象,符号对象可以是符号变量、符号表达式等,其中符号表达式是含有符号对象的表达式,符号矩阵/数组是元素为符号表达式的矩阵/数组。

(2)符号对象使用sym、syms进行定义/声明。

①sym用来建立单个符号对象,一般调用格式为“<符号变量> = sym(x)”,参数x可以是一个数或数值矩阵,也可以是字符串。

②syms用来声明多个符号变量,一般调用格式为“syms <符号变量1> <符号变量2> ... <符号变量n>”。

(3)建立符号表达式通常有以下2种方法:

①使用已经定义的符号变量组成符号表达式。

②用sym函数直接建立符号表达式。

(4)符号矩阵(包括矢量):

①符号矩阵可使用sym函数直接生成,也可将数值矩阵转化成符号矩阵。

②符号矩阵中元素的引用和修改操作与数值矩阵相似,这里不再赘述。

2、基本符号运算

(1)MATLAB符号运算采用的运算符和基本函数,在形状、名称和使用上都与数值计算中的运算符和基本函数完全相同。

(2)基本运算符:

(3)基本数学函数:三角函数与反三角函数、指数函数、对数函数等。

三、symvar、subs和vpa

1、symvar

(1)语句“symvar(s)”的作用是按字母顺序列出符号表达式s中的所有符号变量。

(2)语句“symvar(s, N)”的作用是列出符号表达式s中离x最近的N个符号变量(这个距离指的是两个符号变量对应的ASCII码的差距),若有两个符号变量与x的距离相等,则ASCII码大者优先。

2、subs

        语句“subs(s,x,a)”的作用是用a替换符号表达式s中的符号变量x,这里的a可以是数值表达式或符号表达式(符号变量若没有声明则需要加上单引号)。

3、vpa

        语句“vpa(s,n)”的作用是计算表达式s的值,保留n位有效数字,返回值是符号对象。

四、常见的符号计算

1、因式分解

(1)使用语句“factor(f)”可对符号表达式f进行因式分解。

(2)factor实际上也可用于正整数的分解,但对大整数进行因式分解前需要将其转化成符号常量,否则会报错。

2、函数展开

        使用语句“expand(f)”可将符号表达式对应的函数展开。

3、合并同类项

(1)使用语句“collect(f,v)”可对符号表达式f按指定变量v进行合并。

(2)使用语句“collect(f)”可对符号表达式f按默认变量进行合并,此时等效于使用语句“collect(f,1)”。

4、函数简化

(1)使用语句“simplify(f)”可对符号表达式f对应的函数进行化简。

(2)使用语句“y=simple(f)”也可对符号表达式对应的函数进行化简,不过它会对f尝试多种不同的方法(包括simplify)进行简化,以寻求其最简短形式。

(3)使用语句“[N,D]=numden(f)”可对符号表达式f对应的函数进行通分,分子存放在N中,分母存放在D中。

(4)使用语句“horner(f)”可将符号表达式f对应的函数转化为horner多项式。

5、计算极限

        极限的计算可使用命令limit,如下所示,其中f为符号表达式,x为符号变量。

6、计算导数

        导数的计算可使用命令diff,如下所示,其中f为符号表达式,v为符号变量。

7、计算积分

        积分的计算可使用命令int,如下所示,其中f为符号表达式,v为符号变量。

8、级数求和

        级数的计算可使用命令symsum,如下所示,其中f为符号表达式,v为符号变量,另外b可以取Inf(无穷大),这样就可以计算无穷级数。

9、反函数

        反函数的计算可使用命令symsum,如下所示,其中f为符号表达式,v为符号变量。

10、代数方程求解

(1)solve:

①语句“solve(f,v)”可对方程f = 0以v为求解变量进行求解,如果省略v则是对默认变量进行求解。

②solve也可以用来解方程组,具体语句为“solve(f1,f2, ...,fn, v1,v2, ...,vn)”,其中f为方程组中各方程对应的符号表达式,v为需要求解的变量。

(2)dsolve:

①dsolve可用于求解微分方程,具体语句为“dsolve('eq1','eq2', ... ,'cond1','cond2', ... ,'v')”,其中y为输出的解,eq1、eq2、... 为微分方程,cond1、cond2、... 为初值条件(如果省略初值条件,则表示求通解),v为自变量(如果省略自变量,则默认自变量为t)。

②微分方程中用D表示对自变量的导数,如Dy表示y对自变量的一阶导数,D2y表示y对自变量的二阶导数。

③若dsolve找不到解析解,则返回其积分形式。只有很少一部分微分方程(组)能求出解析解,大部分微分方程(组)只能利用数值方法求数值解。

④dsolve的输出个数只能为一个或与方程个数相等,如果所给的输出个数与方程个数相同,则方程组的解按词典顺序输出,如果只给一个输出,则输出的是一个包含解的结构类型的数据。


http://www.ppmy.cn/ops/15194.html

相关文章

无法连接到MongoDB Atlas 的Cloud Database

打开Mongodb网页: 选择允许任何地址连接 连接成功

探索长短期记忆网络(LSTM)在AI去衣技术中的应用

引言 随着人工智能技术的飞速发展&#xff0c;越来越多的领域开始尝试利用深度学习技术解决复杂问题。其中&#xff0c;图像处理和计算机视觉领域更是取得了显著的进展。近年来&#xff0c;AI去衣技术作为一种具有争议性的应用场景&#xff0c;引起了广大研究者和技术爱好者的…

网络协议安全:OSI七层模型分层及作用,数据封装与解封过程,数据传输过程。

「作者简介」&#xff1a;2022年北京冬奥会中国代表队&#xff0c;CSDN Top100&#xff0c;学习更多干货&#xff0c;请关注专栏《网络安全自学教程》 这一章节我们需要知道OSI分哪七层&#xff0c;每层的作用&#xff0c;知道数据在七层模型中是怎样传输的&#xff0c;封包和解…

谷歌开发者账号关联被封?解封申诉指南来了!

相信大部分在谷歌上架应用的开发者&#xff0c;已经被谷歌封号封麻了。且不少开发者普遍认为&#xff0c;一旦开发者账号被封禁&#xff0c;想要成功申诉回来的难度极大。 特别是那些因为涉及“高风险”滥用模式行为关联被封的账号&#xff0c;更是不可能申诉成功。但事实上&am…

考研日常记录(upd 24.4.24)

由于实在太无聊了 &#xff0c; 所以记录以下考研备考日常 &#xff0c; 增加一点成就感 &#xff0c; 获得一点前进动力。 文章目录 2024.4.18 周四课程情况&#xff1a;时间规划&#xff1a; 2024.4.19 周五课程情况&#xff1a;时间规划&#xff1a; 2024.4.20 周六2024.4.2…

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第八套

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第八套 部分题目分享&#xff0c;完整版带答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&#xff09;&#xff08;共十套&#xff09;获取&#xff08;WX:didadidadidida313&#xff0c…

SEGGER Embedded Studio IDE移植FreeRTOS

SEGGER Embedded Studio IDE移植FreeRTOS 一、简介二、技术路线2.1 获取FreeRTOS源码2.2 将必要的文件复制到工程中2.2.1 移植C文件2.2.2 移植portable文件2.2.3 移植头文件 2.3 创建FreeRTOSConfig.h并进行配置2.3.1 处理中断优先级2.3.2 configASSERT( x )的处理2.3.3 关于系…

探索数学语言模型的前沿进展——人工智能在数学教育和研究中的应用

数学一直被认为是科学的基石&#xff0c;对于推动技术进步和解决现实世界问题具有重要意义。然而&#xff0c;传统的数学问题解决方式正面临着数字化转型的挑战。MLMs的出现&#xff0c;预示着数学学习和研究方式的一次革命。 MLMs&#xff0c;包括预训练语言模型&#xff08;…