功能介绍:符号对象的创建 语法说明:
variable=sym(A,flag) S=sym(‘A’,flag)
syms a b c flag:用来创建多个符号变量
【注】flag选项:d(最接近的十进制浮点精确表示)、e(带估计误差的有理表示)、f(十六进制浮点表示)、r(为默认设置时,最接近有理表示的形式);对于转换对象是字符串时:positive(先定A为整的实型符号变量)、real(限定A为实型符号变量) 实例: >> r = sym(2/3) r = 2/3
>> f = sym(2/3, 'f') f =
6004799503160661/90071992740992 >> d = sym(2/3, 'd') d =
0.66666666666666662965923251249478 >> e = sym(2/3, 'e')
e = 2/3 - eps/6 >> syms a b c >> a, b, c a = a b = b c = c
>> f = sym('a*x^4+b*x^3+c*x^2+d*x+e') f =
a*x^4 + b*x^3 + c*x^2 + d*x + e >> syms a b c d e x
>> f = a*x^4+b*x^3+c*x^2+d*x+e f =
a*x^4 + b*x^3 + c*x^2 + d*x + e >> syms x y;
>> m1 = [1, 2+x, 1; 2+x, 1, 3+y; 1, 3+y, 0 ] m1 =
[ 1, x + 2, 1] [ x + 2, 1, y + 3]
[ 1, y + 3, 0]
>> m2 = sym('[1, 2+x, 1; 2+x, 1, 3+y; 1, 3+y, 0 ]') m2 =
[ 1, x + 2, 1] [ x + 2, 1, y + 3] [ 1, y + 3, 0] findsym函数
功能介绍:查找字符表达式中的符号变量 语法说明:
findsym(S):返回表达式S中的所有符号变量
findsym(S,N):返回符号表达式中距离符号变量x或者X最接近的N个符号变量 实例:
>> syms x y z u v w
>> f = sym('3*x^2+2*y+z+u^-1+v^-2+w^-3'); >> findsym(f) ans = u,v,w,x,y,z >> findsym(f, 3) ans = x,y,w digits函数
功能介绍:设置近似解的精度 语法说明:
digits(d):修改当前数值计算精度为d位有效数字。d默认为32 digits:可以得到当前采用的数值计算的精度 实例: vpa函数
功能介绍:精度设置 语法说明:
vpa(A,d):求符号解A的近似解,有效数字由参数d为指定 实例: double函数
功能介绍:精度设置 语法说明:
double(A):把符号矩阵或任意精度表示的矩阵A转换为双精度矩阵 实例: >> sym x;
>> f = sym('2*x^2+3*x-4') f =
2*x^2 + 3*x - 4 >> s = solve(f) s =
- 41^(1/2)/4 - 3/4 41^(1/2)/4 - 3/4 >> digits(4); >> vpa(s) ans = -2.351 0.8508 >> vpa(s, 6) ans = -2.35078 0.850781 pretty函数
功能介绍:符号表达式的一般数学表示 语法说明:
pretty(f):f为符号表达式 实例: >> sym x;
>> f = sym('a*x^3+b*x^2+c*x+d+e*x^-1+f*x^-2+g*x^-3'); >> pretty(f)
3 2 e f g d + c x + a x + b x + - + -- + -- x 2 3
x x collect函数
功能介绍:符号表达式合并 语法说明:
R=collect(S):将表达式S中的相同次幂的项合并。其中S可以是一个表达式,也可以是一个符号矩阵
R=collect(S,v):将表达式S中的v的相同次幂的项进行合并。如果v没有指定,则默认将含有x的相同次幂的项进行合并。 实例: >> sym x;
>> f1 = sym('(x-1)^3') f1 = (x - 1)^3 >> collect(f1) ans =
x^3 - 3*x^2 + 3*x – 1 >> syms x y t;
>> f2 = sym('x*cos(t)+y*sin(t)+(x^2+2*x*y+3*y^2)*t') f2 =
t*(x^2 + 2*x*y + 3*y^2) + x*cos(t) + y*sin(t) >> collect(f2, x) ans =
t*x^2 + (cos(t) + 2*t*y)*x + 3*t*y^2 + sin(t)*y >> collect(f2, y) ans =
(3*t)*y^2 + (sin(t) + 2*t*x)*y + t*x^2 + cos(t)*x expand函数
功能介绍:符号表达式展开 语法说明:
R=expand(S):将表达式S中的各项进行展开,如果S包含函数,则利用恒等变形将它写成相应的和的形式。该函数多用于多项式,有时也用于三角函数、指数函数和对数函数 实例: >> syms x y;
>> f1 = sym('(x-1)^2*(y-1)') f1 =
(x - 1)^2*(y - 1) >> expand(f1) ans =
2*x + y - 2*x*y + x^2*y - x^2 - 1 horner函数
功能介绍:符号表达式的嵌套表示 语法说明:
R=horner(S):其中S是符号多项式矩阵,函数horner将其中每个
多项式转换成它们的嵌套形式。 实例: >> syms x y;
>> f1 = sym('x^3-4*x^2+11*x-6') f1 =
x^3 - 4*x^2 + 11*x - 6 >> horner(f1) ans =
x*(x*(x - 4) + 11) – 6
>> f2 = sym('[x^2+x;y^3-2*y]') f2 = x^2 + x y^3 - 2*y >> horner(f2) ans = x*(x + 1) y*(y^2 - 2) factor函数
功能介绍:符号表达式分解 语法说明:
factor(X):如果X是一个多项式或多项式矩阵,系数是有理数,那么该函数将把X表示成系数为有理数的低阶多项式相乘的形式;
如果X不能分解成有理多项式乘积的形式,则返回X本身 实例: >> syms x y;
>> f1 = sym('2*x^2-7*x*y-22*y^2-5*x+35*y-3'); >> factor(f1) ans =
(2*x - 11*y + 1)*(x + 2*y - 3) simplify函数
功能介绍:符号表达式化简 语法说明:
R=simplify(S):该函数是一个强有力的具有普遍意义的工具。它应用于包含和式、方根、分数的乘方、指数函数、对数函数、三角函数、Bessel函数及超越函数等的表达式,并利用Maple化简规则对表达式进行简化。其中S可以是符号表达式矩阵 实例: >> sym x;
>> f1 = sym('(x^3-1)/(x-1)') f1 =
(x^3 - 1)/(x - 1) >> simplify(f1) ans = x^2 + x + 1
simple函数
功能介绍:符号表达式的化简 语法说明: R=simple(S):
[R,how]=simple(S):how是一个描述化简方法的字符串 实例: subs函数
功能介绍:符号表达式替换 语法说明:
R=subs(S):用工作空间中的变量值替换符号表达式S中的所有符号变量。如果没有指定某符号变量的值,则返回值中改符号变量不被替换
R=subs(S,New):用新符号变量New替换原来符号表达式S中的默认变量
R=subs(S,Old,New):用新符号变量New替换原来符号表达式S中的变量Old。当New是数值形式的符号时,实际上用数值替换原来的符号表达式的值,只是所得结果仍然是字符串形式 实例: >> syms x y;
>> f = sym('x^2+x*y+y^2'); >> x = 2; >> subs(f)
ans = y^2 + 2*y + 4 >> y = 2; >> subs(f) ans = 12 >> subs(f,'t^2') ans =
t^4 + t^2*y + y^2 >> subs(f,{'x', 'y'}, {3, 4}) ans = 37 subexpr函数
功能介绍:重复出现的字符串用变量替换 语法说明:
[Y,SIGMA]=subexpr(S,SIGMA):指定变量SIGMA的值(必须为符号对象)来代替符号表达式中重复出现的字符串。替换后结果由Y返回,被替换的字符串由SIGMA返回
[Y,SIGMA]=subexpr(S,’SIGMA’):第二个参数是字符或者字符串,而不必是符号对象 实例: >> syms x a;
>> f = sym('2*x^2+a*x+x^-1'); >> s = solve(f) >> r = subexpr(s) sigma =
((a^3/216 + 1/4)^2 - a^6/46656)^(1/2) - a^3/216 - 1/4 r =
sigma^(1/3) - a/6 + a^2/(36*sigma^(1/3))
- a/6 - sigma^(1/3)/2 - a^2/(72*sigma^(1/3)) + (3^(1/2)*(sigma^(1/3) - a^2/(36*sigma^(1/3)))*i)/2
- a/6 - sigma^(1/3)/2 - a^2/(72*sigma^(1/3)) - (3^(1/2)*(sigma^(1/3) - a^2/(36*sigma^(1/3)))*i)/2 compose函数 功能介绍:复合函数 语法说明:
compose(f,g):返回符合函数f(g(y)),此外f=f(x),g=g(y)。其中x是findsym定义的f函数的符号变量,y是findsym定义的g函数的符号变量
compose(f,g,x,z):返回自变量为Z的复合函数f(g(z)),并使x成为f函数的变量 实例: >> syms x y; >> f = sym('x+x^-1');
>> g = sym('sin(x)'); >> h = sym('1+y^2'); >> compose(f,g) ans =
sin(x) + 1/sin(x) >> compose(g,f) ans = sin(x + 1/x)
>> compose(f, h, 'x', 't') ans =
1/(t^2 + 1) + t^2 + 1 finverse函数
功能介绍:反函数操作 语法说明:
g=finverse(f):返回符号函数f的反函数g。其中f是一个符号函数表达式,其变量是x。求得的反函数g是一个满足g(f(x))=x的符号函数
g=finverse(f,v):返回自变量为v的符号函数f的反函数。求得的反函数g是一个满足g(f(v))=v的符号函数。当f包含不止一个符号变量时,往往使用这种求反函数的调用格式 实例: >> syms x y;
>> f1 = sym('1/(sin(x)+cos(x))'); >> finverse(f1)
Warning: finverse(1/(cos(x) + sin(x))) is not unique. ans =
-log(((- 4*x^2*i + 2*i)^(1/2) + 1 + i)/(2*x))*i >> f2 = sym('x^2+2*x*y+y^2'); >> finverse(f2)
Warning: finverse(x^2 + 2*x*y + y^2) is not unique. ans = x^(1/2) - y
符号数学计算——符号数学函数 limit函数
功能介绍:符号函数求极限 语法说明:
limit(F,x,a):求当x→a时,符号表达式F的极限
limit(F,a):自变量采用默认变量,求F的自变量趋近于a时的极限
limit(F):默认变量,并以a=0作为自变量的趋近值 limit(F,x,a,’right’):右极限 limit(F,x,a,’left’):左极限 实例: >> syms x;
>> f1 = sym((cos(x)+sin(x)-x)/x); >> limit(f1, x, inf) ans = -1 diff函数
功能介绍:一元或者所愿函数的任意阶数的微分 语法说明:
diff(S,’v’):将符号’v’视为变量,对符号表达式或者符号矩阵S求微分
diff(S,n):对S的默认变量进行n阶微分运算
diff(S,’v’,n):将符号’v’视为变量,对符号表达式或者矩阵S求v进行n阶微分 实例: >> syms x y z;
>> f1 = sym('exp(x*sin(y))+log(z)'); >> diff(f1, x) ans =
exp(x*sin(y))*sin(y) >> diff(f1, y) ans =
x*exp(x*sin(y))*cos(y) >> diff(f1, x, 2)
ans =
exp(x*sin(y))*sin(y)^2 jacobian函数
功能介绍:对于自变量的个数多余一个符号矩阵求微分 语法说明:
R=jacobian(w,v):其中w是一个符号列向量;v是一行向量,用来指定对哪些变量求微分,R是求得的雅克比行列式 实例:
>> f2 = sym('[x^2+y^2; y*z]'); >> J = jacobian(f2, [x, y]) J = [ 2*x, 2*y] [ 0, z] int函数
功能介绍:符号表达式的积分 语法说明:
R=int(S):用默认变量求符号表达式S的不定积分
R=int(S,v):用符号标量v作为变量求符号表达式S的不定积分 R=int(S,a,b):符号表达式采用默认变量,该函数求默认变量从a编导b时符号表达式S的积分值。如果S为符号矩阵,则将对矩阵中各个元素求积分
R=int(S,v,a,b):符号表达式采用v作为变量,求v从a变到b时,
符号表达式S的积分值 实例: >> syms x y; >> f1 = sym('x+x^-1'); >> int(f1) ans = log(x) + x^2/2
>> f2 = sym('x*y+(x*y)^-1'); >> int(f2, y) ans =
log(y)/x + (x*y^2)/2 >> int(f1, 1, 2) ans = log(2) + 3/2 >> int(f2, y, 1, 2) ans =
(3*x)/2 + log(2)/x symsum函数
功能介绍:符号表达式的级数求和 语法说明:
r=symsum(S,a,b):求符号表达式S中默认变量从a变到b时的有限和
r=symsum(S,v,a,b):求符号表达式S中变量v从a变到b时的有限和 实例 >> syms x y n; >> f1 = sym('x^2'); >> symsum(f1, 0, n-1) ans =
(n*(2*n - 1)*(n - 1))/6: taylor函数
功能介绍:符号表达式的泰勒级数 语法说明:
r=taylor(f):f是符号表达式,其变量采用默认变量,该函数返回f在变量等于0处5阶泰勒展开时的展开式
r=taylor(f,n,v):符号表达式f以v作为自变量,返回f的n-1阶麦克劳林级数展开式(在v=0处的泰勒展式)
r=taylor(f,n,v,a):返回符号表达式f在v=a处作n-1阶泰勒展开时的展开式 实例: >> syms x y;
>> f1 = sym('sin(x)/(2+sin(x))'); >> taylor(f1) ans =
- (13*x^5)/480 + x^4/48 + x^3/24 - x^2/4 + x/2 >> f2 = sym('sin(x)+1/cos(y)'); >> taylor(f2, 8, y) ans =
(61*y^6)/720 + (5*y^4)/24 + y^2/2 + sin(x) + 1 >> taylor(f2, 4, x, 1) ans =
sin(1) - (sin(1)*(x - 1)^2)/2 + 1/cos(y) + cos(1)*(x - 1) - (cos(1)*(x - 1)^3)/6
fourier与ifourier函数
功能介绍:傅立叶变换与其逆变换 语法说明:
Fw=fourier(ft,t,w):求时域函数ft的Fourier变换Fw,ft是以t为自变量的时域函数,Fw是以圆频率w为自变量的频域函数 ft=ifourier(Fw,w,t):求频域函数Fw的Fourier反变换ft,ft是以t为自变量的时域函数,Fw是以圆频率w为自变量的频域函数 实例:
laplace与ilaplace函数
功能介绍:拉普拉斯变换及其反变换 语法说明:
Fs=laplace(ft,t,s):求时域函数ft的laplace变换Fs,ft是以t为自
变量的时域函数,Fs是以圆频率s为自变量的频域函数 ft=ilaplace (Fs,s,t):求频域函数Fw的laplace反变换ft,ft是以t为自变量的时域函数,Fs是以圆频率s为自变量的频域函数 实例: ztrans函数
功能介绍:Z变换及其反变换 语法说明:
FZ=ztrans(fn):求时域函数fn的Z变换FZ,默认fn是变量n的函数,生成的Z变换是以复频率z为变量的函数
FZ=ztrans(fn,w):求时域函数fn的Z变换FZ,默认fn是变量n的函数,生成的Z变换是以变量w来代替复频率z的函数 FZ=ztrans(fn,n,z):求时域函数fn的Z变换FZ,默认fn是变量n的时域序列,FZ是以复频率z为自变量的频域函数 实例: solve函数
功能介绍:符号代数方程求解 语法说明:
g=solve(eq):其中eq可以是符号表达式或不带符号的字符串,该函数用于求解eq=0,其自变量采用的默认变量
g=solve(eq,var):求解方程eq=0,其自变量由参数var确定,返回eq=0的所有解构成的列向量
g=solve(eq1,eq1,…,eqn):求解由符号表达式或者不带符号的字符
串eq1,eq2,…,eqn组成的方程组。其中自变量为整个方程组的默认变量
g=solve(eq1,eq1,…,eqn,var1,var2,…varn):求解方程组 实例: >> syms x;
>> f = sym('a*x+b*x^-1+c'); >> solve(f) ans =
-(c + (c^2 - 4*a*b)^(1/2))/(2*a) -(c - (c^2 - 4*a*b)^(1/2))/(2*a) >> syms a; >> solve(f, a) ans = -(b + c*x)/x^2 >> syms x y;
>> f1 = sym('x^2+y^2=25'); >> f2 = sym('x*y=12'); >> [x, y] = solve(f1, f2) x = 4 3 -3
-4 y = 3 4 -4 -3
>> syms x y a b;
>> f1 = sym('x^2+y^2=a^2') f1 =
x^2 + y^2 = a^2 >> f2 = sym('x*y=b') f2 = x*y = b
>> S = solve(f1, f2, x, y) S =
x: [4x1 sym] y: [4x1 sym] >> S.x ans =
-(((a^4 - 4*b^2)^(1/2)/2 + a^2/2)^(3/2) - a^2*((a^4 - 4*b^2)^(1/2)/2 + a^2/2)^(1/2))/b
(((a^4 - 4*b^2)^(1/2)/2 + a^2/2)^(3/2) - a^2*((a^4 - 4*b^2)^(1/2)/2 +
a^2/2)^(1/2))/b
-((a^2/2 - (a^4 - 4*b^2)^(1/2)/2)^(3/2) - a^2*(a^2/2 - (a^4 - 4*b^2)^(1/2)/2)^(1/2))/b
((a^2/2 - (a^4 - 4*b^2)^(1/2)/2)^(3/2) - a^2*(a^2/2 - (a^4 - 4*b^2)^(1/2)/2)^(1/2))/b dsolve函数
功能介绍:微分方程求解 语法说明:
r=dsolve(‘eq1,eq2,…’,’cond1,cond2,…’,’v’):求由eq1,eq2,…指定的常微分方程的符号解,是字符串,不是符号变量。常微分方程以变量v作为自变量,参数cond1,cond2,…用于指定方程的边界条件或者初始条件。若v不指定,将默认t为自变量 r=dsolve(‘eq1’,’eq2’,…’,’cond1’,’cond2,…’,’v’):由eq1,eq2,…指定的常微分方程的符号解。这些常微分方程都以v作为自变量。这些输入的方程最大允许个数为12。
【注】参数是,字符串变量,不是符号表达式。D表示一个微分,D2、D3分别表示二次、三次微分 实例:
>> dsolve('a*Dx+b*x=0') ans =
C2/exp((b*t)/a) >> f2 = 'Dy-2*x+y=0';
>> f1 = 'Dx-3*x+2*y=0'; >> [x, y] = dsolve(f1, f2) x =
C3*exp(t) + (C4*exp(t))/2 + C4*t*exp(t) y =
C3*exp(t) + C4*t*exp(t)
>> [x, y] = dsolve(f1, f2,'x(0)=-1', 'y(0)=1') x =
- exp(t) - 4*t*exp(t) y =
exp(t) - 4*t*exp(t)
符号数学计算——符号绘图函数 ezplot函数
功能介绍:符号函数绘图 语法说明:
ezplot(f):对于显式函数f=f(x),默认范围[-pi f(x,y)=0的图形 ezplot(x,y,[tmin,tmax]):在制定范围[tmin 功能介绍:三维曲线绘图 语法说明: ezplot3(x,y,z):在默认的范围0 >> ezplot3(t*sin(t), t*cos(t), t, [0, 20*pi]) >> ezplot3(t*sin(t), t*cos(t), t, [0, 20*pi], 'animate') ezcontour函数 功能介绍:画符号函数的等高线图 语法说明: ezcontour(f):画出二元符号函数f=f(x,y)的等高线图。默认平面区域[-2*pi ezcontour(…,n)用指定n*n个栅格点(对定义域的一种划分)。n默认为60 实例: >> syms x y; >>f=(1-x)^2*exp(-(x^2)-(y+1)^2)-5*(x/5-x^3-y^5)*sin(-x^2-y^2)-1/3*exp(-(x+1)^2-y^2); >> ezcontour(f, [-3, 3], 49) ezcontourf函数 功能介绍:用不同颜色填充的等高线图 语法说明:用法类似ezcontour函数 实例: ezpolar函数 功能介绍:极坐标图形 语法说明: ezpolar(f):在默认的范围0 >> ezpolar(1+cos(5*t)) ezmesh函数 功能介绍:符号函数的三维网格图 语法说明: ezmesh(f):画出二院数学符号函数f=f(x,y)的网格图 ezmesh(f,domain):在指定的定义域domain内画出二元函数f(x,y)的网格图,domain可以是四维向量[xmin,xmax,ymin,ymax]或者二维向量[min,max] ezmesh(x,y,z):绘制x=x(s,t)、y=y(s,t)、z=z(s,t)的二元函数z=f(x,y)的网格图 ezmesh(x,y,z,[smin,smax,tmin,tmax]):在指定范围内画图 ezmesh(x,y,z,[min,max]):指定范围内画图 ezmesh(f,…,n):用指定n*n个栅格点绘图,默认n=60 ezmesh(…,’circ’):在一个圆形区域内画出函数f的网格图形 实例: >> syms x y >> ezmesh(x*sin(-x^2-y^2), 40, 'circ') ezmeshc函数 功能介绍:绘制网格图同时绘制等高线图 语法说明:用法同ezmesh 实例: syms x y ezmeshc(x*y/(1+x^2+y^2),[-5, 5, -2*pi, 2*pi], 35) ezsurf函数 功能介绍:三维带颜色的曲面图 语法说明:同法同ezmesh 实例: >> syms x y >> ezsurf(real(atan(x+i*y))) ezsurfc函数 功能介绍:同时画出曲面图与等高线图 语法说明:用法同ezmesh 实例: syms x y ezsurfc(x*y/(1+x^2+y^2),[-5, 5, -2*pi, 2*pi], 35) 一些特殊变量 nargin:函数的输入参数个数 nargout:函数个输出参数个数 varargin:可变的函数输入参数个数 varargout:可变的函数输出参数个数 realmin:可用的最小正实数 realmax:可用的最大正实数 bitmax:可用的最大正整数 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务