收藏 分销(赏)

符号计算new.doc

上传人:a199****6536 文档编号:2646343 上传时间:2024-06-03 格式:DOC 页数:16 大小:306KB
下载 相关 举报
符号计算new.doc_第1页
第1页 / 共16页
符号计算new.doc_第2页
第2页 / 共16页
符号计算new.doc_第3页
第3页 / 共16页
符号计算new.doc_第4页
第4页 / 共16页
符号计算new.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、第六章 符号计算6.1 符号对象的创建6.1.1 符号对象的生成符号计算工具箱定义了一种新的MATLAB数据类型,叫做符号对象。在MATLAB内部,符号对象的数据存储格式是符号字符串。sym函数用于创建符号对象,包括符号常量、符号变量和符号表达式。【调用格式】f = sym(arg)把数值、字符串或者表达式arg转换为符号对象ff = sym(argn, flagn)把数值或者数值表达式argn转换为flagn格式的符号对象f = sym(argv, flagv)把字符串argv按照flagv的格式转换为符号对象syms argv1 argv2 .定义argv1、argv2等为符号对象syms

2、 arg1 arg2 . flagv定义arg1、arg2等为flagv格式的符号对象【说明】1. 对于数值或者数值表达式argn,flagn可以取以下值:d最接近的十进制浮点精度表示e带估计误差的有理表示f十六进制浮点数表示r最接近的有理表示,MATLAB的缺省表示方法2. 对于字符串变量名argv,flagv可以取以下“限定”项:positive“正实数”符号变量real“实数”符号变量unreal“非实数”符号变量3. syms是sym函数的简化书写方式,各符号对象之间只能用空格分开。6.1.2 符号常量用sym函数可以定义符号常量对象,包括符号标量对象和符号常量数组对象,定义符号常量对

