MATLAB实用教程(第2版)[郑阿奇主编][电子教案]

上传人:飞*** 文档编号:51268463 上传时间:2018-08-13 格式:PPT 页数:35 大小:556KB
返回 下载 相关 举报
MATLAB实用教程(第2版)[郑阿奇主编][电子教案]_第1页
第1页 / 共35页
MATLAB实用教程(第2版)[郑阿奇主编][电子教案]_第2页
第2页 / 共35页
MATLAB实用教程(第2版)[郑阿奇主编][电子教案]_第3页
第3页 / 共35页
MATLAB实用教程(第2版)[郑阿奇主编][电子教案]_第4页
第4页 / 共35页
MATLAB实用教程(第2版)[郑阿奇主编][电子教案]_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《MATLAB实用教程(第2版)[郑阿奇主编][电子教案]》由会员分享,可在线阅读,更多相关《MATLAB实用教程(第2版)[郑阿奇主编][电子教案](35页珍藏版)》请在金锄头文库上搜索。

1、MATLAB 实用教程第3章 MATLAB符号计算 Using Symbolic Math Toolbox3.1 符号表达式的建立 3.2符号表达式的代数运算 3.3符号表达式的操作和转换 3.4 符号极限、微积分和级数求和 3.5 符号积分变换 3.6符号方程的求解 MATLAB 实用教程MATLAB具有符号数学工具箱(Symbolic Math Toolbox) 。 符号计算是可以对未赋值的符号对象(可以是 常数、变量、表达式)进行运算和处理。 与数值运算的区别: 数值运算中必须先对变量赋值,然后才能参 与运算。 符号运算无须事先对独立变量赋值,运算结 果以标准的符号形式表达。MATLAB

