中国高校课件下载中心 》 教学资源 》 大学文库

《信号与系统》课程教学资源(MATLAB教程)第四章 符号数学基础

文档信息
资源类别:文库
文档格式:DOC
文档页数:24
文件大小:158KB
团购合买:点击进入团购
内容简介
《信号与系统》课程教学资源(MATLAB教程)第四章 符号数学基础
刷新页面文档预览

第四章符号数学基础 Chapter 4:Foundation of Symbolic Mathematics 一.符号对象的创建(Creating a symbolic object) L.创建符号变量和表达式(Creating a symbolic variable and expression) 创建符号变量和表达式的两个基本函数:sym,syms *x=sym(x')创建一个符号变量x,可以是字符、字符串、表达式或字符 表达式。 *syms用于方便地一次创建多个符号变量,调用格式为:symsa bed. 书写简洁意义清楚,建议使用。 例1:使用sym函数创建符号变量 a=sym('a') b=sym('hello') c=sym((1+sqrt(5)/2') y=sym(x3+5*x^2+12*x+20) a= a b= hello C= (1+sqrt(5)/2 Y= x3+5*x2+12*x+20 例2:用syms函数创建符号变量。 syms a b c d 2.创建符号矩阵(Symbolic matrix Creating) 例1:创建一个循环矩阵。 syms a bc d n=[a bc d;bc d a;c da b;d a bc] n=

第四章 符号数学基础 Chapter 4:Foundation of Symbolic Mathematics 一. 符号对象的创建(Creating a symbolic object) 1. 创建符号变量和表达式(Creating a symbolic variable and expression) 创建符号变量和表达式的两个基本函数:sym, syms *x=sym(‘x’) 创建一个符号变量 x,可以是字符、字符串、表达式或字符 表达式。 *syms 用于方便地一次创建多个符号变量,调用格式为: syms a b c d . 书写简洁意义清楚,建议使用。 例 1:使用 sym 函数创建符号变量. a=sym(‘a’) b=sym( ‘hello’) c=sym(( ‘(1+sqrt(5))/2’) y=sym( ‘x^3+5*x^2+12*x+20’) a = a b = hello C = (1+sqrt(5))/2 Y = x^3+5*x^2+12*x+20 例 2:用 syms 函数创建符号变量。 syms a b c d 2. 创建符号矩阵(Symbolic matrix Creating) 例 1:创建一个循环矩阵。 syms a b c d n=[a b c d;b c d a;c d a b;d a b c] n =

[a,b,c,d] [b,c,d,al [c,d,a,b] [d,a,b,] 例2:将3阶Hilbert矩阵转换为符号矩阵。 h=hilb(3) h1=sym(h) h= 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 hl= 「1,1/2,1/31 [1/2,1/3,1/4] 1/3,1/4,1/51 注意符号矩阵于数值矩阵的区别。 3.默认符号变量(mplied symbolic variable) 在MATLAB的符号数学工具箱中,以最接近x的顺序排列默认自 变量的顺序,可利用findsym函数对默认自变量进行查询。 例1:求符号函数在不同自变量情况下的结果。 创建符号变量x和,建立函数f=x",然后分别求f对x和f对n的导 数 syms x n f=x'n diff(f) %x作为自变量,求f对x的导数 diff(f,n) %n作为自变量,求f对n的导数 f= x'n ans= x n*n/x

[ a, b, c, d] [ b, c, d, a] [ c, d, a, b] [ d, a, b, c] 例 2:将 3 阶 Hilbert 矩阵转换为符号矩阵。 h=hilb(3) h1=sym(h) h = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 h1 = [ 1, 1/2, 1/3] [ 1/2, 1/3, 1/4] [ 1/3, 1/4, 1/5] 注意符号矩阵于数值矩阵的区别。 3. 默认符号变量(Implied symbolic variable) 在 MATLAB 的符号数学工具箱中,以最接近 x 的顺序排列默认自 变量的顺序,可利用 findsym 函数对默认自变量进行查询。 例 1: 求符号函数在不同自变量情况下的结果。 创建符号变量 x 和 n,建立函数 f=xn,然后分别求 f 对 x 和 f 对 n 的导 数. syms x n f=x^n diff(f) % x 作为自变量,求 f 对 x 的导数 diff(f,n) % n 作为自变量,求 f 对 n 的导数 f = x^n ans = x^n*n/x

ans= x'n*log(x) 例2:查询符号函数中的默认自变量。 创建符号变量a,b,n,x和t,建立函数f=ax+bt,然后求f的默认自变 量。 syms a b n tx f仁a*xtb*t findsym(f,1) findsym(f,2) findsym(f,5) %f表达式中按最接近x顺序排列的5个默认自变量 findsym(f) %「表达式中按最接近字母顺序排列的全部自变量 f= a*x n+b*t ans= ans= x,t ans x,t,n,b,a ans a,b,n,t,x >> 二.符号表达式的化简和替换((simplifying and replacing of Symbolic xpressions) 符号数学工具箱提供的符号表达式的因式分解、展开、合并、化简、 通分等操作: L.符号表达式的化简(Simplifying of symbolic expression) (1).因式分解Factorization) 符号表达式的因式分解函数为factor(S),可分解符号表达式S的 各个元素

ans = x^n*log(x) 例 2: 查询符号函数中的默认自变量。 创建符号变量 a,b, n, x 和 t ,建立函数 f=axn+bt,然后求 f 的默认自变 量。 syms a b n t x f=a*x^n+b*t findsym(f,1) findsym(f,2) findsym(f,5) % f 表达式中按最接近 x 顺序排列的 5 个默认自变量 findsym(f) % f 表达式中按最接近字母顺序排列的全部自变量 f = a*x^n+b*t ans = x ans = x,t ans = x,t,n,b,a ans = a, b, n, t, x >> 二. 符号表达式的化简和替换(simplifying and replacing of Symbolic xpressions) 符号数学工具箱提供的符号表达式的因式分解、展开、合并、化简、 通分等操作: 1. 符号表达式的化简(Simplifying of symbolic expression) (1).因式分解(Factorization) 符号表达式的因式分解函数为 factor(S), 可分解符号表达式 S 的 各个元素

例1:对表达式=x1进行因式分解。 syms x f=factor(x^9-1) pretty(f) f= (x-1)*(x2+x+1)*(x6+x3+1) 63 (x-1)(x+x+1)(x+x+1) 例2:对大整数12345678901234567890进行因式分解 factor(sym(12345678901234567890) ans= (2)*(3)2*(5)*(101)*(3803)*(3607)*(27961)*(3541) (2)符号表达式的展开(Expanding of symbolic expressions) 符号表达式的展开函数为expand(S),此函数因数展开符号表达式 5 例:展开表达式f=(x+1)5和f=sin(x+y) symsx y f=(+1)^5; expand(f) f=sin(kty)月 expand(f) ans x5+5*x^4+10*x3+10*x2+5*x+1 ans= sin(x)*cos(y)+cos(x)*sin(y) (3).符号表达式的同类项合并(Similar team merging for symbolic expression) 符号表达式的同类项合并函数为collect(S,n),此函数将符号表达 式中自变量的同次幂项的系数合并。 例:对于表达式f=x(x(x-6O+12)北,分别将自变量x和t的同类项合并。 symsx t

例 1: 对表达式 f=x9 -1 进行因式分解。 syms x f=factor(x^9-1) pretty(f) f = (x-1)*(x^2+x+1)*(x^6+x^3+1) 2 6 3 (x - 1) (x + x + 1) (x + x + 1) 例 2:对大整数 12345678901234567890 进行因式分解。 factor(sym(‘12345678901234567890’)) ans = (2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541) (2)符号表达式的展开(Expanding of symbolic expressions) 符号表达式的展开函数为 expand(S), 此函数因数展开符号表达式 S. 例: 展开表达式 f=(x+1)5 和 f=sin(x+y) syms x y f=(x+1)^5; expand(f) f=sin(x+y); expand(f) ans = x^5+5*x^4+10*x^3+10*x^2+5*x+1 ans = sin(x)*cos(y)+cos(x)*sin(y) (3).符号表达式的同类项合并(Similar team merging for symbolic expression) 符号表达式的同类项合并函数为 collect(S,n),此函数将符号表达 式中自变量的同次幂项的系数合并。 例:对于表达式 f=x(x(x-6)+12)t, 分别将自变量 x 和 t 的同类项合并。 syms x t

f=x*(在*(x-6)+12)*t; collect(f) collect(f,t) ans= t*xA3-6*t*x2+12*t*X ans x*(x*(x-6)+12)*t COLLECT Collect coefficients COLLECT(S,v)regards each element of the symbolic matrix S as a polynomial in v and rewrites S in terms of the powers of v COLLECT(S)uses the default variable determined by FINDSYM (4).符号表达式的化简(Simplifying ofsymbolic expression) 符号表达式的两个化简函数:simplify,simple, simplify:化简函数,可用于化简各种表达式 例1:对表达式f=sin2(x+cos2(x)进行化简. symsx f=sin(x)2+cos(x)^2; simplify(f) ans= 1 Ir,how=simple(S函数可寻找符号表达式S的最简型,r为返回的 简化形式,how为化简过程中使用的主要方法,simple函数综合使用了下 列化简方法: *simplify函数对表达式进行化简 *radsimp函数对含根式(surd)的表达式进行化简 *combine函数对表达式中以求和、乘积、幂运算等形式出现的项 进行合并 *collect 合并同类项 *factor 函数实现因式分解 *convert 函数完成表达式形式的转换

f=x*(x*(x-6)+12)*t; collect(f) collect(f,t) ans = t*x^3-6*t*x^2+12*t*x ans = x*(x*(x-6)+12)*t COLLECT Collect coefficients. COLLECT(S,v) regards each element of the symbolic matrix S as a polynomial in v and rewrites S in terms of the powers of v. COLLECT(S) uses the default variable determined by FINDSYM. (4). 符号表达式的化简(Simplifying of symbolic expression) 符号表达式的两个化简函数:simplify, simple , simplify:化简函数,可用于化简各种表达式 例 1:对表达式 f=sin2 (x)+cos2 (x)进行化简. syms x f=sin(x)^2+cos(x)^2; simplify(f) ans = 1 [r,how]=simple(S) 函数可寻找符号表达式 S 的最简型, r 为返回的 简化形式,how 为化简过程中使用的主要方法,simple 函数综合使用了下 列化简方法: *simplify 函数对表达式进行化简 *radsimp 函数对含根式(surd)的表达式进行化简 *combine 函数对表达式中以求和、乘积、幂运算等形式出现的项 进行合并 *collect 合并同类项 *factor 函数实现因式分解 *convert 函数完成表达式形式的转换

例2:最简表达式的获得。 syms x t f=cos(x)^2-sin(x)^2; [r,how]=simple(f) r= cos(2*x) how= combine (5)符号表达式的分式通分(Reduction symbolic expression to common denominator) 符号表达式的分式通分函数为I,d=numden(S),此函数将符号表达 式转换为分子(Numerator)和分母(denominator)都是正系数的最佳多项 式。 例:对表达式f=xy+yk进行通分。 syms x v f=x/y+y/x; [n,d]=numden(f) x2+y^2 d= y*x NUMDEN Numerator and denominator of a symbolic expression. [N,D]NUMDEN(A)converts each element of A to a rational form where the numerator and denominator are relatively prime polynomials with integer coefficients. (⑥)符号表达式的嵌套形式重写(Representation of nested symbolic expression) 符号表达式的嵌套形式重写函数为horner(S),此函数将符号表达 式转换为嵌套形式。 例:对表达式f=x3+6x2+11x-6进行嵌套形式重写

例 2:最简表达式的获得。 syms x t f=cos(x)^2-sin(x)^2; [r,how]=simple(f) r = cos(2*x) how = combine (5)符号表达式的分式通分(Reduction symbolic expression to common denominator) 符号表达式的分式通分函数为 [n,d]=numden(S), 此函数将符号表达 式转换为分子(Numerator)和分母(denominator)都是正系数的最佳多项 式。 例:对表达式 f=x/y+y/x 进行通分。 syms x y f=x/y+y/x; [n,d]=numden(f) n = x^2+y^2 d = y*x NUMDEN Numerator and denominator of a symbolic expression. [N,D] = NUMDEN(A) converts each element of A to a rational form where the numerator and denominator are relatively prime polynomials with integer coefficients. (6) 符号表达式的嵌套形式重写(Representation of nested symbolic expression) 符号表达式的嵌套形式重写函数为 horner(S), 此函数将符号表达 式转换为嵌套形式。 例: 对表达式 f=x3+6x2+11x-6 进行嵌套形式重写

symsx f=x3+6*x2+11*x-6; horner(f) ans= -6+(11+6+x)*x)*x HORNER Horner polynomial representation HORNER(P)transforms the symbolic polynomial P into its Horner or nested,representation. 2.符号表达式的替换(Replacing of symbolic expression) MATLAB的符号数学工具箱提供了两个符号表达式的替换函数 subexpr和subs,可通过符号替换使表达式的输出形式简化。 subexpr函数可将表达式中重复出现的字符串用变量代替。调用格式: IY,SIGMA=subexpr(S,SIGMA):用变量SIGMA的值代替符号表达式S 中重复出现的字符串,Y返回替换后的结果。 例:求解并化简三次方程x3+ax+1=0的符号解。 t=solve('x^3+a*x+1=0') [r,s]=subexpr(t,'s') t= [1/6*(-108+12*(12*a^3+81)1/2)1/3)-2*a/(-108+12*(12*a3+81) 1/2)1/3】 [-1/12*(-108+12*(12*a^3+81)1/2)(1/3)+a/(-108+12*(12*a^3+81)y (1/2)(1/3)+1/2*i*3(1/2)*1/6*(-108+12*(12*a3+81)(1/2)1/3)+2 *a/(-108+12*(12*a3+81)1/2)1/3)] [-1/12*(-108+12*(12*a^3+81)1/2)(1/3)+a/(-108+12*(12*a3+81)/ (1/2)(1/3)-1/2*i*31/2)*(1/6*(-108+12*(12*a^3+81)(1/2)(1/3)+2 *a/(-108+12*(12*a^3+81)1/2)(1/3)] r= 1/6*s1/3)-2*a/s(1/3)] [-1/12*s(1/3)+a/s(1/3)+1/2*i*3(1/2)*(1/6*s(1/3)+2*a/s(1/3)] [-1/12*s(1/3)+a/s(1/3)-1/2*i*3(1/2)*(1/6*s(1/3)+2*a/s^(1/3)]

syms x f=x^3+6*x^2+11*x-6; horner(f) ans = -6+(11+(6+x)*x)*x HORNER Horner polynomial representation. HORNER(P) transforms the symbolic polynomial P into its Horner, or nested, representation. 2. 符号表达式的替换(Replacing of symbolic expression) MATLAB 的符号数学工具箱提供了两个符号表达式的替换函数 subexpr 和 subs,可通过符号替换使表达式的输出形式简化。 subexpr 函数可将表达式中重复出现的字符串用变量代替。调用格式: [Y,SIGMA]=subexpr(S,SIGMA): 用变量 SIGMA 的值代替符号表达式 S 中重复出现的字符串,Y 返回替换后的结果。 例:求解并化简三次方程 x 3+ax+1=0 的符号解。 t=solve(‘x^3+a*x+1=0’) [r,s]=subexpr(t,’s’) t = [1/6*(-108+12*(12*a^3+81)^(1/2))^(1/3)-2*a/(-108+12*(12*a^3+81)^( 1/2))^(1/3)] [ -1/12*(-108+12*(12*a^3+81)^(1/2))^(1/3)+a/(-108+12*(12*a^3+81)^ (1/2))^(1/3)+1/2*i*3^(1/2)*(1/6*(-108+12*(12*a^3+81)^(1/2))^(1/3)+2 *a/(-108+12*(12*a^3+81)^(1/2))^(1/3))] [ -1/12*(-108+12*(12*a^3+81)^(1/2))^(1/3)+a/(-108+12*(12*a^3+81)^ (1/2))^(1/3)-1/2*i*3^(1/2)*(1/6*(-108+12*(12*a^3+81)^(1/2))^(1/3)+2 *a/(-108+12*(12*a^3+81)^(1/2))^(1/3))] r = [ 1/6*s^(1/3)-2*a/s^(1/3)] [ -1/12*s^(1/3)+a/s^(1/3)+1/2*i*3^(1/2)*(1/6*s^(1/3)+2*a/s^(1/3))] [ -1/12*s^(1/3)+a/s^(1/3)-1/2*i*3^(1/2)*(1/6*s^(1/3)+2*a/s^(1/3))]

S= -108+12*(12*a3+81)^(1/2) 函数subs是用指定符号替换符号表达式中的某一特定符号,调用格 式为:R=subs(S,old,new),它可用新的符号变量new替换原来符号表达 式S中的old.当new为数值形式时,显示的结果虽然是数值,但它事实上 是符号变量。 例:分别用新变量替换表达式a+b和cos(a)+sin(b)中变量。 syms a b subs(a+b,a,4) subs(cos(a+sin(b,{a,b,{sym('alpha'),2)%用单元数组完成不同性质 %元素的替换 ans= 4+b ans cos(alpha)+sin(2) 三.符号微积分(Differential and integral calculus) 1.符号极限(Symbolic limit) *imit(E,x,a)计算符号表达式F在x→a条件下的极限: *imit(E,a)计算符号表达式F中由默认自变量趋向于a条件下的极限: *imit(E)计算符号表达式F在默认自变量趋向于0条件下的极限: *limit(Ex,a,right')和limit(E,x,a,'lef')计算符号表达式F在x→a条件下 的右极限和左极限。 例:分别计算表达式如”,一,及甲+和m syms x a; limit(sin(x)/x) limit(1/x,x,0,'right')

s = -108+12*(12*a^3+81)^(1/2) 函数 subs 是用指定符号替换符号表达式中的某一特定符号,调用格 式为:R=subs(S,old,new), 它可用新的符号变量 new 替换原来符号表达 式 S 中的 old. 当 new 为数值形式时,显示的结果虽然是数值,但它事实上 是符号变量。 例:分别用新变量替换表达式 a+b 和 cos(a)+sin(b)中变量。 syms a b subs(a+b,a,4) subs(cos(a)+sin(b), {a,b},{sym('alpha'),2}) %用单元数组完成不同性质 %元素的替换 ans = 4+b ans = cos(alpha)+sin(2) 三.符号微积分(Differential and integral calculus) 1. 符号极限(Symbolic limit) *limit(F,x,a) 计算符号表达式 F 在 x→a 条件下的极限; *limit(F,a) 计算符号表达式 F 中由默认自变量趋向于 a 条件下的极限; *limit(F,) 计算符号表达式 F 在默认自变量趋向于 0 条件下的极限; *limit(F,x,a,‘right’) 和limit(F,x,a,’left’) 计算符号表达式F在x→a条件下 的右极限和左极限。 例:分别计算表达式 x x x sin( ) lim →0 , ) 1 lim ( x→0+ x , ) 1 lim ( x→0 _ x 及 x x x a lim (1 ) _ + → 和 x x e − → lim syms x a; limit(sin(x)/x) limit(1/x,x,0,’right’)

limit(1/x.x,0,'left') v=[(I+a/x)^x,exp(-x)]; limit(v,x,inf,'left') ans= 1 ans inf ans -inf ans [exp(a), 0] 2.符号微分(symbolic differential calculus) *diff(S) 求符号表达式S对于默认自变量的微分: *diff(S,y)求符号表达式S对于自变量v的微分: *diff(S,n)求符号表达式S对于默认自变量的n次微分: 例:分别计算表达式fx的导数和3次导数 syms x; f=xx; diff(f) diff(f,3) ans= xx*(log(x)+1) ans xx*(1og(x)+1)3+3*xx*(1og(x)+1)/x-xx/x2 3.符号积分(Symbolic integral calculus) *int(S) 求符号表达式S对于默认自变量的不定积分: *int(S,y)求符号表达式S对于自变量v的不定积分: *int(S,a,b)求符号表达式S对于默认自变量从a到b的定积分; 例:分别计算表达式可、a、止利e1+达

limit(1/x,x,0,’left’) v=[(1+a/x)^x,exp(-x)]; limit(v,x,inf,’left’) ans = 1 ans = inf ans = -inf ans = [ exp(a), 0] 2. 符号微分(symbolic differential calculus) *diff(S) 求符号表达式 S 对于默认自变量的微分; *diff(S,v) 求符号表达式 S 对于自变量 v 的微分; *diff(S,n) 求符号表达式 S 对于默认自变量的 n 次微分; 例: 分别计算表达式 f=xx 的导数和 3 次导数. syms x; f=x^x; diff(f) diff(f,3) ans = x^x*(log(x)+1) ans = x^x*(log(x)+1)^3+3*x^x*(log(x)+1)/x-x^x/x^2 3. 符号积分(Symbolic integral calculus) *int(S) 求符号表达式 S 对于默认自变量的不定积分; *int(S,v) 求符号表达式 S 对于自变量 v 的不定积分; *int(S,a,b) 求符号表达式 S 对于默认自变量从 a 到 b 的定积分; 例:分别计算表达式 dx x x  + − 2 2 (1 ) 2 、 dx z x  + 2 (1 ) 、 dz z x  + 2 (1 ) 和  + 1 0 xlog(1 x)dx

syms x Z; f=-2*x/(1+x^2)2; int(f) f-x/(1+z^2) int(f) int(f,z) f=x*1og(1+x): int(f,0,1) ans= 1/1+x2) ans 1/2*x2/(1+z2) ans= x*atan(z) ans 1/4 4.符号求和(Symbolic summation) *symsum(S) 求符号表达式S对于默认自变量的不定和: *symsum(S,v)求符号表达式S对于自变量v的不定和: *symsum(S,a,b)求符号表达式S对于默认自变量从a到b的有限和: 例:分别计算表达式k和活 syms k x symsum(k) symsum(k 2,0,10) symsum(x"k/sym('k!'),k,0,inf) ans= 1/2*k2-1/2*k ans

syms x z; f=-2*x/(1+x^2)^2; int(f) f=x/(1+z^2); int(f) int(f,z) f=x*log(1+x); int(f,0,1) ans = 1/(1+x^2) ans = 1/2*x^2/(1+z^2) ans = x*atan(z) ans = 1/4 4. 符号求和(Symbolic summation) *symsum(S) 求符号表达式 S 对于默认自变量的不定和; * symsum(S,v) 求符号表达式 S 对于自变量 v 的不定和; * symsum(S,a,b) 求符号表达式 S 对于默认自变量从 a 到 b 的有限和; 例: 分别计算表达式∑k,  10 0 2 k 和   k =0 ! k k x syms k x symsum(k) symsum(k^2,0,10) symsum(x^k/sym(‘k!’),k,0,inf) ans = 1/2*k^2-1/2*k ans =

共24页,试读已结束,阅读完整版请下载
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档