当前位置: 首页 > news >正文

Matlab学习03-符号的替换及运算(接上一篇)

在上一篇的学习中,我知道了符号变量的声明👇

 Matlab学习02-matlab中的数据显示格式及符号变量-CSDN博客

接下来开始学习符号运算相关的内容,并学习最为核心的matlab程序设计。之前的学习都是为了程

序设计做铺垫,程序设计又是为了其它的项目需求做铺垫,例如数字信号处理,数字图像处理都要

用到matlab的程序设计,也可以用其它编程语言对数字图像进行处理,后期会去学习使用Java语言

来编写代码并对数字图像进行处理,当前的学习都以matlab为主。 

目录

一,符号替换 

二,常用的符号运算

1,diff函数

 2,int函数

3,simplify

4,solve函数 

1)求解单个方程

2)求解方程组:


 

一,符号替换 

 在matlab中,subs函数(substitute :替代品)可以用于符号变量的替换,该命令适用单个符号矩

阵,符号表达式,符号代数方程和微分方程中的变量替换,该函数的调用方法如下:

  1. subs(f,x_{new}),其中:

    1)f:表示需要被替换的符号表达式或者是符号方程式。

    2)新的符号变量 x_{new} :用来替代符号表达式或符号方程中旧的符号变量 x 。

    如果用具体的数值型符号变量来替代符号变量  x ,就会和符号变量  x  的系数进行运算。

    例如,我有一个符号方程式:f=sin(x)+5*x==0   % 自变量 x需要提前声明为符号变量即syms x

    接着我传入两个参数到sub符号替换函数中:

    subs(f,6)

    f 表示符号方程式f=sin(x)+5*x==0 ;

    6 表示一个数值型的符号变量

    对应的效果如下 ↓ 


    可以看到,数值型的符号变量 6 可以与旧的符号变量 x 前的系数 5(系数也是数值型符号变

    量),进行算数运算:5*x=5*6=30
     
  2. subs(f,x_{old},x_{new})

    其中:x_{old} 表示被替换的符号变量,x_{new} 表示指定的新符号变量。

    相较于只能传入两个参数并且只能替换掉自变量 x 的上一个subs函数而言,这个函数可以指

    定要替换的符号变量,而不仅仅局限于自变量 x 。

    依旧是 f=sin(x)+5*x==0 这个符号方程式,现在我不想替换自变量 x,只想替换自变量 x前的

    系数 5 ,此时,我需要先传入符号方程式 f,接着传入被替换的符号变量 5,最后传入指定的

    新符号变量 6。如下↓

二,常用的符号运算

可以用数字代替符号得到数值,符号运算的种类很多,在这里我先学习常用的符号运算,其它的使

用方法都大同小异,如果再遇到有意思的符号运算,我再补充到文章里面。

1,diff函数

 diff 全写为differential:微分的,差别的。顾名思义就是求微分或差分的符号函数。该函数所需传入的参数如下:

根据matlab给出的函数解释,可以知道diff函数有三种用法,由于一般都习惯于将函数用字母 f 表示,因此,我在这里用函数 f 表示函数 x。其中:

  1. diff(f):对符号函数 f 进行微分运算。一般默认是对自变量 x 进行求导。

    现在我有一个符号表达式,如下:

    现在我使用 diff(f) 函数对符号表达式进行求导操作,结果如下:

    % 口诀:幂函数求导,摘帽减一。
     
  2. diff(f,n):符号函数 f 对指定变量 n 进行微分运算。

    在上一个函数中只能对自变量 x 进行求导,但如果我想对变量 n 进行求导,就需要使用可以

    传入两个参数的diff(f,n) 函数,其中的变量n,可以是符号表达式f=x^n幂函数中的自变

    量x(底数),也可以是变量 n(幂)。如果我想对自变量x求导,可以写成diff(f,x),如下:


    显而易见,效果和diff(f)一样。

    如果我想对自变量n(幂)求导,可以写成diff(f,n),如下:

    % 此时,幂函数变成指数函数,底数x为常量,指数n为自变量。

    % 由指数求导a^{x}=a^{x}lna,可得符号表达式f的求导 f'=(x^{n})'=x^{n}lnx
     
  3. diff(f,n,dim):计算符号函 f对自变量或指定变量 ndim 阶导数, dim 是正整数。

    不管是传入一个参数的diff函数还是传入两个参数的diff函数,都只能进行一阶求导运算,如

    果想要求二阶及以上的导,就需要使用可以传入三个参数的diff函数。最后一个参数dim为求

    导的次数。例如,符号表达式 f=x^n 对自变量 x 求 二阶导:

    % 因为在求导过程中是对自变量x求导,因此,变量n作为系数可以看成是常数直接提出去,

    % 只对x^{n-1}求导,由幂函数求导,可得(x^{n-1})'=(n-1)*x^{n-2},最后再乘上系数n,

    % 二阶导的结果就是n*(n-1)*x^{n-2}

 2,int函数

