finverse matlab,MATLAB60数学手册03.doc

MATLAB60数学手册03.doc

第3章 符号运算第3章 符号运算3.1 算术符号操作命令 +、-、*、.*、.、/、./、.、.功能 符号矩阵的算术操作用法如下:A+B、A-B 符号阵列的加法与减法。若A与B为同型阵列时,A+B、A-B分别对对应分量进行加减;若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行加减。A*B 符号矩阵乘法。A*B为线性代数中定义的矩阵乘法。按乘法定义要求必须有矩阵A的列数等于矩阵B的行数。即:若An*k*Bk*m=(aij)n*k.*(bij)k*m=Cn*m=(cij)n*m,则,i=1,2,n;j=1,2,m。或者至少有一个为标量时,方可进行乘法操作,否则将返回一出错信息。A.*B 符号数组的乘法。A.*B为按参量A与B对应的分量进行相乘。A与B必须为同型阵列,或至少有一个为标量。即:An*m.*Bn*m=(aij)n*m.*(bij)n*m=Cn*m=(cij)n*m,则cij= aij* bij,i=1,2,n;j=1,2,m。AB 矩阵的左除法。X=AB为符号线性方程组A*X=B的解。我们指出的是,AB近似地等于inv(A)*B。若X不存在或者不唯一,则产生一警告信息。矩阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方程组必须是相容的。A.B 数组的左除法。A.B为按对应的分量进行相除。若A与B为同型阵列时,An*m.Bn*m=(aij)n*m.(bij)n*m=Cn*m=(cij)n*m,则cij= aij bij,i=1,2,n;j=1,2,m。若若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。A/B 矩阵的右除法。X=B/A为符号线性方程组X*A=B的解。我们指出的是,B/A粗略地等于B*inv(A)。若X不存在或者不唯一,则产生一警告信息。矩阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方程组必须是相容的。A./B 数组的右除法。A./B为按对应的分量进行相除。若A与B为同型阵列时,An*m./Bn*m=(aij)n*m./(bij)n*m=Cn*m=(cij)n*m,则cij= aij/bij,i=1,2,n;j=1,2,m。若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。AB 矩阵的方幂。计算矩阵A的整数B次方幂。若A为标量而B为方阵,AB用方阵B的特征值与特征向量计算数值。若A与B同时为矩阵,则返回一错误信息。A.B 数组的方幂。A.B为按A与B对应的分量进行方幂计算。若A与B为同型阵列时,An*m.Bn*m=(aij)n*m.(bij)n*m=Cn*m=(cij)n*m,则cij= aijbij,i=1,2,n;j=1,2,m。若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。A 矩阵的Hermition转置。若A为复数矩阵,则A为复数矩阵的共轭转置。即,若A=(aij)=(xij+i*yij),则。A. 数组转置。A.为真正的矩阵转置,其没有进行共轭转置。例3-1syms a b c d e f g h;A = a b; c d;B = e f; g h;C1 = A.*BC2 = A.BC3 = A*B/AC4 = A.*A-A2syms a11 a12 a21 a22 b1 b2;A = a11 a12; a21 a22;B = b1 b2;X = B/A; % 求解符号线性方程组X*A=B的解x1 = X(1)x2 = X(2)计算结果为:C1 = a*e, b*f c*g, d*hC2 = ae, bf cg, dhC3 = -(a*c*f+c*b*h-a*e*d-b*d*g)/(a*d-b*c), (a*b*h-b2*g+a2*f-b*a*e)/(a*d-b*c) -(-c*e*d+c*d*h+c2*f-d2*g)/(a*d-b*c), (a*d*h+a*c*f-b*c*e-b*d*g)/(a*d-b*c)C4 = -b*c, b2-a*b-b*d c2-a*c-d*c, -b*cx1 =(-a22*b1+b2*a21)/(a12*a21-a11*a22)x2 =-(-a12*b1+a11*b2)/(a12*a21-a11*a22)3.2 基本运算命令1 合并同类项函数 collect格式 R = collect(S) %对于多项式S中的每一函数,collect(S)按缺省变量x的次数合并系数。R = collect(S,v) %对指定的变量v计算,操作同上。例3-2syms x y;R1 = collect(exp(x)+x)*(x+2)R2 = collect(x+y)*(x2+y2+1), y)R3 = collect(x+1)*(y+1),x+y)计算结果为:R1 =x2+(exp(x)+2)*x+2*exp(x)R2 =y3+x*y2+(x2+1)*y+x*(x2+1)R3 = (y+1)*x+y+1, x+y命令2 列空间的基函数 colspace格式 B = colspace(A) %返回矩阵B,其列向量形成由矩阵A的列向量形成的空间的坐标基,其中A可以是符号或数值矩阵。而size(colspace(A),2)等于rank(A)。即由A生成的空间维数等于A的秩。例3-3syms a b cA = sym(1,a;2,b;3,c)B = colspace(A)计算结果为:A = 1, a 2, b 3, cB = 1, 0 0, 1 -(3*b-2*c)/(-b+2*a), (-c+3*a)/(-b+2*a)命令3 复合函数计算函数 compose格式 compose(f,g) %返回复合函数fg(y),其中f=f(x),g=g(y)。其中符号x为函数f中由命令findsym(f) 确定的符号变量,符号y为函数g中由命令findsym(g) 确定的符号变量。compose(f,g,z) %返回复合函数fg(z),其中f=f(x),g=g(y),符号x、y为函数f、g中由命令findsym确定的符号变量。compose(f,g,x,z) %返回复合函数fg(z),而令变量x为函数f中的自变量f=f(x)。令x=g(z),再将x=g(z)代入函数f中。compose(f,g,x,y,z) %返回复合函数fg(z)。而令变量x为函数f中的自变量f=f(x),而令变量y为函数g中的自变量g=g(y)。令x=g(y),再将x=g(y)代入函数f=f(x)中,得fg(y),最后用指定的变量z代替变量y,得fg(z)。例3-4syms x y z t u v;f = 1/(1 + x2*y); h = xt; g = sin(y); p = sqrt(-y/u);C1 = compose(f,g) % 令x=g=sin(y),再替换f中的变量x=findsym(f)。C2 = compose(f,g,t) % 令x=g=sin(t),再替换f中的变量x=findsym(f)。C3 = compose(h,g,x,z) % 令x=g=sin(z),再替换h中的变量x。C4 = compose(h,g,t,z) % 令t=g=sin(z),再替换h中的变量t。C5 = compose(h,p,x,y,z) % 令x=p(y)=sqrt(-y/u),替换h中的变量x,再将y换成z。C6 = compose(h,p,t,u,z) % 令t=p(u)=sqrt(-y/u),替换h中的变量t,再将u换成z。计算结果为:C1 =1/(1+sin(y)2*y)C2 =1/(1+sin(t)2*y)C3 =sin(z)tC4 =xsin(z)C5 =(-z/u)(1/2)tC6 =x(-y/z)(1/2)命令4 符号复数的共轭函数 conj格式 conj(X) %返回符号复数X的共轭复数例3-5X=real(X) + i*imag(X),则conj(X)=real(X) - i*imag(X)命令5 符号复数的实数部分函数 real格式 real(Z) %返回符号复数z的实数部分命令6 符号复数的虚数部分函数 imag格式 imag(Z) %返回符号复数z的虚数部分命令7 余弦函数的整函数格式 Y = cosint(X) %计算余弦函数在点X处的整函数值。其中X可以是数值矩阵,或符号矩阵。余弦函数的整函数定义为:,其中为Euler常数,=0.57721566490153286060651209 i=1,2,size(X)。Euler常数可以通过命令vpa(eulergamma)获得。例3-6cosint(7.2) cosint(0:0.1:1)syms x;f = cosint(x);diff(x)计算结果为:ans =0.0960ans =Columns 1 through 7 Inf -1.7279 -1.0422 -0.6492 -0.3788 -0.1778 -0.0223Columns 8 through 11 0.1005 0.1983 0.2761 0.3374ans =1命令8 设置变量的精度函数 digits格式 digits(d) %设置当前的可变算术精度的位数为整数d位d = digits %返回当前的可变算术精度位数给ddigits %显示当前可变算术精度的位数说明 设置有意义的十进制数值的、在Maple软件中用于做可变算术精度(命令为:vpa)计算的数字位数。其缺省值为32位数字。例3-7z = 1.0e-16 % z为一很小的数x = 1.0e+2 % x为较大的数digits(14) y1 = vpa(x*z+1) % 大数1“吃掉”小数x*ydigits(15)y2 = vpa(x*z+1) % 防止“去掉”小数x*y计算结果为:z =1.0000e-016x =100y1 =1.0000000000000y2 =1.00000000000001命令9 将符号转换为MATLAB的数值形式函数 double格式 R = double(S) %将符号对象S转换为数值对象R。若S为符号常数或表达式常数,double返回S的双精度浮点数值表示形式;若S为每一元素是符号常数或表达式常数的符号矩阵,double返回S每一元素的双精度浮点数值表示的数值矩阵R。例3-8gold_ratio = double(sym(sqrt(5)-1)/2) % 计算黄金分割率。T = sym(hilb(4)R = double(T)计算结果为:gold_ratio =0.6180T = 1, 1/2, 1/3, 1/4 1/2, 1/3, 1/4, 1/5 1/3, 1/4, 1/5, 1/6 1/4, 1/5, 1/6, 1/7R =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.1429命令10 符号表达式的展开函数 expand格式 R = expand(S) %对符号表达式S中每个因式的乘积进行展开计算。该命令通常用于计算多项式函数、三角函数、指数函数与对数函数等表达式的展开式。例3-9syms x y a b c tE1 = expand(x-2)*(x-4)*(y-t)E2 = expand(cos(x+y)E3 = expand(exp(a+b)3) E4 = expand(log(a*b/sqrt(c) E5 = expand(sin(2*t), cos(2*t)计算结果为:E1 =x2*y-x2*t-6*x*y+6*x*t+8*y-8*tE2 =cos(x)*cos(y)-sin(x)*sin(y)E3 =exp(a3)*exp(a2*b)3*exp(a*b2)3*exp(b3)E4 =log(a*b/c(1/2)E5 = 2*sin(t)*cos(t), 2*cos(t)2-1命令11 符号因式分解函数 factor格式 factor(X) %参量x可以是正整数、符号表达式阵列或符号整数阵列。若X为一正整数,则factor(X)返回X的质数分解式。若x为多项式或整数矩阵,则factor(X)分解矩阵的每一元素。若整数阵列中有一元素位数超过16位,用户必须用命令sym生成该元素。例3-10syms a b x yF1 = factor(x4-y4) F2 = factor(a2-b2, x3+y3) F3 = factor(sym(12345678901234567890)计算结果为:F1 =(x-y)*(x+y)*(x2+y2)F2 =(a-b)*(a+b), (x+y)*(x2-x*y+y2)F3 =(2)*(3)2*(5)*(101)*(3803)*(3607)*(27961)*(3541)命令12 符号表达式的分子与分母函数 numden格式 N,D = numden(A) 说明 将符号或数值矩阵A中的每一元素转换成整系数多项式的有理式形式,其中分子与分母是相对互素的。输出的参量N为分子的符号矩阵,输出的参量D为分母的符号矩阵。例3-11syms x y a b c d;n1,d1 = numden(sym(sin(4/5) n2,d2 = numden(x/y + y/x)A = a, 1/b;1/c d;n3,d3 = numden(A)计算结果为:n1 =6461369247334093d1 =9007199254740992n2 =x2+y2d2 =y*xn3 = a, 1 1, dd3 = 1, b c, 1命令13 搜索符号表达式的最简形式函数 simple格式 r = simple(S) %该命令试图找出符号表达式S的代数上的简单形式,显示任意的能使表达式S长度变短的表达式,且返回其中最短的一个。若S为一矩阵,则结果为整个矩阵的最短形式,而非是每一个元素的最简形式。若没有输出参量r,则该命令将显示所有可能使用的算法与表达式,同时返回最短的一个。r,how = simple(S) %没有显示中间的化简结果,但返回能找到的最短的一个。输出参量r为一符号,how为一字符串,用于表示算法。例3-12syms xR1 = simple(cos(x)4+sin(x)4)R2 = simple(2*cos(x)2-sin(x)2)R3 = simple(cos(x)2-sin(x)2)R4 = simple(cos(x)+(-sin(x)2)(1/2)R5 = simple(cos(x)+i*sin(x)R6 = simple( (x+1)*x*(x-1)R7 = simple(x3+3*x2+3*x+1) R8,how = simple(cos(3*acos(x)计算的结果为:R1 =1/4*cos(4*x)+3/4R2 =3*cos(x)2-1R3 =cos(2*x)R4 =cos(x)+i*sin(x)R5 =exp(i*x)R6 =x 3-xR7 =(x+1)3R8 =4*x3-3*xhow =expand命令14 符号表达式的化简函数 simplify格式 R = simplify(S) 说明 使用Maple软件中的化简规则,将化简符号矩阵S中每一元素。例3-13syms x a b cR1 = simplify(sin(x)4 + cos(x)4) R2 = simplify(exp(c*log(sqrt(a+b)S = (x2+5*x+6)/(x+2),sqrt(16);R3 = simplify(S)计算结果为:R1 =2*cos(x)4+1-2*cos(x)2R2 =(a+b)(1/2*c)R3 = x+3, 4 命令15 符号矩阵的维数函数 size格式 d = size(A) %若A为m*n阶的符号矩阵,则输出结果d=m,n。m,n = size(A) %分别返回矩阵A的行数于m,列数于n。d= size(A, n) %返回由标量n指定的A的方向的维数:n=1为行方向,n=2为列方向。例3-14syms a b c dA = a b c ; a b d; d c b; c b a;d = size(A)r = size(A, 2)计算结果为:d =4 3r =3命令16 代数方程的符号解析解函数 solve格式 g = solve(eq) %输入参量eq可以是符号表达式或字符串。若eq是一符号表达式x2 -2*x-1或一没有等号的字符串x2-2*x-1,则solve(eq)对方程eq中的缺省变量(由命令findsym(eq)确定的变量)求解方程eq=0。若输出参量g为单一变量,则对于有多重解的非线性方程,g为一行向量。g = solve(eq,var) %对符号表达式或没有等号的字符串eq中指定的变量var求解方程eq(var)=0。g = solve(eq1,eq2,eqn) %输入参量eq1,eq2,eqn可以是符号表达式或字符串。该命令对方程组eq1,eq2,eqn中由命令findsym确定的n个变量如x1,x2,xn求解。若g为一单个变量,则g为一包含n个解的结构;若g为有n个变量的向量,则分别返回结果给相应的变量。g = solve(eq1,eq2,eqn,var1,var2,varn) %对方程组eq1,eq2,eqn中指定的n个变量如var1,var2,varn求解。注意:对于单个的方程或方程组,若不存在符号解,则返回方程(组)的数值解。例3-15solve(a*x2 + b*x + c) solve(a*x2 + b*x + c,b) solve(x + y = 1,x - 11*y = 5) A = solve(a*u2 + v2, u - v = 1, a2 - 5*a +6)计算结果为:ans = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)ans =-(a*x2+c)/xans = x: 1x1 symy: 1x1 symA = a: 4x1 symu: 4x1 symv: 4x1 sym命令17 以共同的子表达式形式重写一符号表达式函数 subexpr格式 Y,SIGMA = subexpr(X,SIGMA)Y,SIGMA = subexpr(X,SIGMA) 说明 找出符号表达式 X中相同的子表达式,再结合命令pretty(X)将X中相同的、比较复杂的子字符串用符号%1,%2,代替。而用命令pretty(Y)将X中相同的、比较复杂的子字符串用符号SIGMA代替。例3-16t = solve(a*x3+b*x2+c*x+d = 0); r,s = subexpr(t,s);pretty(t)pretty(r)计算结果为:(略)命令18 特征多项式函数 poly格式 p = poly(A)或p = poly(A, v) 说明 若A为一数值阵列,则返回矩阵A的特征多项式的系数,且有:命令poly(sym(A)近似等于poly2sym(poly(A)。其近似程度取决于舍入误差的大小。若A为一符号矩阵,则返回矩阵A的变量为x的特征多项式。若带上参量v,则返回变量为v的特征多项式。例3-17A = hilb(4); p = poly(A)q = poly(sym(A)s = poly(sym(A),z)计算结果为:p =1.0000 -1.6762 0.2652 -0.0017 0.0000q =x4-176/105*x3+3341/12600*x2-41/23625*x+1/6048000s =-176/105*z3+3341/12600*z2-41/23625*z+1/6048000+z4命令19 将多项式系数向量转化为带符号变量的多项式函数 poly2sym格式 r = poly2sym(c)和r = poly2sym(c, v) 说明 将系数在数值向量c中的多项式转化成相应的带符号变量的多项式(按次数的降幂排列)。缺省的符号变量为x;若带上参量v,则符号变量用v显示。poly2sym使用命令sym的缺省转换模式(有理形式)将数值型系数转换为符号常数。该模式将数值转换成接近的整数比值的表达式,否则用2的幂指数表示。若x有一数值值,且命令sym能将c的元素精确表示,则eval(poly2sym(c)的结果与polyval(c,x)相同。例3-18r1 = poly2sym(1 2 3 4) r2 = poly2sym(.694228, sqrt(2), sin(pi/3) r3 = poly2sym(1 0 1 -1 2, y)计算结果为:r1 =x3+2*x2+3*x+4r2 =6253049924220329/9007199254740992*x2+x*2(1/2)+1/2*3(1/2)r3 =y4+y2-y+2命令20 将复杂的符号表达式显示成我们习惯的数学书写形式函数 pretty格式 pretty(S) %用缺省的线型宽度79显示符号矩阵s中每一元素pretty(S,n) %用指定的线型宽度n显示例3-19A = sym(pascal(3);B = eig(A)pretty(B,50) % 多看几次结果,会发现该命令显示的特点syms xy=log(x)/sqrt(x);dy = diff(y)pretty(dy) 计算结果为:B = 1 4+15(1/2) 4 -15(1/2) 1 1/24 + 15 1/24 - 15 dy =1/x(3/2)-1/2*log(x)/x(3/2)1 log(x)- - 1/2 -3/2 3/2x x命令21 从一符号表达式中或矩阵中找出符号变量函数 findsym格式 r = findsym(S) %以字母表的顺序返回表达式S中的所有符号变量(注:符号变量为由字母(除了i与j)与数字构成的、字母打头的字符串)。若S中没有任何的符号变量,则findsym返回一空字符串。r = findsym(S,n) %返回字母表中接近x的n个符号变量例3-20syms a x y z t alpha beta1 = findsym(sin(pi*t*alpha+beta)S2 = findsym(x+i*y-j*z+eps-nan)S3 = findsym(a+y,pi)计算结果为;S1 =pi, alpha, beta, tS2 =NaN, x, y, zS3 =a, y命令22 函数的反函数函数 finverse格式 g = finverse(f) %返回函数f 的反函数。其中f为单值的一元数学函数,如f=f(x)。若f的反函数存在,设为g,则有gf(x) = x。g = finverse(f,u) %若符号函数f中有几个符号变量时,对指定的符号自变量v计算其反函数。若其反函数存在,设为g,则有gf(v) = v。例3-21syms x p q u v;V1 = finverse(1/(x2+p)*(x2+q) V2 = finverse(exp(u-2*v),u)计算结果为:Warning: finverse(1/(x2+p)/(x2+q) is not unique. In D:MATLABR12toolboxsymbolicsymfinverse.m at line 43V1 =1/2/x*2(1/2)*(x*(-x*q-x*p+(x2*q2-2*x2*q*p+x2*p2+4*x)(1/2)(1/2)V2 =2*v+log(u)命令23 嵌套形式的多项式的表达式函数 horner格式 R = horner(P) %若P为一符号多项式的矩阵,该命令将矩阵的每一元素转换成嵌套形式的表达式R。例3-22syms x yH1 = horner(2*x4-6*x3+9*x2-6*x-4) H2 = horner(x2+x*y;y3-2*y)计算结果为:H1 =-4+(-6+(9+(-6+2*x)*x)*x)*xH2 = x2+x*y (-2+y2)*y命令24 符号表达式求和函数 symsum格式 r = symsum(s) %对符号表达式s中的符号变量k(由命令findsym(s)确定的)从0到k-1求和r = symsum(s,v) %对符号表达式s中指定的符号变量v从0到v-1求和r = symsum(s,a,b) %对符号表达式s中的符号变量k(由命令findsym(s)确定的)从a到b求和r = symsum(s,v,a,b) %对符号表达式s中指定的符号变量v从a到b求和例3-23syms k n xr1 = symsum(k3) r2 = symsum(k2-k) r3 = symsum(sin(k*pi)/k,0,n) r4 = symsum(k2,0,10) r5 = symsum(xk/sym(k!), k, 0,inf) %为使k!通过MATLAB表达式的检验,必须把它作为一符号表达式。计算结果为:r1 = 1/4*k4-1/2*k3+1/4*k2r2 =1/3*k3-k2+2/3*kr3 =-1/2*sin(k*(n+1)/k+1/2*sin(k)/k/(cos(k)-1)*cos(k*(n+1)-1/2*sin(k)/k/(cos(k)-1)r4 =385r5 =exp(x)命令25 广义超几何函数函数 hypergeom格式 hypergeom(n, d, z) %该命令为广义超几何函数F(n,d,z),即已知的Barnes扩展超几何函数,记做jFk,其中j=length(n),k=length(d)。对于标量a,b与c,hypergeom(a,b,c, z)为Gauss超几何函数2F1(a,b;c,z)。说明 超几何函数的定义为:, 其中例3-24syms a z nH1 = hypergeom(,z)H2 = hypergeom(1,z) H3 = hypergeom(1,2,z) H4 = hypergeom(1,2,2,3,z)H5 = hypergeom(a,z) H6 = hypergeom(,1,-z2/4)H7 = hypergeom(-n, n,1/2,(1-z)/2) 计算结果为:H1 =exp(z)H2 =-1/(-1+z)H3 =(exp(z)-1)/zH4 =-2*(-exp(z)+1+z)/z2H5 =(1-z)(-a)H6 =besselj(0,z)H7 =hypergeom(n, -n,1/2,1/2-1/2*z)3.2.1 函数计算器函数 funtool格式 funtool %该命令将生成三个图形窗口,Figure No.1用于显示函数f的图形,Figure No.2用于显示函数g的图形,Figure No.3为一可视化的、可操作与显示一元函数的计算器界面。在该界面上由许多按钮,可以显示两个由用户输入的函数的计算结果:加、乘、微分等。funtool还有一函数存储器,允许用户将函数存入,以便后面调用。在开始时,funtool显示两个函数f(x) = x与g(x) = 1在区间-2*pi, 2*pi上的图形。Funtool同时在下面显示一控制面板,允许用户对函数f、g进行保存、更正、重新输入、联合与转换等操作。输入命令funtool后,生成的界面如下:图3-1 函数工具funtool界面图3-2 函数f的图形 图3-3 函数g的图形说明 文本输入框区域:控制面板的上面几行,可以输入文本;f = :显示代表函数f的符号表达式,可在该行输入其他有效的表达式来定义f,再按回车键即可在Figure No.1中画出图形;g = :显示代表函数g的符号表达式,可在该行输入其他有效的表达式来定义g,再按回车键即可在Figure No.2中画出g图形;x = :显示用于画函数f与g的区间。可在该行输入其他的不同区间,再按回车键即可改变Figure No.1与Figure No.2中的区间;a = :显示一用于改变函数f的常量因子(见下面的操作按钮)。可在该行输入不同的常数。控制按钮区域:该区域有一些按钮,按下它们将对函数f转换成不同的形式与执行不同的操作。df/dx:函数f的导数;int f:函数f的积分(没有常数的一个原函数),当函数f的原函数不能用初等函数表示时,操作可能失败;simple f:化简函数f(若有可能);num f:函数f 的分子;den f:函数f的分母;1/f:函数f的倒数;finv:函数f的反函数,若函数f 的反函数不存在,操作可能失败;f+a:用f(x)+a代替函数f(x);f-a:用f(x)-a代替函数f(x);f*a:用f(x)+a代替函数f(x);f/a:用f(x)/a代替函数f(x);fa:用f(x)a代替函数f(x);f(x+a):用f(x+a)代替函数f(x);f(x*a):用f(x-a)代替函数f(x);f+g:用f(x)+g(x)代替函数f(x);f-g:用f(x)-g(x)代替函数f(x);f*g:用f(x)*g(x)代替函数f(x);f/g:用f(x)/g(x)代替函数f(x);g=f:用函数f(x)代替函数g(x);swap:函数f(x)与g(x)互换;Insert:将函数f(x)保存到函数内存列表中的最后;Cycle:用内存函数列表中的第二项代替函数f(x);Delete:从内存函数列表中删除函数f(x);Reset:重新设置计算器为初始状态;Help:显示在线的关于计算器的帮助;Demo:运行该计算器的演示程序;Close:关闭计算器的三个窗口。3.2.2 微积分命令1 极限函数 limit格式 limit(F,x,a) %计算符号表达式F=F(x)的极限值,当xa时。limit(F,a) %用命令findsym(F)确定F中的自变量,设为变量x,再计算F的极限值,当xa时。limit(F) %用命令findsym(F)确定F中的自变量,设为变量x,再计算F的极限值,当x0时。limit(F,x,a,right)或limit(F,x,a,left) %计算符号函数F的单侧极限:左极限xa- 或右极限xa+。例3-25syms x a t h n; L1 = limit(cos(x)-1)/x)L2 = limit(1/x2,x,0,right)L3 = limit(1/x,x,0,left)L4 = limit(log(x+h)-log(x)/h,h,0)v = (1+a/x)x, exp(-x);L5 = limit(v,x,inf,left)L6 = limit(1+2/n)(3*n),n,inf)计算结果为:L1 =0L2 =infL3 =-infL4 =1/xL5 = exp(a), 0L6 =exp(6)命令2 导数(包括偏导数)函数 diff格式 diff(S,v)、diff(S,sym(v) %对表达式S中指定符号变量v计算S的1阶导数。diff(S) %对表达式S中的符号变量v计算S的1阶导数,其中v=findsym(S)。diff(S,n) %对表达式S中的符号变量v计算S的n阶导数,其中v=findsym(S)。diff(S,v,n) %对表达式S中指定的符号变量v计算S的n阶导数。例3-26syms x y tD1 = diff(sin(x2)*y2,2) %计算D2 = diff(D1,y) %计算D3 = diff(t6,6)计算结果为:D1 =-4*sin(x2)*x2*y2+2*cos(x2)*y2D2 = -8*sin(x2)*x2*y+4*cos(x2)*yD3 =720命令3 符号函数的积分函数 int格式 R = int(S,v) %对符号表达式S中指定的符号变量v计算不定积分。注意的是,表达式R只是函数S的一个原函数,后面没有带任意常数C。R = int(S) %对符号表达式S中的符号变量v计算不定积分,其中v=findsym(S)。R = int(S,v,a,b) %对表达式s中指定的符号变量v计算从a到b的定积分R = int(S,a,b) %对符号表达式s中的符号变量v计算从a到b的定积分,其中v=findsym(S)。例3-27syms x z t alphaINT1 = int(-2*x/(1+x3)2)INT2 = int(x/(1+z2),z)INT3 = int(INT2,x)INT4 = int(x*log(1+x),0,1) INT5 = int(2*x, sin(t), 1) INT6 = int(exp(t),exp(alpha*t)计算结果为:INT1 =-2/9/(x+1)+2/9*log(x+1)-1/9*log(x2-x+1)-2/9*3(1/2)*atan(1/3*(2*x-1)* 3(1/2)-2/9*(2*x-1)/(x2-x+1)INT2 =x*atan(z)INT3 =1/2*x2*atan(z)INT4 =1/4INT5 =1-sin(t)2INT6 = exp(t), 1/alpha*exp(alpha*t)命令4 常微分方程的符号解函数 dsolve格式 r = dsolve(eq1,eq2,cond1,cond2,v)说明 对给定的常微分方程(组)eq1,eq2,中指定的符号自变量v,与给定的边界条件和初始条件cond1,cond2,.求符号解(即解析解)r;若没有指定变量v,则缺省变量为t;在微分方程(组)的表达式eq中,大写字母D表示对自变量(设为x)的微分算子:D=d/dx,D2=d2/dx2,。微分算子D后面的字母则表示为因变量,即待求解的未知函数。初始和边界条件由字符串表示:y(a)=b,Dy(c)=d,D2y(e)=f,等等,分别表示,;若边界条件少于方程(组)的阶数,则返回的结果r中会出现任意常数C1,C2,;dsolve命令最多可以接受12个输入参量(包括方程组与定解条件个数,当然我们可以做到输入的方程个数多于12个,只要将多个方程置于一字符串内即可)。若没有给定输出参量,则在命令窗口显示解列表。若该命令找不到解析解,则返回一警告信息,同时返回一空的sym对象。这时,用户可以用命令ode23或ode45求解方程组的数值解。例3-28D1 = dsolve(D2y Dy =exp(x) D2 = dsolve(t*D2f = Df*log(Dy)/t) D3 = dsolve(Dy)2 + y2 = 1,s) D4 = dsolve(Dy = a*y, y(0) = b) % 带一个定解条件D5 = dsolve(D2y = -a2*y, y(0) = 1, Dy(pi/a) = 0) % 带两个定解条件x,y = dsolve(Dx = y, Dy = -x) % 求解线性微分方程组u,v = dsolve(Du=u+v,Dv=u-v)计算结果为:D1 =-exp(x)*t+C1+C2*exp(t)D2 =y(t)=Int(exp(t*diff(f(t),$(t,2)/diff(f(t),t)*t,t)+C1D3 = -1 1 sin(s-C1) -sin(s-C1)D4 =b*exp(a*t)D5 =cos(a*t)x = cos(t)*C1+sin(t)*C2 y =-sin(t)*C1+cos(t)*C2u = 1/2*C1*exp(2(1/2)*t) - 1/4*C1*2(1/2)*exp(-2(1/2)*t) + 1/4*C1*2(1/2) *exp (2(1/2)*t) + 1/2*C1*exp(-2(1/2)*t) - 1/4*C2*2(1/2)*exp(-2(1/2)*t) + 1/4*C2 *2(1/2)*exp(2(1/2)*t)v = -1/4*C1*2(1/2)*exp(-2(1/2)*t)+1/4*C1*2(1/2)*exp(2(1/2)*t)+1/2*C2*exp(2(1/2)*t)+1/4*C2*2(1/2)*exp(-2(1/2)*t)-1/4*C2*2(1/2)*exp(2(1/2)*t)+ 1/2*C2*exp(-2(1/2)*t)3.2.3 符号函数的作图命令1 画符号函数的等高线图函数 ezcontour格式 ezcontour(f) %画出二元符号函数f=f(x,y)的等高线图。函数f将被显示于缺省的平面区域-2x2,-2y2内。系统将根据函数变动的激烈程度自动选择相应的计算栅格。若函数f在某些栅格点上没有定义,则这些点将不显示。ezcontour(f,domain) %在指定的定义域domain内画出二元函数f(x,y),参量domain可以是四维向量xmin,xmax,ymin,ymax或二维向量min,max(其中显示区域为:minxmax,minymax)。ezcontour(,n) %用指定n*n个栅格点(对定义域的一种划分),在缺省(若没有指定)的区域内画出函数f的图形。n的缺省值为60。说明 该命令用函数表达式作为标题显示,同时显示坐标轴的恰当的刻度标签。例3-29syms x yf = (1-x)2*exp(-(x2)-(y+1)2)-5*(x/5-x3-y5)*sin(-x2-y2)-1/3*exp(-(x+1)2-y2);ezcontour(f,-3,3,49)图形结果为图3-4。命令2 用不同颜色填充的等高线图函数 ezcontourf格式 ezcontourf(f) %画出二元符号函数f=f(x,y)的等高线图,且在不同的等高线之间自动用不同的颜色进行填充。函数f将被显示于缺省的平面区域-2x2,-2y2内。系统将根据函数变动激烈程度自动选择相应的计算栅格。若函数f在某些栅格点上没有定义,则这些点将不显示。ezcontourf(f,domain) %在指定的定义域domain内画出二元函数f(x,y)的等高线图,且在不同的等高线之间自动用不同的颜色进行填充。定义域domain可以是四维向量xmin,xmax,ymin,ymax或二维向量min,max(其中显示区域为:minxmax,minymax)。ezcontourf(,n) %用指定n*n个栅格点(对定义域的一种划分),在缺省(若没有指定)的区域内画出函数f的等高线图,且在不同的等高线之间自动用不同的颜色进行填充。n的缺省值为60。例3-30syms x yf = (1-x)2*exp(-(x2)-(y+1)2)-5*(x/5-x3-y5)*sin(-x2-y2)-1/3*exp(-(x+1)2-y2);ezcontourf(f,-3,3,64)图形结果为图3-5。图3-4 等高线图 图3-5 等高线填充图命令3 符号函数的三维网格图函数 ezmesh格式 ezmesh(f) %画出二元数学符号函数f=f(x,y)的网格图。函数f将显示于缺省的平面区域-2x2,-2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值