第四章符号数学基础 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 函数完成表达式形式的转换