第 9章 MATLAB符号计算

9.1 符号对象

9.2 符号微积分

9.3 级 数

9.4 符号方程求解

9.1 符号对象

9.1.1 建立符号对象

1.建立符号变量和符号常量

MATLAB提供了两个建立符号对象的函数,sym和

syms,两个函数的用法不同。

(1) sym函数

sym函数用来建立单个符号量,一般调用格式为:

符号量名 =sym('符号字符串 ')

该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。

应用 sym函数还可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的运算不同。下面的命令用于比较符号常量与数值常量在代数运算时的差别。

(2) syms函数函数 sym一次只能定义一个符号变量,使用不方便。

MATLAB提供了另一个函数 syms,一次可以定义多个符号变量。 syms函数的一般调用格式为:

syms 符号变量名 1 符号变量名 2 … 符号变量名 n

用这种格式定义符号变量时不要在变量名上加字符串分界符 (‘),变量间用空格而不要用逗号分隔。

2.建立符号表达式含有符号对象的表达式称为符号表达式。建立符号表达式有以下 3种方法:

(1)利用单引号来生成符号表达式。

(2)用 sym函数建立符号表达式。

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

9.1.2 符号表达式运算

1.符号表达式的四则运算符号表达式的加、减、乘、除运算可分别由函数 symadd、

symsub,symmul和 symdiv来实现,幂运算可以由 sympow

来实现。

2.符号表达式的提取分子和分母运算如果符号表达式是一个有理分式或可以展开为有理分式,可利用 numden函数来提取符号表达式中的分子或分母。其一般调用格式为:

[n,d]=numden(s)

该函数提取符号表达式 s的分子和分母,分别将它们存放在 n

与 d中。

3.符号表达式的因式分解与展开

MATLAB提供了符号表达式的因式分解与展开的函数,函数的调用格式为:

factor(s):对符号表达式 s分解因式。

expand(s):对符号表达式 s进行展开。

collect(s):对符号表达式 s合并同类项。

collect(s,v):对符号表达式 s按变量 v合并同类项。

4.符号表达式的化简

MATLAB提供的对符号表达式化简的函数有:

simplify(s):应用函数规则对 s进行化简。

simple(s):调用 MATLAB的其他函数对表达式进行综合化简,

并显示化简过程。

5.符号表达式与数值表达式之间的转换利用函数 sym可以将数值表达式变换成它的符号表达式。

函数 numeric或 eval可以将符号表达式变换成数值表达式。

9.1.3 符号表达式中变量的确定

MATLAB中的符号可以表示符号变量和符号常量。 findsym

可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为:

findsym(s,n)

函数返回符号表达式 s中的 n个符号变量,若没有指定 n,则返回 s中的全部符号变量。

9.1.4 符号矩阵符号矩阵也是一种符号表达式,所以前面介绍的符号表达式运算都可以在矩阵意义下进行。但应注意这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。

由于符号矩阵是一个矩阵,所以符号矩阵还能进行有关矩阵的运算。 MATLAB还有一些专用于符号矩阵的函数,这些函数作用于单个的数据无意义。

例如

transpose(s):返回 s矩阵的转置矩阵。

determ(s):返回 s矩阵的行列式值。

其实,曾介绍过的许多应用于数值矩阵的函数,如 diag,triu,tril,inv,det,rank,eig等,也可直接应用于符号矩阵。

9.2 符号微积分

9.2.1 符号极限

limit函数的调用格式为:

(1) limit(f,x,a):求符号函数 f(x)的极限值。即计算当变量 x趋近于常数 a时,f(x)函数的极限值。

(2) limit(f,a):求符号函数 f(x)的极限值。由于没有指定符号函数 f(x)的自变量,则使用该格式时,符号函数 f(x)的变量为函数 findsym(f)确定的默认自变量,即变量 x趋近于 a。