在matlab中,int函数(全写为:integral 积分的)可见该函数是用于求积分的符号函数。

需要注意的是,求积分有两种:不定积分和定积分。定积分相较于不定积分就是多了上下限并能够

求出具体的积分结果。

和求导数的diff函数类似,求积分的int函数也有三种:

  1. int(f):求符号表达式f关于自变量的不定积分。

    有一个符号表达式 f=x^2,现在使用int函数对其求不定积分:

    求不定积分在高数中有具体的讲解。并且可知,积分和求导是相反的操作,例如

     x^{3} 求导的结果是3*x^2,即 \frac{1}{3}*(x^{3})'=x^{2},因此 x^{2} 的不定积分为:\int x^{2}=\frac{1}{3}*x^{3}+C
    之所以要在求出来的不定积分后面加上常数C,是因为不定积分的“不定”二字已经告诉了我

    们,算出来的结果没有固定的值。由于常数C在求导时,会变成0:

    \frac{1}{3}*x^{3} ,  \frac{1}{3}*x^{3}+1 ,\frac{1}{3}*x^{3}+2\frac{1}{3}*x^{3}+3,... 的导数都是  x^2

    对   x^2 求不定积分,不能确定具体是哪一个表达式,因此需要加上常数C(C=0,1,2,3,4....)。

    又例如,对符号表达式 f=x^n 求不定积分,也是一样的求解:

    可以看到,f=x^{n}的不定积分结果有两种可能:

    1) 当幂 n=-1时,f=1/x,根据过的常用求导等式,可知(logx)'=\frac{1}{x}

    2)   当幂 n 不等于-1时,f就是幂函数,因为求导是摘帽子,所以求积分就是戴帽子并且前面

    乘带的帽子就行。【在数学运算上,一定要加上常数C,不加就是错误答案,没分。】
     
  2. int(f,n):计算符号表达式 f 关于变量 n 的不定积分。

    这个函数可以计算符号表达式 f 关于指定变量 n 的不定积分,而不是默认的自变量x,例

    如,我不想让符号表达式 f=x^n 对自变量x求不定积分,而是对变量n求不定积分,如下:

    此时,幂函数为指数函数,根据指数函数的求导公式,(a^{x})'=a^{x}loga,可得\frac{(a^{x})'}{loga}=a^{x}

    因此,\int a^{x}=\frac{a^{x}}{loga}+C,替换成上式中的变量,即\int x^{n}=\frac{x^{n}}{logx}+C
     
  3. int(f,a,b)int(f,n,a,b):计算符号表达式f关于默认变量或指定变量n从a到b的定积

    分。在求定积分时,结合不定积分的结果再借助牛顿莱布尼兹公式就可以求出常数C。
    其中:

    1)a表示积分的下限,类似于区间的起始位置,a<b。
    2)b表示积分的上限,类似于区间的结束位置,b>a。
    3)n表示符号表达式f对指定的变量n就行求定积分。

    例如,现在我让符号表达式 f  f=x^n 对 变量 n求定积分:

3,simplify

在matlab中,simplify函数用于包含和式,根式,分数,乘方,指数,对数,三角函数等的表达

式的化简。可以将复杂的符号表达式转换为更简单或更易于理解的形式。

例如,符号表达式 f=x^2 + 2*x + 1 可以利用完全平方和公式化简成 f=(x + 1)^2,如下👇


 

simplify函数也可以将分式  f= (x^2 - 1) / (x - 1) 上下约分化简:


f=\frac{x^2-1}{x-1}=\frac{(x+1)(x-1)}{x-1}=x+1
 

也可以根据已知的勾股定理a²+b²=c² 可以直接算出sin(x)^2 + cos(x)^2 的结果,如下👇

需要注意的是,simplify函数虽然并不总是能找到最简单的形式,结果可能依赖于表达式的复杂

性。对于某些复杂的表达式,简化可能需要较长的计算时间。但整体上还是很有用的。

4,solve函数 

在matlab中,ssolve 函数用于求解方程或方程组的解。它可以处理符号方程(使用符号变量)和数

值方程(使用数值变量)。solve 函数的主要作用是找到能使给定方程成立的变量值。

该函数调用方法如下:

可以看到,有关solve函数的使用有很多种,这里就拿其中几个来做例子,剩下的如果感兴趣的话,可以自己去探索。

 

