matlab的符号计算

#############################

 

 

01 展开:展开因式:expand(f)

--- 幂函数:则根据次数从高到低

--- 三角函数:展开角部分

--- 指数:展开指数部分

 

 

>> z=(x+y+3)*(2*x-4*y+7)+sin(x+y)+exp(x+y)+log(x*y)
 
z =
 
exp(x + y) + log(x*y) + sin(x + y) + (2*x - 4*y + 7)*(x + y + 3)
 
>> expand(z)
 
ans =
 
13*x - 5*y + log(x*y) + exp(x)*exp(y) + cos(x)*sin(y) + cos(y)*sin(x) - 2*x*y + 2*x^2 - 4*y^2 + 21
 
>> 
>> z=(x+y+3)*(2*x-4*y+7)
 
z =
 
(2*x - 4*y + 7)*(x + y + 3)
 
>> expand(z)
 
ans =
 
2*x^2 - 2*x*y + 13*x - 4*y^2 - 5*y + 21
 
>> 

 

 

02 合并:因式分解:factor(f)

>> z1=3*x^3+2*x^2+x+2
 
z1 =
 
3*x^3 + 2*x^2 + x + 2
 
>> factor(z1)
 
ans =
 
[ x + 1, 3*x^2 - x + 2]
 
>> 
>> z1=x^2+2*x*y+y^2
 
z1 =
 
x^2 + 2*x*y + y^2
 
>> factor(z1)
 
ans =
 
[ x + y, x + y]
 
>> 

 

03 合并同类项:collect(f)

>> z2=x^2+x*y*7-x^2+y+x-8
 
z2 =
 
x + y + 7*x*y - 8
 
>> collect(z2)
 
ans =
 
(7*y + 1)*x + y - 8
 
>> collect(z2,y)
 
ans =
 
(7*x + 1)*y + x - 8
 
>> collect(z2,x)
 
ans =
 
(7*y + 1)*x + y - 8
 
>> 

 

04 化简:simplify(f)

>> z3=x^2+y^2-2*x*y+sin(x)^2+cos(x)^2
 
z3 =
 
cos(x)^2 + sin(x)^2 - 2*x*y + x^2 + y^2
 
>> simplify(z3)
 
ans =
 
x^2 - 2*x*y + y^2 + 1
 
>> 

 

 

05 解方程:solve(f,x)

>> z=x^3+x-6
 
z =
 
x^3 + x - 6
 
>> solve(z,x)
 
ans =
 
 root(z^3 + z - 6, z, 1)
 root(z^3 + z - 6, z, 2)
 root(z^3 + z - 6, z, 3)
 
>> z=x^2+x-2
 
z =
 
x^2 + x - 2
 
>> solve(z,x)
 
ans =
 
 -2
  1
 
>> 

 

06 级数求和:symsum(f,n,a,b)

 

---  级数求和:symsum(f,n,a,b):f为一个级数的通项,是一个符号表达式,求自变量n为从a到b的通项和;

其中inf可表示无穷大

 

>> f=n
 
f =
 
n
 
>> symsum(f,n,1,n)
 
ans =
 
(n*(n + 1))/2
 
>> symsum(f,n,1,10)
 
ans =
 
55
 
>> f=1/n^2
 
f =
 
1/n^2
 
>> symsum(f,n,1,inf)
 
ans =
 
pi^2/6
 
>> 

 

 

07 求极限:limit(f,x,a)

--- 某点极限:  limit(f,x,a)
--- 某点左极限:limit(f,x,a,'left')
--- 某点右极限:limit(f,x,a,'right')

--- 无穷极限:  limit(f,x,inf)
--- 正无穷极限:limit(f,x,inf,'right')
--- 负无穷极限:limit(f,x,inf,'left')

 

>> f=sin(x)/x
 
f =
 
sin(x)/x
 
>> limit(f,x,0)
 
ans =
 
1
 
>> limit(f,x,0,'right')
 
ans =
 
1
 
>> limit(f,x,0,'left')
 
ans =
 
1
 
>> limit(f,x,inf)
 
ans =
 
0
 
>> limit(f,x,inf,'right')
 
ans =
 
0
 
>> limit(f,x,inf,'left')
 
ans =
 
0
 
>> 

 

>> help limit
--- sym/limit 的帮助 ---

 limit    Limit of an expression.
    limit(F,x,a) takes the limit of the symbolic expression F as x -> a.
    limit(F,a) uses symvar(F) as the independent variable.
    limit(F) uses a = 0 as the limit point.
    limit(F,x,a,'right') or limit(F,x,a,'left') specify the direction
    of a one-sided limit.
 
    Examples:
      syms x a t h;
 
      limit(sin(x)/x)                 returns   1
      limit((x-2)/(x^2-4),2)          returns   1/4
      limit((1+2*t/x)^(3*x),x,inf)    returns   exp(6*t)
      limit(1/x,x,0,'right')          returns   inf
      limit(1/x,x,0,'left')           returns   -inf
      limit((sin(x+h)-sin(x))/h,h,0)  returns   cos(x)
      v = [(1 + a/x)^x, exp(-x)];
      limit(v,x,inf,'left')           returns   [exp(a),  0]

 

 

08:求导数:diff(f,x,n)

--- diff(f,x,n) 表示函数f对自变量x求n阶导数

 

>> f=x^2+exp(x)+log(x)+sin(x)+cos(x)
 
f =
 
cos(x) + exp(x) + log(x) + sin(x) + x^2
 
>> diff(f,x,2)
 
ans =
 
exp(x) - cos(x) - sin(x) - 1/x^2 + 2
 
>> 

 

 

 

09 泰勒展开:taylor(f,x,a,'Order',n)

--- taylor(f,x,a,'Order',n) 表示函数f在自变量x=a处的泰勒展开式,n为展开的阶数

 

>> f=exp(x)
 
f =
 
exp(x)
 
>> taylor(f,x,0,'Order',3)
 
ans =
 
x^2/2 + x + 1
 
>> taylor(f,x,1,'Order',3)
 
ans =
 
exp(1) + exp(1)*(x - 1) + (exp(1)*(x - 1)^2)/2
 
>> 

 

 

 

10 求积分:int(f,x,a,b)

--- int(f,x)     表示函数f对自变量x的不定积分
--- int(f,x,a,b) 表示函数f对自变量x从a到b的定积分,a和b可以为正负inf

 

>> f=sin(x)
 
f =
 
sin(x)
 
>> int(f,x,0,pi)
 
ans =
 
2
 
>> int(f,x)
 
ans =
 
-cos(x)
 
>> 

 

 

 

 

 美化符号表达式:pretty(f)

 

>> f=sin(pi/3)

f =

    0.8660

>> pretty(f)
未定义与 'double' 类型的输入参数相对应的函数 'pretty'>> f=sin(sym(pi/3))
 
f =
 
3^(1/2)/2
 
>> pretty(f)
sqrt(3)
-------
   2

>> 

 

 

 

##########################

posted @ 2021-05-15 03:35  igoodful  阅读(525)  评论(0编辑  收藏  举报