(3) limit(f):求符号函数 f(x)的极限值。符号函数 f(x)的变量为函数 findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于 0,即 a=0的情况。

(4) limit(f,x,a,'right'):求符号函数 f的极限值。 'right'表示变量 x从右边趋近于 a。

(5) limit(f,x,a,‘left’):求符号函数 f的极限值。‘ left’表示变量

x从左边趋近于 a。

例 9-1 求下列极限。

极限 1:

syms a m x;

f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(x+a);

limit(f,x,a)

ans =

(1/2*a*exp(sin(a))+1/2*a-exp(tan(a))+1)/a

极限 2:

syms x t;

limit((1+2*t/x)^(3*x),x,inf)

ans =

exp(6*t)

极限 3:

syms x;

f=x*(sqrt(x^2+1)-x);

limit(f,x,inf,'left')

ans =

1/2

极限 4:

syms x;

f=(sqrt(x)-sqrt(2)-sqrt(x-2))/sqrt(x*x-4);

limit(f,x,2,'right')

ans =

-1/2

9.2.2 符号导数

diff函数用于对符号表达式求导数。该函数的一般调用格式为:

diff(s):没有指定变量和导数阶数,则系统按 findsym函数指示的默认变量对符号表达式 s求一阶导数。

diff(s,'v'):以 v为自变量,对符号表达式 s求一阶导数。

diff(s,n):按 findsym函数指示的默认变量对符号表达式 s求 n

阶导数,n为正整数。

diff(s,'v',n):以 v为自变量,对符号表达式 s求 n阶导数。

例 9-2 求下列函数的导数。

9.2.3 符号积分符号积分由函数 int来实现。该函数的一般调用格式为:

int(s):没有指定积分变量和积分阶数时,系统按 findsym函数指示的默认变量对被积函数或符号表达式 s求不定积分。

int(s,v):以 v为自变量,对被积函数或符号表达式 s求不定积分。

int(s,v,a,b):求定积分运算。 a,b分别表示定积分的下限和上限。该函数求被积函数在区间 [a,b]上的定积分。 a和 b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷 (inf)。当函数 f关于变量 x在闭区间 [a,b]上可积时,函数返回一个定积分结果。当 a,b中有一个是 inf时,函数返回一个广义积分。当 a,b中有一个符号表达式时,函数返回一个符号函数。

例 9-3 求下列积分。

9.2.4 积分变换常见的积分变换有傅立叶变换、拉普拉斯变换和 Z

变换。

1.傅立叶 (Fourier)变换在 MATLAB中,进行傅立叶变换的函数是:

fourier(f,x,t):求函数 f(x)的傅立叶像函数 F(t)。

ifourier(F,t,x):求傅立叶像函数 F(t)的原函数 f(x)。

例 9-4 求函数 y=的傅立叶变换及其逆变换。

2.拉普拉斯 (Laplace)变换在 MATLAB中,进行拉普拉斯变换的函数是:

laplace(fx,x,t):求函数 f(x)的拉普拉斯像函数 F(t)。

ilaplace(Fw,t,x):求拉普拉斯像函数 F(t)的原函数 f(x)。

例 9-5 计算 y=x3的拉普拉斯变换及其逆变换。

3,Z变换当函数 f(x)呈现为一个离散的数列 f(n)时,对数列 f(n)进行 z变换的 MATLAB函数是:

ztrans(fn,n,z):求 fn的 Z变换像函数 F(z)。

iztrans(Fz,z,n):求 Fz的 z变换原函数 f(n)。

例 9-6 求数列 fn=e-2n的 Z变换及其逆变换。

9.3 级 数

9.3.1 级数符号求和求无穷级数的和需要符号表达式求和函数 symsum,其调用格式为:

symsum(s,v,n,m)

其中 s表示一个级数的通项,是一个符号表达式。 v是求和变量,v省略时使用系统的默认变量。 n和 m是求和的开始项和末项。

例 9-7 求下列级数之和。