1)求解单个方程

 当求解一个符号方程式或者是数值方程式的自变量x的值时,只需要使用solve(f,x)这个函数即可,其中:

  1. f:要求解的符号方程式或者是数值方程
  2. x:需要返回的指定变量x取值结果

解方程很简单,这里不赘述。 


2)求解方程组:

当一个问题使用一个方程式无法解决问题,而需要列出两个及以上的方程式时,这些方程式就组成了方程组。需要求几个变量,就得列 几个方程。例如,有两个变量x,y未知,这个时候,就需要列出两个同时包含这两个变量的方程,如下,由方程f1和方程f2求解出x和y的取值结果:

可以看到,得到的解在结构体中,如果想要知道求解的x和y结果是多少,就需要将结果赋值给一个

变量,之后通过变量来获取结构体内的x和y的值:


需要注意:
使用solve函数得到的解是以符号变量的形式表示的,而不是具体的数值。这种符号解可以在后续

的计算中继续使用,具有更高的灵活性。

【个人ps:因为是求解符号表达式的解,得到的变量自然也就是符号变量】

 如果需要数值解,可以使用 double 函数将符号解转换为数值形式。

至此,符号变量的使用,符号的替换及符号的运算等相关的内容学习完。

有问题请在评论区留言或者是私信我,回复时间不超过一天。 

接下来就要开始学习matlab相关的程序设计基础语句。

相关文章:

Matlab学习03-符号的替换及运算(接上一篇)

在上一篇的学习中&#xff0c;我知道了符号变量的声明&#x1f447; Matlab学习02-matlab中的数据显示格式及符号变量-CSDN博客 接下来开始学习符号运算相关的内容&#xff0c;并学习最为核心的matlab程序设计。之前的学习都是为了程 序设计做铺垫&#xff0c;程序设计又是为了…...

Windows中API-磁盘管理笔记

硬盘是由一组堆积的盘片组成类似于圆柱体组成&#xff0c;每个盘片的数据都以电磁方式存储在同心圆或轨道中&#xff0c;轨道的最小可寻址单元是扇区&#xff1b;基本磁盘&#xff1a;最常用于windows的存储类型&#xff0c;指的是**包含分区的磁盘。**在基本磁盘上只能创建和删…...

010 操作符详解 上

写代码的实质是在写方法体 —— 刘铁猛 操作符概览 操作符本质 操作符的本质是函数的“简记法” 操作符 简写Add函数 34 等同Add(3,4)操作符不能脱离与它关联的数据类型可以说操作符就是与固定数据类型关联的一套算法的简记法 如下图所示算法的简记法 操作符的优先级 可以使…...

【贪心算法】(第十篇)

目录 加油站&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 单调递增的数字&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 加油站&#xff08;medium&#xff09; 题目解析 1.题目链接&#xff1a;. - 力扣&#xff08;LeetCode&a…...

029.爬虫专用浏览器-抓取跨域#document下的内容

一、iframe下的#document是什么 #document 是一个特殊的 HTML 元素&#xff0c;表示 <iframe> 元素内部的文档对象。当你在 HTML 页面中嵌入一个 <iframe> 元素时&#xff0c;浏览器会创建一个新的文档对象来表示 <iframe> 内部的内容。这 个文档对象就是 #…...

SIP 业务举例之 Call Hold(呼叫保持)

目录 1. Call Hold(呼叫保持)简介 2. 信令流程 呼叫保持 呼叫恢复开始 恢复通话完成 3. 本例 Call Hold 建立了几个 Dialog? 博主wx:yuanlai45_csdn 博主qq:2777137742 想要 深入学习 5GC IMS 等通信知识(加入 51学通信),或者想要 cpp 方向修改简历,模拟面试,学习…...

eks节点的网络策略配置机制解析

参考链接 vpc-cni网络策略最佳实践&#xff0c;https://aws.github.io/aws-eks-best-practices/security/docs/network/#additional-resourcesvpc cni网络策略faq&#xff0c;https://github.com/aws/amazon-vpc-cni-k8s/blob/0703d03dec8afb8f83a7ff0c9d5eb5cc3363026e/docs/…...

【C】用c写贪吃蛇

1.输入正确的账号密码及其用户名&#xff0c;登录成功进入贪吃蛇游戏界面&#xff0c; 2.随机生成蛇头★、食物▲的位置(x,y)&#xff0c;并使用□打印地图 3.使用w s a d按键&#xff0c;完成蛇头的上下左右移动 4.蛇头碰撞到食物后&#xff0c;吃下食物变成蛇身的一部分●…...

qt QLineEdit详解

一、概述 QLineEdit 是 Qt 框架中用于创建单行文本输入框的类。它非常适合用于接收用户输入&#xff0c;例如用户名、密码或其他简单的文本信息。它提供了许多有用的编辑功能&#xff0c;支持多种输入模式和文本限制&#xff0c;并支持撤销、重做、剪切、粘贴以及拖放等功能。…...

