zoukankan      html  css  js  c++  java
  • 【数模学习】Matlab 符号微积分 计算微分、雅可比矩阵、不定积分与定积分、求解微分方程

    1.计算微分

         函数diff可以用来计算符号表达式的微分,其调用格式如下:

         df=diff(f,n);

         参数说明:df是微分运算的结果。f是输入的表达式,n是求导的次数,其默认值是1.

         举例:

          >>g = diff(sym(sin(x)),1);

          g =

          cos(x)

    2.计算雅可比矩阵

         函数jacobian可以用来计算符号表达式的雅可比矩阵

         在Matlab中,jacobian的调用格式如下:

          Jf=jacobian(f,v);

          参数说明:f是符号表达式,v是由不同变量名组成的向量。当v中只含有一个变量时,jacobian(f,v)和diff(f)是等价的。

          举例:调用函数jacobian

          >> Jf1=jacobian(sym('x*log(1+x)'),sym('x'));
          >> Jf2=jacobian(sym('[x+y,x*y]'),[sym('x'),sym('y')]);
          >> Jf1  
          Jf1 =
          log(x + 1) + x/(x + 1)
         >> Jf2
         Jf2 =
         [ 1, 1]
         [ y, x]

    3.计算不定积分和定积分

        函数int可以用来计算定积分与不定积分,该函数调用格式如下:

         v=int(S);

         v=int(S,var);

         v=int(S,a,b);

         v=int(S,var,a,b);

         参数说明:v是返回的结果,S是被积函数,可以使一个向量或者矩阵,var是积分表达式中的积分变量。a和b用于指定积分的积分度量。a和b用于指定积分的上下界。当var默认的时候,函数int将默认对x进行积分。 

         举例:调用函数int

         >> syms  x y a;

         >> v1=int([sin(x),x*exp(x)])
         v1 =
         [ -cos(x), exp(x)*(x - 1)]
         >> v12=int(y*sin(x*y),y);
         >> v12
         v12 =
         (sin(x*y) - x*y*cos(x*y))/x^2
        >> v3=int([sin(x)/x,x*exp(-x^2)],0,inf);
        >> v3
         v3 =
        [ pi/2, 1/2]
        >> v4=int(sin(x*a)/x,x,0,1);
        >> v4
        v4 =
        sinint(a)

    4.求解微分方程

        函数dsolve直接的用法是用来求解微分方程,可以计算出被积函数的原函数,再代入积分限进行计算,就可以得到积分结果了。

        相关程序如下:

        >> F=dsolve('Df=sin(t)*cos(t)');
        >> v=subs(F,2)-subs(F,1); %subs通用置换指令
        >> v
        v =
        sin(2)^2/2 - sin(1)^2/2

        >> double(v)
        ans =
        0.059374196079117

    5.计算极限

        函数limit可以用来计算不同类型表达式的极限,其调用格式为:

        v=limit(f);

        v=limit(f,a);

        v=limit(f,x,a);

        v=limit(f,x,a,'right');

        v=limit(f,x,a,'left');

        参数说明:v是返回的极限值,f是符号表达式,它可以是单个表达式,也可以是由多个表达式组成的向量或者矩阵,x指定符号表达式中的x为变量,a是用于指定x->a的极限值,‘right’和‘left’分别用于指定表达式的右极限和左极限。

        举例:调用函数limit计算极限

        syms x a t;
        v1=limit((sin(x)/x)); %计算表达式在x趋向于0时的极限
        v2=limit((x-1)/(x^2-1),1); %计算表达式在x趋向于1时的极限
        v3=limit((1+2*x/t)^(3*t),t,inf);  %计算表达式在t趋向于无穷大(inf)时的极限
        v4=limit(1/x,x,0,'right');  %计算表达式在x趋向于0时的右极限
        v5=limit(1/x,x,0,'left');  %计算表达式在x趋向于0时的左极限

        输出结果为:

        v1 = 1 
        >> v2 
        v2 = 
       1/2 
       >> v3 
       v3 =
       exp(6*x)
       >> v4
       v4 =
       Inf 
       >> v5 
       v5 = 
       -Inf
      说明:输入表达式还可以是向量或者矩阵。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    DES算法
    流密码_电子科大慕课笔记_七八讲
    王道考研《2019年操作系统考研复习指导》第一章笔记
    欧拉公式C++实现
    编译原理第一章学习笔记
    leetcode 728. Self Dividing Numbers
    leetcode 942. DI String Match
    2019年第十届蓝桥杯JAVA开发A组第二题
    2019年第十届蓝桥杯JAVA开发A组第一题
    python类的内置方法
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965316.html
Copyright © 2011-2022 走看看