9.3.2 函数的泰勒级数

MATLAB提供了 taylor函数将函数展开为幂级数,

其调用格式为:

taylor(f,v,n,a)

该函数将函数 f按变量 v展开为泰勒级数,展开到第 n

项 (即变量 v的 n-1次幂 )为止,n的缺省值为 6。 v的缺省值与 diff函数相同。参数 a指定将函数 f在自变量 v=a处展开,a的缺省值是 0。

例 9-8 求函数在指定点的泰勒级数展开式。

9.4 符号方程求解

9.4.1 符号代数方程求解在 MATLAB中,求解用符号表达式表示的代数方程可由函数 solve实现,其调用格式为:

solve(s):求解符号表达式 s的代数方程,求解变量为默认变量。

solve(s,v):求解符号表达式 s的代数方程,求解变量为 v。

solve(s1,s2,…,sn,v1,v2,…,vn),求解符号表达式 s1,s2,…,sn 组成的代数方程组,求解变量分别 v1,v2,…,vn 。

例 9-9 解下列方程。

9.4.2 符号常微分方程求解在 MATLAB中,用大写字母 D表示导数。例如,Dy表示 y',

D2y表示 y'',Dy(0)=5表示 y'(0)=5。 D3y+D2y+Dy-x+5=0表示微分方程 y'''+y''+y'-x+5=0。符号常微分方程求解可以通过函数 dsolve来实现,其调用格式为:

dsolve(e,c,v)

该函数求解常微分方程 e在初值条件 c下的特解。参数 v描述方程中的自变量,省略时按缺省原则处理,若没有给出初值条件 c,则求方程的通解。

dsolve在求常微分方程组时的调用格式为:

dsolve(e1,e2,…,en,c1,…,cn,v1,…,vn)

该函数求解常微分方程组 e1,…,en 在初值条件 c1,…,cn 下的特解,若不给出初值条件,则求方程组的通解,v1,…,vn 给出求解变量。

例 9-10 求下列微分方程的解。