DevEco Studio的使用 习题答案<HarmonyOS第一课>

一、判断题 1. 如果代码中涉及到一些网络、数据库、传感器等功能的开发,均可使用预览器进行预览。 正确(True)错误(False) 错误(False)回答正确 2. module.json5文件中的deviceTypes字段中,配置了phone,tablet,2in1等多种设备类型,才能进行多设备预览。 正确(True)…...

鸿蒙网络编程系列36-固定包头可变包体解决TCP粘包问题

1. TCP数据传输粘包简介 在本系列的第6篇文章《鸿蒙网络编程系列6-TCP数据粘包表现及原因分析》中&#xff0c;我们演示了TCP数据粘包的表现&#xff0c;如图所示&#xff1a; 随后解释了粘包背后的可能原因&#xff0c;并给出了解决TCP传输粘包问题的两种思路&#xff0c;第一…...

【华为路由】OSPF多区域配置

网络拓扑 设备接口地址 设备 端口 IP地址 RTA Loopback 0 1.1.1.1/32 G0/0/0 10.1.1.1/24 RTB Loopback 0 2.2.2.2/32 G0/0/0 10.1.1.2/24 G0/0/1 10.1.2.1/24 RTC Loopback 0 3.3.3.3/32 G0/0/0 10.1.2.2/24 G0/0/1 10.1.3.1/24 RTD Loopback 0 4.4.4…...

【C++初阶】一文讲通C++内存管理

文章目录 1. C/C内存分布2. C语言中动态内存管理方式3. C内存管理方式3. 1 new/delete操作内置类型3. 2 new和delete操作自定义类型 4. new与delete的原理4. 1 operator new与operator delete函数4. 2 内置类型4. 3 自定义类型 5. 定位new表达式(placement-new)6. malloc/free和…...

Vue学习笔记(九、简易计算器)

在这个案例中&#xff0c;我们使用v-model分别双向绑定了n1、n2操作数&#xff0c;op操作选项和result计算结果&#xff0c;同时用绑定了等号按钮事件。 由于是双向绑定&#xff0c;当input和select通过外部输入内容时&#xff0c;vm内部的数值也会改变&#xff0c;所以calcula…...

Maven 不同环境灵活构建

需求: 使用 Maven根据不同的构建环境&#xff08;如开发、测试、生产&#xff09;来定义不同的配置&#xff0c;实现灵活的构建管理。 需要Demo项目的可以参考&#xff1a;我的demo项目 一、项目分层 一般的初创项目不会有特别多的配置文件&#xff0c;所以使用 spring.profile…...

第三十篇:TCP连接断开过程,从底层说明白,TCP系列五

上一篇《第二十九篇&#xff1a;图解TCP三次握手&#xff0c;看过不会忘&#xff0c;从底层说清楚&#xff0c;TCP系列四》说了TCP的三次握手&#xff0c;接下来我将讲解TCP四次挥手。 既然有连接就有断开&#xff0c;谈到这里&#xff0c;有的同学可能会想&#xff0c;不就是…...

代码随想录算法训练营第七天| 哈希表理论基础 454.四数相加II 383.赎金信 15.三数之和 18.四数之和

454. 四数相加 II 题目 给定四个包含整数的数组 A, B, C, D&#xff0c;计算有多少个元组 (i, j, k, l) 使得 A[i] B[j] C[k] D[l] 0。 解题思路 先计算数组 A 和 B 的所有组合和&#xff0c;并存入哈希表 map 中&#xff0c;键为组合和&#xff0c;值为该和出现的次数…...

搜维尔科技:Manus新品发布Metagloves Pro专业版,专为高精度需求的客户打造,尤其是人形机器人产业与人机工效研究使用

manus新品发布Metagloves Pro专业版&#xff0c;专为高精度需求的客户打造&#xff0c;尤其是人形机器人产业与人机工效研究使用 搜维尔科技&#xff1a;manus新品发布Metagloves Pro专业版&#xff0c;专为高精度需求的客户打造&#xff0c;尤其是人形机器人产业与人机工效研究…...

Spring Boot实现的动态化酒店住宿管理系统

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理酒店客房管理系统的相关信息成为必然。开发…...

数字IC后端实现Innovus |给各种IP子模块添加port buffer和antenna diode万能脚本

我们之前分享过在hierarchical flow后端实现中为了确保顶层flatten时timing signoff和physical signoff看到的情况和模块级看到的情况一致&#xff0c;我们会在模块io port添加io port buffer&#xff08;主要是timing&#xff0c;antenna一致性&#xff09;。实际上在芯片级我…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...