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

西安交通大学:《精通MATLAB》课程教材讲义(综合辅导与指南)第22章 符号数学工具(1/2)

文档信息
资源类别:文库
文档格式:DOC
文档页数:19
文件大小:350.5KB
团购合买:点击进入团购
内容简介
MATLAB所具有的符号数学工具箱与其它所有工具不同,它适用于广泛的用途,而不是 针对一些特殊专业或专业分支。另外, MATLAB符号数学工具箱与其它的工具箱区别还因为 它使用字符串来进行符号分析,而不是基于数组的数值分析。为此,本章包含了该工具箱的教
刷新页面文档预览

第22章符号数学工具 MATLAB所具有的符号数学工具箱与其它所有工具不同,它适用于广泛的用途,而不是 针对一些特殊专业或专业分支。另外, MATLA B符号数学工具箱与其它的工具箱区别还因为 它使用字符串来进行符号分析,而不是基于数组的数值分析。为此,本章包含了该工具箱的教 学辅导材料 22.1引言 符号数学工具箱是操作和解决符号表达式的符号数学工具箱(函数)集合,有复合、简化、 微分、积分以及求解代数方程和微分方程的工具。另外还有一些用于线性代数的工具,求解 逆、行列式、正则型式的精确结果,找出符号矩阵的特征值而无由数值计算引入的误差。工具 箱还支持可变精度运算,即支持符号计算并能以指定的精度返回结果 符号数学工具箱中的工具是建立在功能强大的称作Mapl软件的基础上。它最初是由加拿 大的滑铁卢( Waterloo)大学开发的。当要求 MATLAB进行符号运算时,它就请求 Maple去计 算并将结果返回到 MATLAB命令窗口。因此,在 MATLAB中的符号运算是 MATLAB处理数字 的自然扩展 22.2符号表达式 符号表达式是代表数字、函数、算子和变量的 MATLAB字符串,或字符串数组。不要求 变量有预先确定的值,符号方程式是含有等号的符号表达式。符号算术是使用已知的规则和给 定符号恒等式求解这些符号方程的实践,它与代数和微积分所学到的求解方法完全一样。符号 矩阵是数组,其元素是符号表达式 MATLAB在内部把符号表达式表示成字符串,以与数字变量或运算相区别:否则,这些 符号表达式几乎完全象基本的 MATLA B命令。表22.1列有几则符号表达式例子以及 MATLA B 等效表达式 表22.1 符号表达式 MATLAB表达式 y=1/sqrt(2 x) cos(x )-sin(2x) b M=sym('la, b: c, d]')

第22章 符号数学工具 MATLAB所具有的符号数学工具箱与其它所有工具不同,它适用于广泛的用途,而不是 针对一些特殊专业或专业分支。另外,MATLAB符号数学工具箱与其它的工具箱区别还因为 它使用字符串来进行符号分析,而不是基于数组的数值分析。为此,本章包含了该工具箱的教 学辅导材料。 22.1 引言 符号数学工具箱是操作和解决符号表达式的符号数学工具箱(函数)集合,有复合、简化、 微分、积分以及求解代数方程和微分方程的工具。另外还有一些用于线性代数的工具,求解 逆、行列式、正则型式的精确结果,找出符号矩阵的特征值而无由数值计算引入的误差。工具 箱还支持可变精度运算,即支持符号计算并能以指定的精度返回结果。 符号数学工具箱中的工具是建立在功能强大的称作Maple软件的基础上。它最初是由加拿 大的滑铁卢(Waterloo)大学开发的。当要求MATLAB进行符号运算时,它就请求Maple去计 算并将结果返回到MATLAB命令窗口。因此,在MATLAB中的符号运算是MATLAB处理数字 的自然扩展。 22.2 符号表达式 符号表达式是代表数字、函数、算子和变量的MATLAB字符串,或字符串数组。不要求 变量有预先确定的值,符号方程式是含有等号的符号表达式。符号算术是使用已知的规则和给 定符号恒等式求解这些符号方程的实践,它与代数和微积分所学到的求解方法完全一样。符号 矩阵是数组,其元素是符号表达式。 MATLAB在内部把符号表达式表示成字符串,以与数字变量或运算相区别;否则,这些 符号表达式几乎完全象基本的MATLAB命令。表22.1列有几则符号表达式例子以及MATLAB 等效表达式。 表22.1 符号表达式 MATLAB表达式 1 2x n ' 1/(2*x^n) ' 1 y = 2x y= ' 1/sqrt(2*x) ' cos(x ) sin( x) 2 − 2 ' cos(x^2)-sin(2*x) ' M a b c d =       M=sym( ' [a,b;c,d] ' )