第9章matlab符号计算答案,第9章 MATLAB符号计算_MATELAB课程设计_ppt_大学课件预览_高等教育资讯网...相关推荐

  1. convs在MATLAB中,matlab2_MATELAB课程设计_ppt_大学课件预览_高等教育资讯网

    第二讲 MATLAB的数值计算 -- matlab 具有出色的数值计算能力,占据世界上数值计算软件的主导地位数值运算的功能创建矩阵矩阵运算多项式运算线性方程组数值统计线性插值函数优化微分方程的数值解一 ...

  2. matlab y2=sin(3t)exp(-t/3);,Matlab工程应用基础_3_3_西安交通大学:Matlab工程应用基础(姜歌东)_ppt_大学课件预览_高等教育资讯网...

    第 3章 矩阵.数组和符号运算 7,符号方程求解 a.线性方程组的符号解法函数命令 linsolve 用来求解线性方程组符号解 . 对方程 A*X=B,linsolve 的调用格式为: X = lin ...

  3. 闽江学院c语言期末试卷,Matlab期末复习08_闽江学院:matlab6.5(周赢武)_ppt_大学课件预览_高等教育资讯网...

    Matlab期末复习 2008.06.04 第 1章 MATLAB语言概述 第 2章 基本语法 第 4章 Matlab的其它函数库 第 6章 Matlab在信号与系统中的应用 第 9章 Matlab工 ...

  4. matlab 有一函数 _写一程序_输入自变量的值_输出函数值.,第2讲 MATLAB入门1_数学建模_ppt_大学课件预览_高等教育资讯网...

    数学建模与数学实验 MATLAB入门数学建模及其基于 MATLAB的实现辽宁工程技术大学理学院应用数学系 MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程 ...

  5. 北京科技大学C语言程序设计,第1章_北京科技大学计算机系:C语言程序设计(李玲)_ppt_大学课件预览_高等教育资讯网...

    第 1章 预备知识北京科技大学 计算机系 C 语言程序设计 2009-7-29 2说明: 本课件的配套教材为: –,C语言程序设计教程> –,C语言程序设计教程习题解答与实验指导> 北京人 ...

  6. matlab系统分析与仿真,第9章 MATLAB环境下的仿真_Matlab系统分析与程序设计_ppt_大学课件预览_高等教育资讯网...

    第 9章 MATLAB环境下的仿真软件 Simulink 9.1 Simulink的基本操作 9.2 Simulink的几类基本模块 9.3 仿真模型参数的设置 9.4 子系统的建立与封装 9.5 在 ...

  7. 西安电子科技大学java答案_第3章 数 组_西安电子科技大学:JAVA语言_ppt_大学课件预览_高等教育资讯网...

    第 3章 数组 第 3章 数 组 3.1 一维数组 3.2 二维数组 第 3章 数组 3.1 一 维 数 组 一维数组是最简单的数组, 在 Java中, 数组是作为 数组类的一个实例来处理的, 故可以 ...

  8. html5触边反弹,第四章课件.PPT_数字电子技术基础(ppt课件)_ppt_大学课件预览_高等教育资讯网...

    第 4章 触发器电路 授课计划 教学内容 教学小结 一.授课计划 1.教学目标 1,熟练掌握基本 RS触发器的工作原理, 逻辑功能, 及钟控 RS触发器, JK触发器, D触发器的逻辑功能, 时间波形 ...

  9. 大学c语言第三章作业,第三章_C语言标准课件_ppt_大学课件预览_高等教育资讯网...

    第三章 C语言 的数据类型. 运算符和表达式第一节 标识符定义,用来标识常量名.变量名.函数名. 数组名.文件名等对象的有效字符序列命名规则: 1)由字母(大小写).数字.下划线 2)第一个 字符必须 ...

最新文章

  1. ccna考试真题及经验介绍
  2. 布朗语料库中不同部分的情态动词频率直方图绘制的代码详细解释
  3. 号称迄今为止最快,.NET6带来了什么?
  4. C#.NET通用权限管理系统组件中用少数几行代码实现记录页面状态
  5. Android自带的抓包工具tcpdump
  6. 博弈论分析题_“博弈论”习题和参考答案与解析
  7. Windows 利用DbgView 查看内核打印日志
  8. springboot写发送邮件报错Field javaMailSender in com.gzh.service.impl.IMailServiceImpl
  9. 几何分布的期望和方差公式推导_机器学习常用的方差、协方差与皮尔逊值
  10. matlab 双均线,一个典型的双均线策略
  11. 《Linux就是这种范儿》读后感
  12. 无为职中计算机专业期中考试高一,无为县襄安高级职业中学
  13. 谷歌浏览器点击收藏夹网址如何弹出新窗口,不在当前窗口
  14. 激活 出现无法访问制定设备,路径或文件。您可能没有合适的权
  15. Qt 图片 等比例显示、放大、缩小、平移图像 显示
  16. Crosstalk高速信号质量测试仪
  17. HTTP请求返回状态码详解
  18. (表白神器)绘制心形曲线
  19. 提取特定经纬度范围内的高程数据
  20. 职场任我行——软件测试工程师

热门文章

  1. idea新建web工程
  2. 录像的视频如何在画面中实时加上时间戳
  3. 安卓案例:利用帧动画动态显示时间
  4. Python案例:两种方法实现词频统计
  5. 三种方式读取项目属性文件
  6. 刚安装玩mysql如何登录不了_解决启用GTID binlog新安装完的MySQL提示无法登录
  7. 和电商有关的词语_电商描写的词语 形容“电”的词语有哪些?
  8. 搭建LNMP基础框架
  9. 【面试篇】Java多线程并发-Java中的CAS机制算法
  10. 如何自学游戏引擎的开发?