Matlab符号微积分笔记

19 篇文章 6 订阅

1.符号极限

limit(F,x,a) 对表达式F,x -> a时的极限
limit(F,a)对上面函数的简化,对表达式F,默认自变量 -> a时的极限,这里的默认自变量可以通过findsym(F,1)查找出来,一般是离x字母最近的自变量。

例如:

clear
clc
syms a b x y;
f=a+2*b+3*x+4*y;
limit(f,2)
findsym(f,1)
结果

ans =
 
a + 2*b + 4*y + 6
 

ans =

x
limit(F) 对上面函数的进一步简化,对表达式F,默认自变量 -> 0时的极限.
limit(F,x,a,'right') or limit(F,x,a,'left') 对表达式F,x -> a时的右极限和左极限

下面是help limit中的例子,inf的意思是无穷大,exp()函数表示e的多少次方

    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]
例:当n→∞时(1+1/n)^n的极限为e

clear
clc
syms n;
limit((1+1/n)^n,n,inf)
结果

ans =
 
exp(1)

注意:limit函数仅仅用于求函数极限,不能直接用于数列极限,和式极限

diff微分和差商

diff微分和差分
微分运算;help sym/diff,差分运算help diff
注意diff没有使用工具箱是差分运算,使用符号工具箱时是微分运算

符号函数部分
diff(S) S为符号函数时,计算S的导数,默认自变量可以通过findsym(S,1)来查找
diff(S,'v') or diff(S,sym('v')) S为符号函数时,计算S的导数,自变量为v
diff(S,n) S为符号函数时,计算S的n阶导数,使用默认自变量
diff(S,'v',n) S为符号函数时,计算S的n阶导数,自变量为v

clear
clc
syms x;
f=log(x)+sin(x)+x^2
diff(f)
结果

f =
 
log(x) + sin(x) + x^2
 
 
ans =
 
2*x + cos(x) + 1/x

clear
clc
syms x y;
f=x^6+y^5
diff(f,y,3)
结果

f =
 
x^6 + y^5
 
 
ans =
 
60*y^2


一般函数部分
diff(X) X为向量时(行列均可),计算相邻两数的差[X(2)-X(1)  X(3)-X(2) ... X(n)-X(n-1)]
diff(X) X为矩阵时,计算矩阵的2~n行与1~n-1行的差,[X(2:n,:) - X(1:n-1,:)]
diff(X,N) 对上面函数diff(X)的扩充,这里的N指定N阶差分,二阶差分是对一阶差分的结果再做差分运算
DIFF(X,N,DIM) 对上面函数diff(X,N)的扩充,DIM取1或2,取1时按行差分,与上面结果一样,取2时按列差分

clear
clc
x=1:10
diff(x)
结果

x =

     1     2     3     4     5     6     7     8     9    10


ans =

     1     1     1     1     1     1     1     1     1

clear
clc
x=magic(4)
diff(x)
结果

x =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1


ans =

   -11     9     7    -5
     4    -4    -4     4
    -5     7     9   -11

clear
clc
x=magic(3)
diff(x,1)
结果

x =

     8     1     6
     3     5     7
     4     9     2


ans =

    -5     4     1
     1     4    -5

clear
clc
x=magic(3)
diff(x,1,1)
结果

x =

     8     1     6
     3     5     7
     4     9     2


ans =

    -5     4     1
     1     4    -5
例:二阶差分

clear
clc
x=magic(3)
diff(x,2,1)
结果

x =

     8     1     6
     3     5     7
     4     9     2


ans =

     6     0    -6
例:按列差分

clear
clc
x=magic(3)
diff(x,1,2)
结果

x =

     8     1     6
     3     5     7
     4     9     2


ans =

    -7     5
     2     2
     5    -7
例:通过差分求近似导数△y/△x
clear
clc
dx=0.01*2*pi;
x=0:dx:2*pi;
y=sin(x);
f=diff(y)/dx

结果

f =

  Columns 1 through 18

    0.9993    0.9954    0.9875    0.9758    0.9601    0.9407    0.9176    0.8909    0.8606    0.8269    0.7900    0.7500    0.7070    0.6612    0.6128    0.5620    0.5090    0.4539

  Columns 19 through 36

    0.3971    0.3387    0.2789    0.2181    0.1564    0.0941    0.0314   -0.0314   -0.0941   -0.1564   -0.2181   -0.2789   -0.3387   -0.3971   -0.4539   -0.5090   -0.5620   -0.6128

  Columns 37 through 54

   -0.6612   -0.7070   -0.7500   -0.7900   -0.8269   -0.8606   -0.8909   -0.9176   -0.9407   -0.9601   -0.9758   -0.9875   -0.9954   -0.9993   -0.9993   -0.9954   -0.9875   -0.9758

  Columns 55 through 72

   -0.9601   -0.9407   -0.9176   -0.8909   -0.8606   -0.8269   -0.7900   -0.7500   -0.7070   -0.6612   -0.6128   -0.5620   -0.5090   -0.4539   -0.3971   -0.3387   -0.2789   -0.2181

  Columns 73 through 90

   -0.1564   -0.0941   -0.0314    0.0314    0.0941    0.1564    0.2181    0.2789    0.3387    0.3971    0.4539    0.5090    0.5620    0.6128    0.6612    0.7070    0.7500    0.7900

  Columns 91 through 100

    0.8269    0.8606    0.8909    0.9176    0.9407    0.9601    0.9758    0.9875    0.9954    0.9993