f=nt(x^3/sqrt(1-x)’,"a',"b') - dx 值 ATLAB符号函数可让用户用多种方法来操作这些表达式,比如 >>diff( cos(x))% differentiate cos(x)with respect tox > M=sym('la, b: c, d])% create a symbolic matrix M >>determ(M)% find the determinant of the symbolic matrix M ans- 请注意,上面的第一个例子的符号表达式是用单引号以隐含方式定义的。它告诉 MATLAB cos(x)是一个字符串并说明df’cosx’)是一个符号表达式而不是数字表达式;然而在第二个 例子中,用函数sm显式地告诉 MATLAB M=sym('Ia,b;c,d’)是一符号表达式。在 MATLAB可以自己确定变量类型的场合下,通常不要求显式函数sms 正如在第八章所阐述, MATLAB中函数 function argument形式是与 function(' argument') 等价的。其中, function是一个函数, argument是一字符串。例如, MATLAB可以构造dfr cos(x)和dif('’cos(x)’)两者都意味dir(sym’cosx)’)。但第一种形式显然更便于输入。然而, 很多时候sm是必要的。在上述的第二个例子中, >>M=a, b: c, d]% M is a numeric matrix using value of a through d o??Undefine function or variable a >>M=a, b: c, d'% M is a character string, but not a symbolic matrix > M=sym('a, b: c, d]')% M is a symbolic matrix

x x dx a b 3 1−  f=int( ' x^3/sqrt(1-x) ' , ' a ' , ' b ' ) MATLAB符号函数可让用户用多种方法来操作这些表达式,比如, >> diff( ' cos(x) ' ) % differentiate cos(x) with respect to x ans= -sin(x) >> M=sym( ' [a,b;c,d] ' ) % create a symbolic matrix M M= [a,b] [c,d] >> determ(M) % find the determinant of the symbolic matrix M ans= a*d-b*c 请注意,上面的第一个例子的符号表达式是用单引号以隐含方式定义的。它告诉MATLAB ' cos(x) ' 是一个字符串并说明diff( ' cosx ' )是一个符号表达式而不是数字表达式;然而在第二个 例子中,用函数sym显式地告诉MATLAB M=sym( ' [a,b;c,d] ' )是一符号表达式。在 MATLAB可以自己确定变量类型的场合下,通常不要求显式函数sym。 正如在第八章所阐述,MATLAB中函数function argument形式是与function( ' argument ' ) 等价的。其中,function是一个函数,argument是一字符串。例如,MATLAB可以构造diff cos(x)和diff( ' cos(x) ' )两者都意味diff (sym ' cos(x) ' )。但第一种形式显然更便于输入。然而, 很多时候sym是必要的。在上述的第二个例子中, >> M=[a,b;c,d] % M is a numeric matrix using value of a through d ???Uundefine function or variable a. >> M= ' [a,b;c,d] ' % M is a character string, but not a symbolic matrix M= [a,b;c,d] >> M=sym( ' [a,b;c,d] ' ) % M is a symbolic matrix M= [a,b] [c,d]