3、象的同时也可以指定数值常量的表示方法。例6.1.1 符号常量的定义a=1/3, sqrt(5), pi+sqrt(2);%定义数值数组s1=sym(1/3, sqrt(5), pi+sqrt(2), d);%用十进制方式表示符号常量s2=sym(1/3, sqrt(5), pi+sqrt(2);%用最接近的有理方式表示符号常量s3=sym(1/3, sqrt(5), pi+sqrt(2);%绝对准确的符号数值表示,输入为字符串6.1.3 符号变量与符号表达式1. 定义符号变量和符号表达式例6.1.2 符号变量和符号表达式的定义 x = sym(x, real);%定义实数符号变量x sym y

4、 real;%定义实数符号变量y z=x+i*y;%定义符号表达式对象z conj(z)%符号变量求共轭复转置f = z*conj(z);%符号表达式对象 f=simple(f)%符号表达式对象化简f = x2+y2例6.1.3 符号变量与符号矩阵 syms a b c;%定义符号变量a,b,c A=a,b,c; b,c,a; c,a,b ;%定义符号矩阵A sum(A(:,1);%求矩阵A第一列的元素的和 sum(A(1,:)=sum(A(:,2)%符号对象的关系运算 det(A);%矩阵求行列式 syms alpha beta;%定义符号变量alpha和beta A(1,3)=beta;%

5、矩阵元素赋值 A=subs(A,a,alpha)%符号表达式的替换操作,矩阵A中的a用alpha代替2. 符号表达式中自变量的确定在数学表达式或者数学函数中,一般都含有自变量。为了便于进行数学运算,通常要显示的指定表达式中的自变量,如果不指定自变量,MATLAB会根据上下文关系,识别表达式中默认的自变量(独立自由的符号变量)。识别表达式中自变量的基本原则是:按照字母表中靠近小写字母x的顺序识别,最靠近字母x的变量被第一个识别为自变量。MATLAB还提供了自变量识别函数findsym。【调用格式】findsym(exp)识别表达式exp中所有的自由符号变量findsym(exp, n)识别表达式

6、exp中最靠近x的n个独立自由变量【说明】1. 表达式可以是符号矩阵,此时变量识别是对整个矩阵进行的。2. 函数识别的是“独立的”“自由的”符号变量,符号常量或者非独立的符号变量无法被识别。3. 识别次序是按照靠近x的远近进行的,区分大小写,总认为大写字母距离x的距离大于所有小写字母。例6.1.4 符号表达式中自变量的识别 syms a b x X Y;%定义符号变量 k=sym(2.5); z=sym(c*sqrt(alpha)+y*sin(beta);%定义符号表达式对象(变量)z exp=a*z*X+k*Y+bx%定义符号表达式变量expexp = a*(c*alpha(1/2)+y*s

7、in(beta)*X+5/2*Y+bx? k=sym(2.5);%定义符号常量k,无法被识别 findsym(exp)%自动识别所有自由独立变量,k为常量,z为非独立findsym(exp,3)%识别exp中前3个靠近x的独立自由变量6.1.4符号数学函数在MATLAB中,可以定义表示数学函数的符号对象,既能建立具有详细运算关系的函数,又能建立抽象数学函数。定义符号数学函数有2种方法:1. 用符号表达式2. 用函数M文件(在函数M文件中用符号变量作为输入变量)例6.1.5 用符号表达式定义符号数学函数 syms x y z%定义函数自变量 r = sqrt(x2 + y2 + z2);%定义函

8、数r t = atan(y/x);%定义函数t f = sin(x*y)/(x*y);%定义函数f例6.1.6 用函数M文件来定义符号数学函数,下列代码定义了函数。function z = sinc(x)%SINC 符号函数% sin(x)/x 数学计算公式% 接受符号变量作为输入变量if isequal(x,sym(0)%如果自变量值为符号0,则函数值为1 z = 1;else z = sin(x)/x;end例6.1.7 建立抽象的符号数学函数 f = sym(f(x)%建立抽象函数f(x) syms x h; df = (subs(f, x, x+h) -f)/h%建立抽象函数df,表示

9、f(x)的导数表达式df = (f(x+h)-f(x)/h g=subs(df, f, sin)%建立sin(x)的导数函数的定义 g = (sin)(x+h)-(sin)(x)/h limit(g,h,0)%根据导数定义,求sin(x)的导数 ans = cos(x)6.1.5 符号数值计算的精度数值计算受计算机字长的限制,每次数值计算都会产生截断误差。在MATLAB中,数值计算的精度大约为16位数字。对于符号计算来说,只要能获得解析结果,其计算结果是绝对准确的,不包含任何误差。但是当将符号数值对象转换成数值数据时,就会产生误差,涉及到转换精度问题。MATLAB的符号计算工具箱提供3种算术运

10、算:1. 数值运算(16位数字精度)2. 符号运算(绝对准确)3. 任意精度运算(用户指定运算精度)有关符号运算精度的函数及其调用方法如下:【调用格式】n = digits获取当前采用的数值计算精度digits(n)设置数值计算精度的有效位为n,除非再次设定,否则始终有效xs = vpa(x)在当前精度下,给出变量x的数值符号结果xsxs = vpa(x,n)在n位精度下,给出变量x的数值符号结果xs【说明】1. 相对精度位数n表示有效数字位数。2. x可以是符号常量,也可以是数值对象。3. 返回值xs是符号结果,一定是符号对象。例6.1.8 符号数值计算精度 z = 1.0e-16 x =

11、1.0e+2 digits(14)%设置数值运算精度为14位 y = vpa(x*z+1)%在14位精度下计算y6.1.6 符号对象与其他数据类型之间的转换数值、字符和符号是MATLAB中3种不同的数据类型。MATLAB提供了不同数据类型之间的转换指令。表6.1.1介绍了MATLAB中实现符号对象到数值、字符串之间的转换指令。表6.1.1 符号对象和其他数据类型之间的转换指令表函数名称功能函数名称功能char将符号对象转换为字符串uint32将符号对象转换为32位无符号整数double将符号对象转换为双精度数值uint64将符号对象转换为64位无符号整数int8将符号对象转换为8位整数sing

12、le将符号对象转换为单精度数值int16将符号对象转换为16位整数sym2poly将符号多项式转换为数值系数向量int32将符号对象转换为32位整数poly2sym多项式系数向量转换为符号多项式int64将符号对象转换为64位整数vpa转换为符号运算结果uint8将符号对象转换为8位无符号整数sym转为为符号对象uint16将符号对象转换为16位无符号整数pretty转换为易读的显示方式例6.1.9 多项式和符号对象之间的转换 sym x; f = x4-3*x2+3-5*x%定义符号多项式对象 p1=sym2poly(f)%将符号多项式对象转换为数值系数向量p1 = 1 0 -3 -5 3

13、p1s=poly2str(p1, y);%将多项式数值系数向量转换为多项式字符串格式 f2=poly2sym(p1);%将多项式数值系数向量转换为多项式符号对象 pretty(f2, s);%将多项式符号对象显示为易读格式6.2 符号对象的代数运算6.2.1 符号对象的运算1.符号对象的基本代数运算符号对象的基本代数运算和普通数值变量一样,可以使用算术运算符、关系运算符(仅能使用和=),其运算符的定义和数值运算相同。例6.2.1 符号矩阵的基本代数运算syms t;G = cos(t), sin(t); -sin(t), cos(t);A = G*G;%符号矩阵的乘法A = simple(A)

14、;%化简为最简表达式I = G. *G;%符号数组乘法I = simple(I);%化简为最简表达式I = 1, 0 0, 1F= cos(t), -sin(t); sin(t), cos(t);(F+G)/2;%符号矩阵加法和符号矩阵与标量的除法2.符号对象的函数运算数值计算使用的函数基本上也可以用于符号计算,包括三角函数(atan2除外)、指数函数、对数函数(log2、log10除外)、复数函数(angle除外)、线性代数函数和矩阵函数。例6.2.2 符号矩阵的函数运算H = hilb(3);%生成33的希尔伯特数值矩阵H = sym(H);%将数值矩阵转为符号常数矩阵inv(H);%符号

15、矩阵求逆det(H)%符号矩阵求行列式的值ans = 1/2160syms sH(1,1) = s;%将符号元素赋值为符号变量s,使矩阵变为非奇异矩阵Z = det(H)%带有符号变量的符号矩阵求行列式的值Z = 1/240*s-1/270sol = solve(Z)%求行列式的根sol = 8/9H = subs(H,s,sol);%将矩阵行列式的根代入符号矩阵,使矩阵变为奇异矩阵det(H);%奇异矩阵的行列式值inv(H);%奇异矩阵求逆 eig(H);%符号矩阵的特征值6.2.2符号表达式分解、展开与化简MATLAB提供了符号表达式的因式分解、展开和化简函数。【调用格式】collect

16、(expr, v)合并符号表达式expr中符号对象v的同类项系数expand(expr)对表达式expr进行多项式、三角函数、指数对数等函数展开factor(expr)对符号表达式expr做因式分解horner(expr)把多项式expr分解为嵌套形式n,d=numden(expr)提取表达式最小分母公因子d和相应的分子多项式nsimplify(expr)用多种恒定变换对表达式expr进行综合化简simple(expr)把expr化简为最简表达式【说明】上述表达式expr可以是符号矩阵,此时函数对符号矩阵的每个元素进行相应操作。例6.2.3 符号表达式的展开和分解f=sym (x3-6*x2+

17、10*x-5)+(x-1);%定义原始的符号表达式 fc=collect(f);%符号表达式合并同类项 ff=factor(f);%符号表达式因式分解 fh=horner(f);%符号表达式的嵌套分解 fe=expand(fh);%符号表达式的展开 factor(1025);%正整数的质数分解,10255541例6.2.4 写出矩阵各元素的分子多项式和分母多项式 syms x; A=1/4, 1/(2*x-1)+1/(x+1); 2/(x2-1), 3*x+2; n,d=numden(A);%提取表达式最小分母公因子d和相应的分子多项式n pretty(simplify(n./d);例6.2.

18、5 化简解:用simplify进行多次化简也得不到最简结果,用simple化简可以得到最简结果 syms x; f= (1+3/x+3/x2+1/x3)(1/3); sfy1=simplify(f); sfy2=simplify(sfy1); sp1=simple(f); sp2=simple(sp1) sp2 = 1+1/x6.2.3符号表达式的置换操作MATLAB提供了子表达式的置换函数。通常在这几种情况下使用子表达式的置换函数:第一,符号计算结果中多次出现同一个表达式,为了阅读方便,可以把这个表达式用符号变量来置换;第二,可以用符号常量对象置换表达式中的自变量,实现表达式求值;第三,通过

19、置换某些表达式可以生成新的表达式。1.自动置换函数【调用格式】RS,vn=subexpr(S,vn)用符号变量vn置换S中的子表达式,并重写S为RS。RS,vn=subexpr(S, vn)例6.2.6 对一元三次方程的符号解进行子表达式的置换。 t = solve(a*x3+b*x2+c*x+d = 0); r,s = subexpr(t,s)2.通用置换函数【调用格式】RS=subs(S, old, new)用new置换S中old,生成RS【说明】1. old是被替换的子表达式,可以是符号变量,也可以是字符串表达式。2. new是替换old的值,可以是符号常量、符号变量、符号表达式,也可以

20、是数值。3. 如果要替换多个子表达式,则old和new为细胞数组。例6.2.7 通用置换函数。 syms a x; f=a*cos(x)+1; f1=subs(f, cos(x), sym(y);%用符号变量替换 f2=subs(f, a, x, 3, sym(pi/4)%用符号常量替换, f3=subs(f, a, x, 3, pi/4);%用双精度数替换 f4=subs(f, a, x, 0:3, 0:pi/3:pi);%用双精度数组替换 f5=subs(f, x , sym(exp(-t)%用符号表达式替换 f5 = a*cos(exp(-t)+16.2.4 符号函数的反函数【调用格式】

21、g = finverse(f, v)求指定自变量为v的函数f(v)的反函数g(v)g = finverse(f)求函数f对缺省的自变量(由findsym确定)的反函数g例6.2.8 求的反函数。 syms x; f=(x2+1)(1/2); g=finverse(f);6.2.5符号函数的复合函数【调用格式】fg = compose(f, g, x, y, z) 对和求复合函数fg = compose(f,g)对和求复合函数,自变量由findsym确定例6.2.9 求复合函数。 syms x y z t u; f = 1/(1 + x2); g = sin(y); h = xt; p = ex

22、p(-y/u); compose(f,g); compose(f, g, t); compose(h, g ,x, z) ans =sin(z)t compose(h, g, t, z); compose(h, p, x, y, z); compose(h, p, t, u, z)ans =xexp(-y/z)6.3 符号微积分6.3.1 符号微分和雅可比矩阵求导数、高阶导数、偏导数是常见的数学运算,MATLAB提供这方面的符号微分函数。【调用格式】df= diff(f, v, n)求,即求函数对的n阶导数R = jacobian(f,v)求多元向量函数的雅可比矩阵,即例6.3.1 ,求、和

23、syms a t x; f=a, t2; t*sin(x), log(x); dfx=diff(f,x)%矩阵f对x的一阶导数,也可以写为diff(f)dfx = 0, 0 t*cos(x), 1/x df2t=diff(f,t,2);%矩阵f对t的二阶导数 dfxt=diff(diff(f,x),t)dfxt = 0, 0 cos(x), 0例6.3.2 ,求其雅可比矩阵 syms x y z; f = x*y*z; y; x+z; v=x,y,z; R = jacobian(f,v)R = y*z, x*z, x*y 0, 1, 0 1, 0, 16.3.2 函数极限函数的极限是通过导数来

24、定义的,limit函数用于求函数极限。【调用格式】limit(f, x, a) 求limit(f, x, a, right) 求limit(f, x, a, left) 求例6.3.3求极限运算。 limit(sin(x)/x,x,0); limit(1/x,x,0,right); limit(1/x,x,0,left); limit(sin(x+h)-sin(x)/h,h,0)%sin(x)导函数的定义ans =cos(x) v = (1 + a/x)x, exp(-x); limit(v,x,inf)ans = exp(a), 06.3.3 符号积分int函数用于求定积分、不定积分和多重积

25、分的符号解。【调用格式】S= int(f, v)求不定积分,符号计算结果不带积分常数S= int(f, v, a, b)求定积分rsums(f, ra, rb)用Riemann和求符号函数在ra,rb区间上的近似积分【说明】1. 当f为矩阵时,将对矩阵的每个元素做积分运算。2. v缺省时,积分对findsym确认的变量进行。3. 积分上下限a和b可以是任何数值和表达式4. rsums函数绘制求积分的曲线,根据用户的选择来确定最终的近似积分值例6.3.4 计算 syms a t; f=exp(t), t4; 1, sin(a*t); int(f,t)ans = exp(t), 1/5*t5 t,

26、 -1/a*cos(a*t)例6.3.5 求多重积分 syms x y z; V=int(int(int(x2+y2+z2, z, sqrt(x*y), x*y), y, sqrt(x), x2), x, 1, 2)V =-6072064/348075*2(1/2)+14912/4641*2(1/4)+64/225*2(3/4)+51643291/795600 vpa(V)ans =44.5400121642878625743380767590246.3.4 符号序列求和symsum函数实现符号序列的求和运算。【调用格式】s= symsum(f, v, a, b)求,a和b为整数,b可以取无穷

27、大 例6.3.6 计算和 syms t k x; f1=t,k2; f2=xk/sym(k!); simple(symsum(f1, t, 0, t)ans = 1/2*t*(t+1), (t+1)*k2 simple(symsum(f2 ,k, 0, inf) simplify: exp(x)6.4 符号方程求解6.4.1 符号代数方程组的解代数方程包括线性、非线性和超越方程等,solve函数用于符号代数方程求解。【调用格式】g = solve(eq1, eq2 ,., eqn, var1, var2 ,., varn)g = solve(exp1, exp2 ,., expn, var1,

28、 var2 ,., varn)【说明】1. eq1, eq2 ,., eqn是字符串表达式的方程,或者是字符串表达式,如果它们是不含等号的字符串表达式,则相当于方程eqi02. var1, var2 ,., varn是用字符串表示的方程中的变量名3. exp1, exp2 ,., expn只能是符号表达式,不能是带有等号的表达式方程。4. var1, var2 ,., varn只能是符号变量。5. 返回值g是一个结构体数据,方程组的解用g.var1,g.var2,. ,g.varn表示。6. 在无法求得解析解的时候,给出数值解。例6.4.1 方程组,分别求其关于和关于的解 s1=solve(u

29、*y+v*z2+w=0,y+z+v=0,y,z); %方程组关于的解,从结果来看方程有2组解s1 = y: 2x1 symz: 2x1 sym y=s1.y;z=s1.z;%方程组关于的解,2个方程3个变量,方程有无穷多组解,其中为自由变量 s2=solve(u*y+v*z2+w=0,y+z+v=0,u,v,w); u=s2.u; v=s2.v;w=s2.w;例6.4.2 求方程组的解解:【写法1】 s=solve(x*y2 +z2, y - z = 1, x2 - 5*x + 6); s.x;s.y;s.z【写法2】 syms x y z; s=solve(x*y2+z2, y-z-1, x

30、2-5*x+6); s=solve(x*y2+z2=0, y-z=1, x2-5*x+6=0); %错误写法,不能含有符号方程6.4.2符号微分方程【调用格式】g = dsolve(eq1, eq2 ,., eqn, cond1, cond2, . , condn, v)【说明】1. eq1, eq2 ,., eqn是微分方程,只能用字符串形式。微分方程是函数必须的输入变量。2. cond1, cond2 ,., condn是初始条件,也只能用字符串形式。3. v定义了微分方程的独立变量名(微分方程解中的自变量名),只能用字符串形式。默认的独立变量名为t。4. 微分方程字符串中,Dny表示y的

31、n阶导数,Dy表示y的一阶导数。5. 返回值g是一个结构体变量,要引用其成员才能得到方程的解。例6.4.3 求微分方程组的解。 s=dsolve(Dx=y,Dy=-x); x=s.xx =-C1*cos(t)+C2*sin(t) y=s.yy =C1*sin(t)+C2*cos(t)例6.5.4 求微分方程的解,初始条件为 s=dsolve(x*D2y-3*Dy=x2, y(0)=0, y(1)=1, x)s =4/3*x4-1/3*x3例6.5.5 求微分方程的解,初始条件为 y = dsolve(Dy)2 + y2 = 1,y(0) = 0) y =sin(t)-sin(t)6.5 积分变

32、换MATLAB的符号计算支持积分变换,对傅氏变换、拉氏变换和Z变换都提供了相应的符号计算函数。6.5.1 傅立叶变换及其反变换【调用格式】Fw = fourier(ft, t, w)求时域函数ft的傅氏变换Fwft = ifourier(Fw, w, t)求频域函数Fw的傅立叶反变换ft【说明】:ft是以时间t为自变量的时域函数;Fw是以角频率w为自变量的频域函数;输入参数t和w可以省略。例6.5.1 求函数的傅氏变换 syms t; ft= exp(-t2); Fw=fourier(ft)Fw =pi(1/2)*exp(-1/4*w2)例6.5.2 求函数的傅氏变换,其中是参数。 syms

33、t w x; ft=exp(-(t-x)*sym(heaviside(t-x) ); Fw= simple(fourier(ft, t, w) %fourier(ft) 和fourier(ft, t)都会产生歧义Fw =1/(1+i*w)/exp(i*x*w)【说明】MATLAB的Maple提供了一些特殊函数,这些函数不是MATLAB的函数,因此不能在MATLAB中直接调用,必须用函数syms生成特殊函数的对象才能被MATLAB的符号计算所识别。heaviside(t-a)Maple的单位阶跃函数dirac(t-a) Maple的单位脉冲函数k!Maple的k的阶乘函数sym(heavisid

34、e(t)将Maple的heaviside(t)函数变为符号函数对象6.5.2 拉普拉斯变换及其反变换【调用格式】Fs = laplace(ft, t, s)求时域函数ft的拉氏变换Fwft = ilaplace (Fs, s, t)求频域Fs的拉氏反变换ft【说明】:ft是以时间t为自变量的时域函数;Fs是以复频率s为自变量的频域函数;输入参数t和s可以省略。例6.5.3 求函数的拉氏变换。 syms t ; ft=exp(-5*t)*sin(3*t); Fs=laplace(ft)Fs =1/3/(1/9*(s+5)2+1)例6.5.4 控制系统的闭环传递函数为求初始条件为零时系统的单位阶跃

35、响应。 cs=sym(4/(s2+2*s+4)*laplace(sym(Heaviside(t); ft=ilaplace(cs)ft =1-exp(-t)*cos(3(1/2)*t)-1/3*3(1/2)*exp(-t)*sin(3(1/2)*t)6.5.3 Z变换及其反变换【调用格式】Fz = ztrans(fn, n, z)求时域序列fn的Z变换FzFn = iztrans (Fz, z, n)求频域序列Fz的Z反变换fn例6.5.5 某针对单位速度信号设计的最小拍控制系统的闭环脉冲传递函数为,求系统的单位速度响应,并观察其最小拍的拍数。 cz=sym(2/z-1/z2)*ztrans(

36、sym(t)%系统的单位速度响应的Z变换表达式cz =(2/z-1/z2)*z/(z-1)2 fn=iztrans(cz)%单位速度响应序列表达式fn =-charfcn1(n)+n subs(fn,n,0:10)%求0到10个采样周期内的响应值ans = 0 0 2 3 4 5 6 7 8 9 10从10个采样周期内的响应值可以看到:系统的单位速度响应从第2个采样周期后就完全跟随上了输入信号,因此跟踪拍数为2。6.6 Maple的应用6.6.1经典特殊函数的调用自从MathWorks公司购买了Waterloo Maple公司的符号计算工具Maple的使用权后,在MATLAB平台上集成了符号计

37、算工具箱(Symbolic Math Toolbox),利用MAPLE引擎提供了对符号计算的良好支持。Maple定义了许多工程上常用的“经典特殊函数”,可以通过mfun函数计算这些经典特殊函数的值。经典特殊函数的使用步骤如下:1.获取所需要的经典特殊函数名运行doc mfunlist即可获得经典特殊函数HTML格式的列表,表中详细的说明了各个函数的函数名以及它们的数学定义,我们可以选择所需的函数。也可以在命令窗口运行mfunlist命令来获取经典特殊函数的文本列表。2.通过mfun函数计算经典特殊函数的值【调用格式】Y = mfun(fun,v1,v2,v3,v4) 以输入变量v1,v2,v3

38、,v4调用经典特殊函数fun【说明】:函数名fun只能用字符串表示,输入变量可以是函数fun能够接收的合法数据。例6.6.1计算解:通过doc mfunlist可知Maple用函数表示上述积分形式 r = mfun(Shi,2)r =2.5016 int(sinh(t)/t,0,2) %int函数得到一个用经典特殊函数构成的表达式ans =Shi(2)6.6.2 Maple函数的调用可以用maple函数调用Maple提供的各种符号计算函数。【调用格式】R = maple(MapleStatement)运行Maple格式的语句MapleStatementR = maple(fun, v1, v2

39、, .)运行以v1等为输入变量的Maple中的fun函数【说明】:MapleStatement必须是复合Maple格式的语句,其格式和MATLAB语句有区别;返回值R是字符串,不是符号对象。例6.7.2 求递推方程的通解解:Maple中用rsolve来求递推方程的解,可以用2种方式调用rsolve Fk = maple(rsolve(f(n)=f(n-1)+n, f(k);) %第一种调用格式 Fk = maple(rsolve , f(n)=f(n-1)+n, f(k) %第二种调用格式Fk =f(0)-k-1+(k+1)*(1/2*k+1) Fks=simple(sym(Fk)Fks =

40、f(0)+1/2*k+1/2*k26.6.3 Maple工具的帮助系统MATLAB集成了符号计算工具Maple。Maple提供了大量的函数和指令用以实现符号计算,通过Maple的帮助系统获取这些函数的使用方法是非常重要的。Maple帮助系统是通过mhelp命令引出的,可以进行3类帮助信息的搜索。1. Maple帮助索引 【调用格式】 mhelp index 【说明】可以调出Maple帮助的分类目录,在命令窗口中显示Maple帮助的总目录,里面列出有哪些具体的分类帮助条目。2. Maple分类帮助【调用格式】 mhelp indexcategory 【说明】获取category分类中的帮助信息条

41、目。category是mhelp index命令列出的分类名称,通常包括function、expression、misc、packages、procedure、statement。例如:mhelp indexfunction会得到Maple的函数列表。3. Maple具体函数帮助【调用格式】 mhelp fun_name获取名字为fun_name的Maple函数的帮助信息小结符号运算具有强大的功能,其特点是:(1) 运算不受到计算误差累计的限制;(2) 可以列出完全封闭的解析解;(3) 计算指令简单,表达式符合数学上的描述方法;(4) 计算速度慢。符号运算对控制系统建模、系统分析与计算具有极为重要的意义,为复杂运算和公式推导提供有力的工具。通过本章的学习应该掌握如何创建、修改符号对象,符号运算功能和maple函数调用。习题61求函数的反函数。62求函数和的复合函数。63计算函数的导数。64 计算二重不定积分。65 计算的Z变换。66 计算指数函数,其中。67求解。 68求方程组的解。69求方

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服