MATLAB实用教程(第2版)郑阿奇第三章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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') %右趋近于0
MATLAB 实用教程
3.3.5 符号表达式的转换
1. 符号表达式与多项式的转换 构成多项式的符号表达式 f(x) 可以与多项式系数 构 成 的 行 向 量 进 行 相 互 转 换 , MATLAB 提 供 了 函 数 sym2poly和poly2sym实现相互转换。
2. 提取分子和分母 如果符号表达式是一个有理分式(两个多项式之比), 可以利用numden函数来提取分子或分母,还可以进行 通分。 [n,d]=numden(f)
MATLAB 实用教程
3.1.2 创建符号变量和表达式
(Creating Symbolic Variables and Expression)
1. 使用sym命令创建符号变量和表达式 sym(‘ 变量’ , 参数 ) % 把变量定义为符号对 象
2.使用syms命令创建符号变量和符号表达式 syms(‘arg1’, ‘arg2’, …,参数)
MATLAB 实用教程
3.3.3 符号表达式的替换(Substitutions)
subs函数:对符号表达式中符号变量的替换。 subs(s)%用给定值替换符号表达式s中的所有变量 subs(s,new)%用new替换符号表达式s中的自由变量 subs(s,old,new) %用new替换符号表达式s中的old变量
MATLAB 实用教程
3.5 符号积分变换 3.5.1傅里叶变换及其反变换
3.5.2拉普拉斯变换及其反变换
1. Laplace变换 F=laplace(f,t,s) %求时域函数f的Laplace变换F 说明:返回结果 F为 s的函数,当参数 s省略,返回 结果 F默认为 's'的函数;f为 t的函数,当参数 t省略, 默认自由变量为't'。 2. Laplace反变换 f=ilaplace(F,s,t) %求F的Laplace反变换f >> syms a t s >> F1=laplace(sin(a*t),t,s) %sinat的Laplace变换 F1 =a/(s^2+a^2)
将符号矩阵转化为数值矩阵 函数调用格式: numeric(A)
EX:>> a=sym('2/3') >> b=numeric(a)
MATLAB 实用教程
3.3符号表达式的操作和转换 3.3.1符号表达式中自由变量的确定
自由变量的确定原则(The Default Symbolic Variables)
符号表达式“f=ax2+bx+c” 中只有一个变量是独立变量: 小写字母i和j不能作为自由变量。 符号表达式中如果有多个符号变量,则按照以下顺序选择自 由变量:首先选择 x 作为自由变量;如果没有 x,则选择在字母 顺序中最接近x的字符变量;如果与x相同距离,则在x后面的优 先。 大写字母比所有的小写字母都靠后。 也可以用findsym函数来自动确定。 MATLAB 实用教程
例:
>> f=sym('x^3-6*x^2+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))
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:将表达式写成多项式形式. x^3-6*x^2+11*x-6
MATLAB 实用教程
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.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采用了重载技术,使得符号表达 式的运算符和基本函数都与数值计算中的几乎 完全相同 。 例如: 例如: >> f=sym('2*x^2+3*x+4') >> A+2 >> g=sym('5*x+6') >> A.’ >> f+g >> f*g >> det(A) >> A^2
与数值运算的区别: ※ 数值运算中必须先对变量赋值来自百度文库然后才能参 与运算。 ※ 符号运算无须事先对独立变量赋值,运算结 果以标准的符号形式表达。
MATLAB 实用教程
符号运算的功能
符号线性代数(linear algebra) 因式分解、展开和简化(simplification and substitution) 符号代数方程求解(solving equations) 符号微积分(Calculus) 符号微分方程
任意精度的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)
MATLAB 实用教程
EX:提取分子和分母系数。 >> f=sym('(1+2*s)/(s^2+2*s+1)') >> pretty(f) 1+2s -----------2 s +2s+1 >> [n,d]=numden(f) >> n1=sym2poly(n) >> d1=sym2poly(d)
MATLAB 实用教程
3.5.3 Z变换及其反变换
1. ztrans函数 F=ztrans(f,n,z) %求时域序列f的Z变换F 说明:返回结果F是以符号变量z为自变量; 当参数 n 省略,默认自变量为 'n' ;当参数 z 省 略,返回结果默认为'z'的函数。 2. iztrans函数 f=iztrans(F,z,n) %求F的z反变换f >> syms a n z t
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 实用教程
2. 函数运算 (1)三角函数和双曲函数 (2) 指数和对数函数 (3) 复数函数 (4) 矩阵代数命令
MATLAB 实用教程
3.2.2 符号数值任意精度控制和运算
在Symbolic Math Toolbox中有三种不同的算术运 算: 数值型:MATLAB的浮点运算。 有理数型:Maple的精确符号运算。 VPA型:Maple的任意精度运算。
MATLAB 实用教程
3.4.4 符号级数
1. symsum函数(Symbolic Summation)
symsum(s,x,a,b) %计算表达式s的级数和 说明:x为自变量,x省略则默认为对自由变量求和; s为符号表达式;[a,b]为参数x的取值范围。
2. taylor函数(Taylor Series)
MATLAB 实用教程
3.1 符号表达式的建立 3.1.1 创建符号常量
符号常量是不含变量的符号表达式。 sym(‘常量’) %创建符号常量 sym(常量,参数) %按某种格式转换为符号常量 说明:参数可以选择为’d’、’f’、’e’或’r’ 四种格式,也可省略。
EX: >>a=sym('sin(2)') >> a=sym(sin(2),'r')
MATLAB 实用教程
3 2 x - 6 x + 11 x - 6 。
horner:将多项式形式写成嵌套形式
-6+(11+(6+x)*x)*x
factor:将表达式写成因式形式
(x-1)*(x-2)*(x-3)
expand:将表达式写成多项式形式 simplify:对表达式进行化简 例如: k=sym('cos(x)^2-sin(x)^2') simplify(k) 2*cos(x)^2-1 simple :寻求表达式的多种简化形式,使之包含 最少数目的字符
MATLAB 实用教程
1. 符号运算中的运算符 (1)基本运算符 运算符“+”,“-”,“*”,“\”,“/”,“^” 分别实现符号矩阵的加、减、乘、左除、右除、求幂 运算。 运算符“.*”,“./”,“.\”,“.^”分别实现符号数 组的乘、除、求幂,即数组间元素与元素的运算。 运算符“′”,“.′”分别实现符号矩阵的共轭转置、 非共轭转置。 (2)关系运算符 运算符“= =”、“~=”分别对运算符两边的符号对象 进行“相等”、“不等”的比较。
syms arg1 arg2 …,参数
MATLAB 实用教程
例如: >> f1=sym(‘a*x^2+b*x+c’) %创建表达式 >> syms a b c x %创建变量 >> f2=a*x^2+b*x+c %创建表达式 >> syms('a','b','c','x') >> f3=a*x^2+b*x+c
taylor(F,x,n) %求泰勒级数展开 说明: x为自变量, F为符号表达式;对 F进行泰勒 级数展开至n项,参数n省略则默认展开前5项。
MATLAB 实用教程
1. fourier变换 F=fourier(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))
第3章 MATLAB符号计算 Using Symbolic Math Toolbox
3.1 符号表达式的建立 3.2符号表达式的代数运算 3.3符号表达式的操作和转换 3.4 符号极限、微积分和级数求和 3.5 符号积分变换 3.6符号方程的求解
MATLAB 实用教程
MATLAB具有符号数学工具箱(Symbolic Math Toolbox) 。 符号计算是可以对未赋值的符号对象(可以 是常数、变量、表达式)进行运算和处理。
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') %右趋近于0
MATLAB 实用教程
3.3.5 符号表达式的转换
1. 符号表达式与多项式的转换 构成多项式的符号表达式 f(x) 可以与多项式系数 构 成 的 行 向 量 进 行 相 互 转 换 , MATLAB 提 供 了 函 数 sym2poly和poly2sym实现相互转换。
2. 提取分子和分母 如果符号表达式是一个有理分式(两个多项式之比), 可以利用numden函数来提取分子或分母,还可以进行 通分。 [n,d]=numden(f)
MATLAB 实用教程
3.1.2 创建符号变量和表达式
(Creating Symbolic Variables and Expression)
1. 使用sym命令创建符号变量和表达式 sym(‘ 变量’ , 参数 ) % 把变量定义为符号对 象
2.使用syms命令创建符号变量和符号表达式 syms(‘arg1’, ‘arg2’, …,参数)
MATLAB 实用教程
3.3.3 符号表达式的替换(Substitutions)
subs函数:对符号表达式中符号变量的替换。 subs(s)%用给定值替换符号表达式s中的所有变量 subs(s,new)%用new替换符号表达式s中的自由变量 subs(s,old,new) %用new替换符号表达式s中的old变量
MATLAB 实用教程
3.5 符号积分变换 3.5.1傅里叶变换及其反变换
3.5.2拉普拉斯变换及其反变换
1. Laplace变换 F=laplace(f,t,s) %求时域函数f的Laplace变换F 说明:返回结果 F为 s的函数,当参数 s省略,返回 结果 F默认为 's'的函数;f为 t的函数,当参数 t省略, 默认自由变量为't'。 2. Laplace反变换 f=ilaplace(F,s,t) %求F的Laplace反变换f >> syms a t s >> F1=laplace(sin(a*t),t,s) %sinat的Laplace变换 F1 =a/(s^2+a^2)
将符号矩阵转化为数值矩阵 函数调用格式: numeric(A)
EX:>> a=sym('2/3') >> b=numeric(a)
MATLAB 实用教程
3.3符号表达式的操作和转换 3.3.1符号表达式中自由变量的确定
自由变量的确定原则(The Default Symbolic Variables)
符号表达式“f=ax2+bx+c” 中只有一个变量是独立变量: 小写字母i和j不能作为自由变量。 符号表达式中如果有多个符号变量,则按照以下顺序选择自 由变量:首先选择 x 作为自由变量;如果没有 x,则选择在字母 顺序中最接近x的字符变量;如果与x相同距离,则在x后面的优 先。 大写字母比所有的小写字母都靠后。 也可以用findsym函数来自动确定。 MATLAB 实用教程
例:
>> f=sym('x^3-6*x^2+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))
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:将表达式写成多项式形式. x^3-6*x^2+11*x-6
MATLAB 实用教程
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.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采用了重载技术,使得符号表达 式的运算符和基本函数都与数值计算中的几乎 完全相同 。 例如: 例如: >> f=sym('2*x^2+3*x+4') >> A+2 >> g=sym('5*x+6') >> A.’ >> f+g >> f*g >> det(A) >> A^2
与数值运算的区别: ※ 数值运算中必须先对变量赋值来自百度文库然后才能参 与运算。 ※ 符号运算无须事先对独立变量赋值,运算结 果以标准的符号形式表达。
MATLAB 实用教程
符号运算的功能
符号线性代数(linear algebra) 因式分解、展开和简化(simplification and substitution) 符号代数方程求解(solving equations) 符号微积分(Calculus) 符号微分方程
任意精度的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)
MATLAB 实用教程
EX:提取分子和分母系数。 >> f=sym('(1+2*s)/(s^2+2*s+1)') >> pretty(f) 1+2s -----------2 s +2s+1 >> [n,d]=numden(f) >> n1=sym2poly(n) >> d1=sym2poly(d)
MATLAB 实用教程
3.5.3 Z变换及其反变换
1. ztrans函数 F=ztrans(f,n,z) %求时域序列f的Z变换F 说明:返回结果F是以符号变量z为自变量; 当参数 n 省略,默认自变量为 'n' ;当参数 z 省 略,返回结果默认为'z'的函数。 2. iztrans函数 f=iztrans(F,z,n) %求F的z反变换f >> syms a n z t
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 实用教程
2. 函数运算 (1)三角函数和双曲函数 (2) 指数和对数函数 (3) 复数函数 (4) 矩阵代数命令
MATLAB 实用教程
3.2.2 符号数值任意精度控制和运算
在Symbolic Math Toolbox中有三种不同的算术运 算: 数值型:MATLAB的浮点运算。 有理数型:Maple的精确符号运算。 VPA型:Maple的任意精度运算。
MATLAB 实用教程
3.4.4 符号级数
1. symsum函数(Symbolic Summation)
symsum(s,x,a,b) %计算表达式s的级数和 说明:x为自变量,x省略则默认为对自由变量求和; s为符号表达式;[a,b]为参数x的取值范围。
2. taylor函数(Taylor Series)
MATLAB 实用教程
3.1 符号表达式的建立 3.1.1 创建符号常量
符号常量是不含变量的符号表达式。 sym(‘常量’) %创建符号常量 sym(常量,参数) %按某种格式转换为符号常量 说明:参数可以选择为’d’、’f’、’e’或’r’ 四种格式,也可省略。
EX: >>a=sym('sin(2)') >> a=sym(sin(2),'r')
MATLAB 实用教程
3 2 x - 6 x + 11 x - 6 。
horner:将多项式形式写成嵌套形式
-6+(11+(6+x)*x)*x
factor:将表达式写成因式形式
(x-1)*(x-2)*(x-3)
expand:将表达式写成多项式形式 simplify:对表达式进行化简 例如: k=sym('cos(x)^2-sin(x)^2') simplify(k) 2*cos(x)^2-1 simple :寻求表达式的多种简化形式,使之包含 最少数目的字符
MATLAB 实用教程
1. 符号运算中的运算符 (1)基本运算符 运算符“+”,“-”,“*”,“\”,“/”,“^” 分别实现符号矩阵的加、减、乘、左除、右除、求幂 运算。 运算符“.*”,“./”,“.\”,“.^”分别实现符号数 组的乘、除、求幂,即数组间元素与元素的运算。 运算符“′”,“.′”分别实现符号矩阵的共轭转置、 非共轭转置。 (2)关系运算符 运算符“= =”、“~=”分别对运算符两边的符号对象 进行“相等”、“不等”的比较。
syms arg1 arg2 …,参数
MATLAB 实用教程
例如: >> f1=sym(‘a*x^2+b*x+c’) %创建表达式 >> syms a b c x %创建变量 >> f2=a*x^2+b*x+c %创建表达式 >> syms('a','b','c','x') >> f3=a*x^2+b*x+c
taylor(F,x,n) %求泰勒级数展开 说明: x为自变量, F为符号表达式;对 F进行泰勒 级数展开至n项,参数n省略则默认展开前5项。
MATLAB 实用教程
1. fourier变换 F=fourier(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))
第3章 MATLAB符号计算 Using Symbolic Math Toolbox
3.1 符号表达式的建立 3.2符号表达式的代数运算 3.3符号表达式的操作和转换 3.4 符号极限、微积分和级数求和 3.5 符号积分变换 3.6符号方程的求解
MATLAB 实用教程
MATLAB具有符号数学工具箱(Symbolic Math Toolbox) 。 符号计算是可以对未赋值的符号对象(可以 是常数、变量、表达式)进行运算和处理。