M以三种方式定义:数字型(如果a、b、c、d已预先确定)、字符串型或符号矩阵型。许多符号 函数非常巧妙能够自动将字符转变为符号表达式。但在某些情况下,尤其是建立符号数组时 必须用函数sym,特别地将字符串变为符号表达式。隐含形式,例如 diff cos(x),对于那些不需 要参考先前结果的简单任务,最有用。但是最简单形式(无引号)要求一个参量,它是一个单字 符的字符串、不包含插入的空格 >> diffx^2+3*x+5% ent to ' x2+3*x+5' >>diff x2+3 x+5 spaces break the argument into separate strings ??Error using==>diff Too manyinput arguments 无变量的符号表达式称作符号常量。符号常量常常与整数很难区别,例如 > f-symop((3 4-2)/5+1)% reduce a symbolic constant to its simplest form 3 > isstr(f)% is f a string?(I=yes, 0=no) 在这个例子中,代表符号常数3:而不是数字3。正如第六章所阐述的, MATLAB是以 字符ASCI码形式来存储字符串的。所以,如果对字符串进行数字运算,则在运算中,采用各 字符串的ASCI码值。因为数字51是字符3的ASCI表示,所以f加1在数值上不能得到期望的 结果 >>f+1 ans- 符号变量 当字符表达式中含有多于一个的变量时,只有一个变量是独立变量。如果不告诉 MATLAB哪一个变量是独立变量, MATLA将基于以下规则选择一个 在符号表达式中缺省的独立变量是唯一的,除去和j的小写字母,不是单词的一部分。如 果没有这种字母,就选择x作为独立变量。如字符不是唯一的,就选择在字母顺序中最接 近x的字母。如果有相连的字母,就选择在字母表中较后的那一个

M以三种方式定义: 数字型(如果a、b、c、d已预先确定)、字符串型或符号矩阵型。许多符号 函数非常巧妙能够自动将字符转变为符号表达式。但在某些情况下,尤其是建立符号数组时, 必须用函数sym,特别地将字符串变为符号表达式。隐含形式,例如diff cos(x),对于那些不需 要参考先前结果的简单任务,最有用。但是最简单形式(无引号)要求一个参量,它是一个单字 符的字符串、不包含插入的空格。 >> diff x^2+3*x+5 % the argument is equivalent to ' x^2+3*x+5 ' ans= 2*x+3 >> diff x^2 + 3*x + 5 % spaces break the argument into separate strings ???Error using==>diff Too manyinput arguments 无变量的符号表达式称作符号常量。符号常量常常与整数很难区别,例如 >> f=symop( ' (3*4-2)/5+1 ' ) % reduce a symbolic constant to its simplest form f = 3 >> isstr(f) % is f a string? (1=yes, 0=no) ans= 1 在这个例子中,f代表符号常数 ' 3 ' ;而不是数字3。正如第六章所阐述的,MATLAB是以 字符ASCII码形式来存储字符串的。所以,如果对字符串进行数字运算,则在运算中,采用各 字符串的ASCII码值。因为数字51是字符 ' 3 ' 的ASCII表示,所以f加1在数值上不能得到期望的 结果 >> f+1 ans= 52 符号变量 当字符表达式中含有多于一个的变量时,只有一个变量是独立变量。如果不告诉 MATLAB哪一个变量是独立变量,MATLAB将基于以下规则选择一个: 在符号表达式中缺省的独立变量是唯一的,除去i和j的小写字母,不是单词的一部分。如 果没有这种字母,就选择x作为独立变量。如字符不是唯一的,就选择在字母顺序中最接 近x的字母。如果有相连的字母,就选择在字母表中较后的那一个

缺省的独立变量,有时称作自由变量,在表达式’1(5+cos(x)中是'x;在’3y+z中 是’y';在'a+sin(0’是’t'。在表式'sin(pi/4)-cos(3/5)'中自由符号变量是'x’,因为此式 是一个符号常数无符号变量。可利用函数 symvar询问 MATLA B在符号表达式中哪一个变量它 认为是独立变量 >>symvar(a*x+y*)% find the default symbolic variable > symvar(at+s/(u+3))% u is the closest tox > symvar( 'sin(omega))%omega is not a singlee character >>symvar(3*1+4*j)% i and j are equel to sqrt(-1) >>symvar(y+3*s,'t)% find the variable closest to t rather than x 如果利用规则 svmvar不能找到一个缺省独立变量,它便假定无独立变量并返回x。这一结 论对含有由多个字母组成的变量,如: alpha或s2的表达式,或不含变量的符号常数均成立。如 果需要,绝大多数命令都使用用户选项以指定独立变量。 >>diff(xn)% differentiate with respect to the default variable 'x Xn*n/x >diff('xn,'n)% differentiate x n with respect to'n >>diff( ' sin(omega))% differentiate using the default variables(x)