int符号积分
help sym/int
int(S) S为符号函数,对默认自变量求不定积分,默认自变量可通过findsym(S,1)查找
int(S,v) S为符号函数,对自变量v求不定积分
int(S,a,b) S为符号函数,对默认自变量求定积分,积分区域为a -> b

int(S,v,a,b) S为符号函数,对自变量v求定积分,积分区域为a -> b

help sym/int文档例子

    Examples:
      syms x x1 alpha u t;
      A = [cos(x*t),sin(x*t);-sin(x*t),cos(x*t)];
      int(1/(1+x^2))           returns     atan(x)
      int(sin(alpha*u),alpha)  returns     -cos(alpha*u)/u
      int(besselj(1,x),x)      returns     -besselj(0,x)
      int(x1*log(1+x1),0,1)    returns     1/4
      int(4*x*t,x,2,sin(t))    returns     -2*t*cos(t)^2 - 6*t
      int([exp(t),exp(alpha*t)])  returns  [ exp(t), exp(alpha*t)/alpha]
      int(A,t)                 returns      [sin(t*x)/x, -cos(t*x)/x]
                                            [cos(t*x)/x,  sin(t*x)/x]
例:对ln(x)求不定积分
clear
clc
syms x;
f=log(x);
int(f)
结果

ans =
 
x*(log(x) - 1)
例:对sin(x),求0~π的定积分

clear
clc
syms x;
f=sin(x);
int(f,0,pi)
结果

ans =
 
2


积分变换
傅里叶变换,拉普拉斯变换,Z变换
fouier(f,u,v) 傅里叶变换,f为f(u)的符号表达式,u为自变量,v为像函数的自变量。结果为像函数F(v)
ifourier(F,v,u) 傅里叶逆变换,F为F(v)的符号表达式,v为自变量,u为原函数的自变量。结果为原函数f(u)
laplace(F,w,z) 拉普拉斯变换
ilaplace(L,y,x) 拉普拉斯逆变换
ztrans(f,k,w)  Z变换
iztrans(F,w,k) 逆Z变换

例:求e^(-x^2)的傅里叶变换

clear
clc
syms x t;
f=exp(-x^2)
F=fourier(f,x,t)

结果

f =
 
1/exp(x^2)
 
 
F =
 
pi^(1/2)/exp(t^2/4)

olve求解代数方程
solve('eqn1','eqn2',...,'eqnN') 指定一个或多个符号表达式求零解
solve('eqn1','eqn2',...,'eqnN','var1,var2,...,varN') 指定一个或多个符号表达式求零解,var为自变量

solve('eqn1','eqn2',...,'eqnN','var1','var2',...'varN')  指定一个或多个符号表达式求零解,var为自变量

clear
clc
syms x;
f=cos(x);
solve(f)
结果

ans =
 
pi/2

clear
clc
syms x y;
f1=x+y;
f2=x^3-y^2;
[x,y]=solve(f1,f2)
结果

x =
 
 0
 1
 
 
y =
 
  0
 -1

dsolve求解微分方程
dsolve('eqn1','eqn2', ... ,边界条件,自变量)
D表示求导, D2表示二阶导即d^2/dt^2,D3y表示对y求三阶导

help dsolve文档的例子

    Examples:
 
       dsolve('Dx = -a*x') returns
 
         ans = C1/exp(a*t)
 
       x = dsolve('Dx = -a*x','x(0) = 1','s') returns
 
         x = 1/exp(a*s)
 
       S = dsolve('Df = f + g','Dg = -f + g','f(0) = 1','g(0) = 2')
       returns a structure S with fields
 
         S.f = (i + 1/2)/exp(t*(i - 1)) - exp(t*(i + 1))*(i - 1/2)
         S.g = exp(t*(i + 1))*(i/2 + 1) - (i/2 - 1)/exp(t*(i - 1))
 
       dsolve('Df = f + sin(t)', 'f(pi/2) = 0')
       dsolve('D2y = -a^2*y', 'y(0) = 1, Dy(pi/a) = 0')
       S = dsolve('Dx = y', 'Dy = -x', 'x(0)=0', 'y(0)=1')
       S = dsolve('Du=v, Dv=w, Dw=-u','u(0)=0, v(0)=0, w(0)=1')
       w = dsolve('D3w = -w','w(0)=1, Dw(0)=0, D2w(0)=0')
symsum级数求和
help sym/symsum

symsum(S) 级数求和上下限为a->b

文档例子

    Examples:
       symsum(k)                     k^2/2 - k/2
       symsum(k,0,n-1)               (n*(n - 1))/2
       symsum(k,0,n)                 (n*(n + 1))/2
       simple(symsum(k^2,0,n))       n^3/3 + n^2/2 + n/6
       symsum(k^2,0,10)              385
       symsum(k^2,11,10)             0
       symsum(1/k^2)                 -psi(k, 1)
       symsum(1/k^2,1,Inf)           pi^2/6












  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值