2、 实用教程符号运算的功能符号线性代数(linear algebra) 因式分解、展开和简化(simplification and substitution) 符号代数方程求解(solving equations) 符号微积分(Calculus)符号微分方程MATLAB 实用教程3.1 符号表达式的建立3.1.1 创建符号常量符号常量是不含变量的符号表达式。 sym(常量) %创建符号常量 sym(常量,参数) %按某种格式转换为符号常量 说明:参数可以选择为d、f、e或r 四种 格式,也可省略。 EX: a=sym(sin(2) a=sym(sin(2),r)MATLAB 实用教程3.1.2

3、创建符号变量和表达式(Creating Symbolic Variables and Expression)1. 使用sym命令创建符号变量和表达式 sym(变量,参数) %把变量定义为符号对 象2.使用syms命令创建符号变量和符号表达式 syms(arg1, arg2, ,参 数) syms arg1 arg2 ,参数 MATLAB 实用教程例如: f1=sym(a*x2+b*x+c) %创建表达式 syms a b c x %创建变量 f2=a*x2+b*x+c %创建表达式 syms(a,b,c,x) f3=a*x2+b*x+c 符号表达式()中的参数一定要用 单引 号括起来。MATL

4、AB 实用教程3.1.3 符号矩阵 例如,使用sym命令创建的符号矩阵: A=sym(a,b;c,d) 例如,使用syms命令创建相同的符号矩阵: syms a b c d A=a b;c d比较符号矩阵与字符串矩阵 : B=a,b;c,d %创建字符串矩阵 C=a,b;c,d %创建数值矩阵 ? Undefined function or variable a.MATLAB 实用教程3.2符号表达式的代数运算 3.2.1符号表达式的代数运算 由于MATLAB采用了重载技术,使得符号表达 式的运算符和基本函数都与数值计算中的几乎 完全相同 。 例如: A+2 A. det(A) A2 例如:

5、f=sym(2*x2+3*x+4) g=sym(5*x+6) f+g f*gMATLAB 实用教程1. 符号运算中的运算符 基本运算符 p运算符“”,“”,“*”,“”,“/”,“”分别实现 符号矩阵的加、减、乘、左除、右除、求幂运算。 p运算符“.*”,“./”,“.”,“.”分别实现符号数组的 乘、除、求幂,即数组间元素与元素的运算。 p运算符“”,“.”分别实现符号矩阵的共轭转置、非 共轭转置。 (2)关系运算符 运算符“= =”、“=”分别对运算符两边的符号对象 进行“相等”、“不等”的比较。 MATLAB 实用教程2. 函数运算 三角函数和双曲函数 (2) 指数和对数函数 (3) 复

6、数函数 (4) 矩阵代数命令MATLAB 实用教程3.2.2 符号数值任意精度控制和运算在Symbolic Math Toolbox中有三种不同的算术运 算: 数值型:MATLAB的浮点运算。 有理数型:Maple的精确符号运算。 VPA型:Maple的任意精度运算。任意精度的VPA型运算可以使用digits和vpa命令来 实现。 digits(n)%设定默认的精度 S=vpa(s,n) %将s表示为n位有效位数的符号对象MATLAB 实用教程3.2.3 符号对象与数值对象的转换将数值矩阵转化为符号矩阵函数调用格式:sym(A) EX: A=1/3,2.5;1/0.7,2/5 sym(A) 将

7、符号矩阵转化为数值矩阵 函数调用格式: numeric(A) EX: a=sym(2/3) b=numeric(a)MATLAB 实用教程3.3符号表达式的操作和转换 3.3.1符号表达式中自由变量的确定符号表达式“f=ax2+bx+c” 中只有一个变量是独立变量: 小写字母i和j不能作为自由变量。 符号表达式中如果有多个符号变量,则按照以下顺序选择自 由变量:首先选择x作为自由变量;如果没有x,则选择在字母 顺序中最接近x的字符变量;如果与x相同距离,则在x后面的优 先。 大写字母比所有的小写字母都靠后。 也可以用findsym函数来自动确定。 自由变量的确定原则(The Default S

8、ymbolic Variables) MATLAB 实用教程3.3.2符号表达式的化简 (Simplificate)同一个多项式的符号表达式可以表示成三种 形式: 多项式形式的表达方式:f(x)=x3+6x2+11x-6 因式形式表达方式:f(x)=(x-1)(x-2)(x-3) 嵌套形式的表达方式:f(x)=x(x(x-6)+11)-6 pretty:给出排版形式的输出结果 。 collect:将表达式写成多项式形式.3 2x - 6 x + 11 x - 6x3-6*x2+11*x-6MATLAB 实用教程horner:将多项式形式写成嵌套形式factor:将表达式写成因式形式expand

9、:将表达式写成多项式形式 simplify:对表达式进行化简 例如: k=sym(cos(x)2-sin(x)2)simplify(k) simple:寻求表达式的多种简化形式,使之包含 最少数目的字符-6+(11+(6+x)*x)*x2*cos(x)2-1(x-1)*(x-2)*(x-3)MATLAB 实用教程3.3.3 符号表达式的替换(Substitutions) subs函数:对符号表达式中符号变量的替换。 subs(s)%用给定值替换符号表达式s中的所有变量 subs(s,new)%用new替换符号表达式s中的自由变量 subs(s,old,new) %用new替换符号表达式s中的o

10、ld变量例: f=sym(x3-6*x2+11*x-6) x=5 subs(f) subs(f,5) subs(f,x,5)可以用来计算多项式的值,以及化简。MATLAB 实用教程3.3.4 求反函数和复合函数1. 求反函数 对于函数f(x),存在另一个函数g(.)使得g(f(x) x成立,则函数g(.)称为函数f(x)的反函数。 g=finverse(f,v) %对指定自变量v的函数f(v)求反函数2. 求复合函数 运用函数compose可以求符号函数f(x)和g(y)的复 合函数。 compose(f,g,z)%求f(x)和g(y)的复合函数f(g(z)MATLAB 实用教程3.3.5 符

11、号表达式的转换 1. 符号表达式与多项式的转换 构成多项式的符号表达式f(x)可以与多项式系数构 成的行向量进行相互转换,MATLAB提供了函数 sym2poly和poly2sym实现相互转换。2. 提取分子和分母 如果符号表达式是一个有理分式(两个多项式之比) ,可以利用numden函数来提取分子或分母,还可以进 行通分。 n,d=numden(f)MATLAB 实用教程EX:提取分子和分母系数。 f=sym(1+2*s)/(s2+2*s+1) pretty(f)1 + 2 s-2s + 2 s + 1 n,d=numden(f) n1=sym2poly(n) d1=sym2poly(d)M

12、ATLAB 实用教程3.4 符号极限、微积分和级数求和 3.4.1符号极限(Limits)【例3.14】分别求1/x在0处从两边趋近、从左边趋 近和从右边趋近的三个极限值。 f=sym(1/x) limit(f) %对x求趋近于0的极限 limit(f,x,0) %对x求趋近于0的极限 limit(f,x,0,left) %左趋近于0 limit(f,x,0,right) %右趋近于0MATLAB 实用教程3.4.2 符号微分 (Differentiation)函数diff是用来求符号表达式的微分。diff(f)%求f对自由变量的一阶微分 diff(f,t)%求f对符号变量t的一阶微分 dif

13、f(f,n)%求f对自由变量的n阶微分 diff(f,t,n)%求f对符号变量t的n阶微分MATLAB 实用教程3.4.3 符号积分(Integration)积分有定积分和不定积分,运用函数int可 以求得符号表达式的积分,即找出一个符号表 达式F使得diff(F)=f,也可以说是求微分的逆 运算。 int(f,t) %求符号变量t的不定 积分 int(f,t,a,b) %求符号变量t的定积 分 int(f,t,m,n) %求符号变量t 的定积分MATLAB 实用教程3.4.4 符号级数 1. symsum函数(Symbolic Summation) symsum(s,x,a,b)%计算表达式

14、s的级数和 说明:x为自变量,x省略则默认为对自由变量求和 ;s为符号表达式;a,b为参数x的取值范围。2. taylor函数(Taylor Series) taylor(F,x,n) %求泰勒级数展开 说明:x为自变量,F为符号表达式;对F进行泰勒 级数展开至n项,参数n省略则默认展开前5项。MATLAB 实用教程3.5 符号积分变换 3.5.1傅里叶变换及其反变换 1. fourier变换 Ffourier(f,t,w)%求时域函数f(t)的fourier变换 F 说明:返回结果F是符号变量w的函数,f为t的函数 。2. fourier反变换 f=ifourier (F,w,t) 说明:i

15、fourier函数的用法与fourier函数相同。 syms t w F=fourier(1/t,t,w) %fourier变换 F =i*pi*(Heaviside(-w)-Heaviside(w)MATLAB 实用教程3.5.2拉普拉斯变换及其反变换 1. Laplace变换 F=laplace(f,t,s) %求时域函数f的Laplace变换F 说明:返回结果F为s的函数,当参数s省略,返回 结果F默认为s的函数;f为t的函数,当参数t省略 ,默认自由变量为t。 2. Laplace反变换 filaplace(F,s,t)%求F的Laplace反变换f syms a t s F1=laplace(sin(a*t),t,s) %sinat的Laplace变换 F1 =a/(s2+a2)MATLAB 实用教程3.5.3 Z变换及其反变换1. ztrans函数 Fztrans(f,n,z) %求时域序列f的Z变换F 说明:返回结果F是以符号变量z为自变量; 当参数n省略,默认自变量为n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号