缺省的独立变量,有时称作自由变量,在表达式 ' 1/(5+cos(x)) ' 中是 ' x ' ;在 ' 3*y+z ' 中 是 ' y ' ;在 ' a+sin(t) ' 是 ' t ' 。在表式 ' sin(pi/4)-cos(3/5) ' 中自由符号变量是 ' x ' ,因为此式 是一个符号常数无符号变量。可利用函数symvar询问MATLAB在符号表达式中哪一个变量它 认为是独立变量。 >> symvar( ' a*x+y*) % find the default symbolic variable ans= x >> symvar( ' a*t+s/(u+3) ' ) % u is the closest to ' x ' ans= u >> symvar( ' sin(omega) ' ) % ' omega ' is not a singlee character。 ans= x >> symvar( ' 3*i+4*j ' ) % i and j are equel to sqrt(-1) ans= x >> symvar( ' y+3*s ' , ' t ' ) % find the variable closest to t rather than x ans= s 如果利用规则symvar不能找到一个缺省独立变量,它便假定无独立变量并返回x。这一结 论对含有由多个字母组成的变量,如:alpha或s2的表达式,或不含变量的符号常数均成立。如 果需要,绝大多数命令都使用用户选项以指定独立变量。 >> diff( ' x^n ' ) % differentiate with respect to the default variable ' x ' ans= x^n*n/x >> diff( ' x^n ' , ' n ' ) % differentiate x^n with respect to ' n ' ans= x^n*log(x) >> diff( ' sin(omega) ' ) % differentiate using the default variables (x) ans= 0

meg omega’)% fy the independent variable 22.3符号表达式运算 旦创建了一个符号表达式,或许想以某些方式改变它:也许希望提取表达式的一部分, 合并两个表达式或求得表达的数值。有许多符号工具可以帮助完成这些任务 所有符号函数(很少特殊例外的情况,讨论于后)作用到符号表达式和符号数组,并返回符 号表达式或数组。其结果有时可能看起来象一个数字,但事实上它是一个内部用字符串表示的 个符号表达式。正如我们前面所讨论的,可以运用 MATLAB函数istr来找出像似数字的表达 式是否真是一个整数或是一个字符串。 提取分子和分母 如果表达式是一个有理分式(两个多项式之比),或是可以展开为有理分式(包括哪些分母为 1的分式),可利用 numden来提取分子或分母。例如,给定如下的表达式: ,在必要时,mmn将表达式合并、有理化并返回所得的分子和分母。进行这项运算的 LAB语句是 >>m=x2 %create a simple expression >>n, d]=numden(m)% extract the numerator and denominator >>f='a*x2/(b-x'% create a rational expression a*x^2/(b-x)

>> diff( ' sin(omega) ' , ' omega ' ) % specify the independent variable ans= cos(omega) 22.3 符号表达式运算 一旦创建了一个符号表达式,或许想以某些方式改变它;也许希望提取表达式的一部分, 合并两个表达式或求得表达的数值。有许多符号工具可以帮助完成这些任务。 所有符号函数(很少特殊例外的情况,讨论于后)作用到符号表达式和符号数组,并返回符 号表达式或数组。其结果有时可能看起来象一个数字,但事实上它是一个内部用字符串表示的 一个符号表达式。正如我们前面所讨论的,可以运用MATLAB函数isstr来找出像似数字的表达 式是否真是一个整数或是一个字符串。 提取分子和分母 如果表达式是一个有理分式(两个多项式之比),或是可以展开为有理分式(包括哪些分母为 1的分式),可利用numden来提取分子或分母。例如,给定如下的表达式: m x f ax b x g x x h x x x x k x x x = = − = + − = + − + − = + +           2 2 2 2 2 3 2 2 3 3 5 3 2 1 3 1 3 2 2 1 3 4 3 4 在必要时,numden将表达式合并、有理化并返回所得的分子和分母。进行这项运算的 MATLAB语句是: >> m= ' x^2 ' % create a simple expression m= x^2 >> [n,d]=numden(m) % extract the numerator and denominator n= x^2 d= 1 >> f= ' a*x^2/(b-x) ' % create a rational expression f= a*x^2/(b-x)

