matlab实用教程郑阿奇,MATLAB实用教程(第2版)[郑阿奇主编][电子教案]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab实⽤教程郑阿奇,MATLAB实⽤教程(第2版)[郑阿奇主
编][电⼦教案]
MATLAB实⽤教程(第2版)[郑阿奇主编][电⼦教案]
MATLAB 实⽤教程第3章 MATLAB符号计算 Using Symbolic Math Toolbox3.1 符号表达式的建⽴ 3.2符号表达式的代数运算 3.3符号表达式的操作和转换 3.4 符号极限、微积分和级数求和 3.5 符号积分变换 3.6符号⽅程的求解 MATLAB 实⽤教程MATLAB具有符号数学⼯具箱(Symbolic Math Toolbox) 。
符号计算是可以对未赋值的符号对象(可以是 常数、变量、表达式)进⾏运算和处理。
与数值运算的区别: 数值运算中必须先对变量赋值,然后才能参 与运算。
符号运算⽆须事先对独⽴变量赋值,运算结 果以标准的符号形式表达。
MATLAB 实⽤教程符号运算的功能符号线性代数(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 创建符号变量和表达式(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 符号表达式()中的参数⼀定要⽤ 单引 号括起来。
MATLAB 实⽤教程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 例如: 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) 复数函数(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) 将符号矩阵转化为数值矩阵 函数调⽤格式: 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 Symbolic 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:将表达式写成多项式形式 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中的old变量例: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 符号表达式的转换 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)MATLAB 实⽤教程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的⼀阶微分 diff(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)%计算表达式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) 说明:ifourier函数的⽤法与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。