>>[n, d]=numden(f% extract the numerator and denominator 前二个表达式得到期望结果 >>g=3/2 x2+2/3 x-3/5% rationalize and extract the parts 3/2*x^2+2/3*x-3/5 >>[n, d]=numden(g 45*x^2+20*x-18 >>h='(x2+3)(2*x-1)+3*X/(x-1)% the sum of rational polynomials (x^2+3)/(2*x-1)+3*x/(x-1) >>n, d]=numden(h)% rationalize and extract x^3+5*x^2-3 在提取各部分之前,这二个表达式g和h被有理化,并变换成具有分子和分母的一个简单表 达式 >>k=sym( '3/2,(2*x+1)/3: 4/x2, 3*x+4])% try a symbolic array 3/2,(2*x+1)/3] [4Xx^2,3*x+4]

>> [n,d]=numden(f) % extract the numerator and denominator n= a*x^2 d= b-x 前二个表达式得到期望结果。 >> g= ' 3/2*x^2+2/3*x-3/5 ' % rationalize and extract the parts g= 3/2*x^2+2/3*x-3/5 >> [n,d]=numden(g) n= 45*x^2+20*x-18 d= 30 >> h= ' (x^2+3)/(2*x-1)+3*x/(x-1) ' % the sum of rational polynomials h= (x^2+3)/(2*x-1)+3*x/(x-1) >> [n,d]=numden(h) % rationalize and extract n= x^3+5*x^2-3 d= (2*x-1)*(x-1) 在提取各部分之前,这二个表达式g和h被有理化,并变换成具有分子和分母的一个简单表 达式。 >> k=sym( ' [3/2,(2*x+1)/3;4/x^2,3*x+4] ' ) % try a symbolic array k= [ 3/2,(2*x+1)/3] [4/x^2, 3*x+4] >> [n,d]=numden(k) n= [3, 2*x+1] [4, 3*x+4] d=

这个表达式k是符号数组, numden返回两个新数组n和d,其中n是分子数组,d是分母数 组。如果采用s= numden(n形式, numden仅把分子返回到变量s中 标准代数运算 很多标准的代数运算可以在符号表达式上执行,函数 symadd、 svmsub、 symlnul和 sy mdiv 为加、减、乘、除两个表达式, sympow将一个表达式上升为另一个表达式的幂次。例如:给 定两个函数 >>f2*x2+3*x-5% define the symbolic expression >>symadd(f, g)% find an expression for f+g 3*x^2+2*x+2 >> symsub(f, g)% find an expression for f-g ans- >> sammul(f, g)% find an expression for fg ans- (2*x^2+3*x-5)(x^2-x+7) ans- (2*x^2+3*x-5)^3*

[ 2,3] [x^2,1] 这个表达式k是符号数组,numden返回两个新数组n和d,其中n是分子数组,d是分母数 组。如果采用s=numden(f)形式,numden仅把分子返回到变量s中。 标准代数运算 很多标准的代数运算可以在符号表达式上执行,函数symadd、symsub、symlnul和symdiv 为加、减、乘、除两个表达式,sympow将一个表达式上升为另一个表达式的幂次。例如: 给 定两个函数 f = 2x + 3x −5 g = x − x + 7 2 2 >> f= ' 2*x^2+3*x-5 ' % define the symbolic expression f= 2*x^2+3*x-5 >> g= ' x^2-x+7 ' g= x^2-x+7 >> symadd(f,g) % find an expression for f+g ans= 3*x^2+2*x+2 >> symsub(f,g) % find an expression for f-g ans= x^2+4*x-12 >> symmul(f,g) % find an expression for f*g ans= (2*x^2+3*x-5)*(x^2-x+7) >> symdiv(f,g) % find an expression for f/g ans= (2*x^2+3*x-5)/(x^2-x+7) >> sympow(f, ' 3*x ' ) % find an expression for f 3* ans= (2*x^2+3*x-5)^3**

另一个通用函数可让用户用其它的符号变量、表达式和算子创建新的表达式。 symp取由 逗号隔开的、多至16个参量。各个参量可为符号表达式、数值或算子(+、'-∵、/、 (或)),然后 symon可将参量联接起来,返回最后所得的表达式 >>f=cos(x)' %create an expression >>g=sin(2*x)% create another expression sin(2*x) >> symp(, /,g,'',3)%combine them ans- cos(x)/sin(2*x)+3 所有这些运算也同样用数组参量进行 高级运算 MATLAB具有对符号表达式执行更高级运算的功能。函数 compose把fx)和g(x)复合成 fgxy)。函数 inverse求表达式的函数逆,而函数 symsum求表达式的符号和 给定表达式 g=sin(x) h k=sin(v) >>f1/(1+x2):% create the four expression >>gsin(x); >>h='1/(1+u^2)'; >>k sin(v)': compose(f, g)% find for f(g(x)) 1/(1+sin(x)2) compose(g, f)% find an expression for g(f(x))

另一个通用函数可让用户用其它的符号变量、表达式和算子创建新的表达式。symop取由 逗号隔开的、多至16个参量。各个参量可为符号表达式、数值或算子(' + '、' - '、'*'、' / '、' ^ '、' ( '或' ) '),然后symop可将参量联接起来,返回最后所得的表达式. >> f= ' cos(x) ' % create an expression f= cos(x) >> g= ' sin(2*x) ' % create another expression g= sin(2*x) >> symop(f,'/ ',g,'+',3) % combine them ans= cos(x)/sin(2*x)+3 所有这些运算也同样用数组参量进行。 高级运算 MATLAB具有对符号表达式执行更高级运算的功能。函数compose把f(x)和g(x)复合成 f(g(x))。函数finverse求表达式的函数逆,而函数symsum求表达式的符号和。 给定表达式 f x g x h u = + = = + 1 1 1 1 2 2 sin( ) k = sin(v) >> f= ' 1/(1+x^2) ' ; % create the four expression >> g= ' sin(x) ' ; >> h= ' 1/(1+u^2) ' ; >> k=' sin(v) ' ; >> compose(f,g) % find an expression for f(g(x)) ans= 1/(1+sin(x)^2) >> compose(g,f) % find an expression for g(f(x)) ans=

compose也可用于含有不同独立变量的函数表达式。 >>compose(h, k,'u',v,)% given h(u),k(v), find(k(v)) ans- l/(1+sin(v)^2) 表达式譬如x)的函数逆g(x),满足g((x)=x。例如,ex的函数逆是lmxy,因为hm(ex Sm(y的函数逆是arsn(y,图数、1 的函数逆是 arcsin(-)。函数fncr回表达式的函数 逆。如果解不是唯一就给出警告。 > inverse(1/x)% the inverse of 1/x is 1/x since ' 1/(1/x=x ans- > inverse( x2 ) g(x2)=x has more than one solution ans- x^(1/2) > inverse(a*x+b)% find the solution to 'g(f(x)=x >>inverse(a*b+c*d-az),a)% find the solution to 'g(f(a))=a ans- -(*d-a)/(b-z) smm函数求表达式的符号和有四种形式:smun(返回∑f(x):smm(,'s')返l ∑f(s), samsun,a,b返回∑∫(x):最普通的形式 samsun(r,s',a,b返回 让我们试一试∑x2,它应返回:xxx >>symsum(,)

sin(1/(1+x^2)) compose也可用于含有不同独立变量的函数表达式。 >> compose(h,k,'u','v') % given h(u),k(v),find(k(v)) ans= 1/(1+sin(v)^2) 表达式譬如f(x)的函数逆g(x),满足g(f(x))=x。例如, e x 的函数逆是ln(x),因为ln( e x )=x。 sin(x)的函数逆是arcsin(x),函数 1 tan(x) 的函数逆是arcsin ( ) 1 x 。函数fincerse返回表达式的函数 逆。如果解不是唯一就给出警告。 >> finverse( ' 1/x) % the inverse of 1/x is 1/x since ' 1/(1/x)=x ' ans= 1/x >> finverse( ' x^2 ' ) % g(x^2)=x has more than one solution Warning: finverse(x^2) is not unique ans= x^(1/2) >> finverse( ' a*x+b ' ) % find the solution to ' g(f(x))=x ' ans= -(b-x)/a >> finverse( ' a*b+c*d-a*z ' ), ' a ' ) % find the solution to ' g(f(a))=a ' ans= -(c*d-a)/(b-z) symsun函数求表达式的符号和有四种形式:symsun(f)返回 f x x ( ) 0 −1  ;symsum(f, ' s ' )返回 f s s ( ) 0 −1  ,symsun(f, a,b) 返回 f x a b  ( ) ;最普通的形式symsun(f, ' s ' ,a,b)返回 f s a b  ( ) 。 让我们试一试 x x 2 0 −1  ,它应返回: x x x 3 2 3 2 6 − + 。 >> symsum('x^2')

1/3*x^3-1/2*x^2+1/6*x ∑(2n-12又怎么样呢它应返回m2n-(2n+1。 3 11/3°n+8/3-4*(n+1)^2+4/3°(n+1)^3 > factor(ans)% change the form( we will revisit factor later on) ans- 1/3*n*(2帝n-1)*(2*n+1) 最后让我们试一试∑1 其返回应是。 >> systm(1/2*n-1)^2",1,inf 变换函数 本节提出许多工具,将符号表达式变换成数值或反之。有极少数的符号函数可返回数值。 然而请注意,某些符号函数能自动地将一个数字变换成它的符号表达式,如果该数字是函数许 多参量中的一个。 函数sym可获取一个数字参量并将其转换为符号表达式。函数 numeric的功能正好相反, 它把一个符号常数(无变量符号表达式)变换为一个数值 > phi=(1+sqrt(5))/2% the ' goldenratio phi- (1+sqrt(5))/2% convert to a numeric value > numeric(phi) 1.6180 正如第六章所介绍,函数eva将字符串传给 MATLAB以便计算。所以eva是另一个可用于 把符号常数变换为数字或计算表达式的函数

ans= 1/3*x^3-1/2* x^2+1/6*x (2 1) 2 1 n n  − 又怎么样呢?它应返回 n(2n 1)(2n 1) 3 − + 。 >> sym('(2*n-1)^2',1,'n') ans= 11/3*n+8/3-4*(n+1)^2+4/3*(n+1)^3 >> factor(ans) % change the form ( we will revisit 'factor' later on) ans= 1/3*n*(2*n-1)*(2*n+1) 最后让我们试一试 1 2 1 2 1 ( n − )   ,其返回应是  2 8 。 >> symsum( ' 1/(2*n-1)^2 ' ,1,inf) ans= 1/8*pi^2 变换函数 本节提出许多工具,将符号表达式变换成数值或反之。有极少数的符号函数可返回数值。 然而请注意,某些符号函数能自动地将一个数字变换成它的符号表达式,如果该数字是函数许 多参量中的一个。 函数sym可获取一个数字参量并将其转换为符号表达式。函数numneric的功能正好相反, 它把一个符号常数(无变量符号表达式)变换为一个数值。 >> phi=' (1+sqrt(5))/2 ' % the ' golden ' ratio phi= (1+sqrt(5))/2 % convert to a numeric value >> numeric(phi) ans= 1.6180 正如第六章所介绍,函数eval将字符串传给MATLAB以便计算。所以eval是另一个可用于 把符号常数变换为数字或计算表达式的函数

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