精华内容
下载资源
问答
  • matlab符号计算

    2012-01-11 09:50:09
    matlab符号计算
  • MATLAB符号计算

    2008-11-23 22:43:08
    MATLAB符号计算 MATLAB符号计算 MATLAB符号计算MATLAB符号计算
  • MatlAB 符号计算

    2009-03-24 21:42:53
    这是一组PPT讲义,详细介绍了怎么用MatlAB符号计算,应用范围很广
  • Matlab符号计算

    千次阅读 2015-10-22 11:43:26
    MATLAB中是将一符号表示式储存唯一字串 (character string),即是以二个单引号之内的表示式来定义其为一符号式,例如 'tan(x)', 'x^4 +2*x^2 /5' 的两个式子。 l 把字符表达式转换为符号变量 y=sym('2*sin(x)...

    符号表达式

     

    在MATLAB中是将一符号表示式储存唯一字串 (character string),即是以二个单引号之内的表示式来定义其为一符号式,例如 'tan(x)', 'x^4 +2*x^2 /5' 的两个式子。

    l        把字符表达式转换为符号变量

    y=sym('2*sin(x)*cos(x)') %把字符表达式转换为符号变量

    y=simple(y)                     %按规则把已有的y符号表达式化成最简形式

    y=

    2*sin(x)*cos(x)

    y=

    sin(2*x) 

     

     

     

    ?symsx%这个必须先定义一个变量X

    ?A=[3/2,(x^2+3)/(2*x-1)+3*x/(x-1);4/x^2,3*x+4]

     

    A=

     

    [                      3/2, (x^2+3)/(2*x-1)+3*x/(x-1)]

    [                    4/x^2,                    3*x+4]

     

    l        MATLAB提供了一个函数ezplot 可以画单变数的符号式

    符号函数

    horner(S)

    将S转换成巢状表示式

    numden(S)

    将S的有理数表示成分子和分母的形式

    numeric(S)

    将S改成数值式(S不能含有任何符号变数)

    poly2sym(c)

    转换多项式系数向量c为符号多项式

    pretty(S)

    将S显示成数学式

    sym2poly(S)

    转换S为多项式系数向量

    symadd(A,B)

    执行A+B的符号加法

    symdiv(A,B)

    执行A+B的符号除法

    symmul(A,B)

    执行A+B的符号乘法

    sympow(S,p)

    执行S^p的符号次方运算

    symsub(A,B)

    执行A+B的符号减法

    ?syms x

    ?s=2*x^2;

    ?horner(s)

    ans =

    2*x^2

    ?pretty(s)

                                           2

    2 x

       ?s=3*x^4+4*x^3+x+20;

    ?sym2poly(s)

    ans =

    3     4     0     1    20

    符号微积分

    l        符号微分

    ?syms x

    ?s=3*x^4+4*x^3+x+20;

    ?diff(s)%x的导数

    ans =

    12*x^3+12*x^2+1 

    ?diff(s,x,2)%二阶导数

    ans =

    36*x^2+24*x

    l        符号积分

    ?int(s)

    ans =

    3/5*x^5+x^4+1/2*x^2+20*x

    符号卷积与积分变换

    l        符号卷积

    ?syms tao;t=sym('t','positive');           %t定义为限定性符号变量<4>

    ut=sym('Heaviside(t)-Heaviside(t-1)');ht=t*exp(-t);

    yt53=int(subs(ut,t,tao)*subs(ht,t,t-tao),tao,0,t);

    yt53=collect(yt53,'Heaviside(t-1)')   

    yt53 =

    (-1+exp(1-t)*t)*Heaviside(t-1)+1+(-t-1)*exp(-t)

    l        符号积分变换

    1.             Fourier变换及其反变换

    ?ft=fourier(s)

    ft=

    6*pi*Dirac(4,w)-8*i*pi*Dirac(3,w)+2*i*pi*Dirac(1,w)+40*pi*Dirac(w)

    ?ifourier(ft)

    ans=

    3*x^4+4*x^3+x+20

    2.             Laplace变换及其反变换

    ?fs=laplace(s)

     

    fs=

     

    72/s^5+24/s^4+1/s^2+20/s

     

    ?ilaplace(fs)

     

    ans=

     

    3*t^4+4*t^3+t+20

    3.             Z变换及其反变换

    syms z

    ?fz=ztrans(s,x,z)

    fz =

    3*z*(z^3+11*z^2+11*z+1)/(z-1)^5+4*z*(z^2+1+4*z)/(z-1)^4+z/(z-1)^2+20*z/(z-1)

    » simple(fz)

    ans =

    2*z*(-36*z^3+81*z^2-28*z+9+10*z^4)/(z-1)^5

    » syms n

    » iztrans(fz,z,n)  

    ans =

    3*n^4+4*n^3+n+20


    出处:http://cs.nju.edu.cn/yangxc/dcc2003.files/matlab/matlab/11.htm

    展开全文
  • 第7章 MATLAB 符号计算

    2021-01-19 16:35:52
    第7章 MATLAB符号计算7.1 符号计算基础7.2 符号导数及其应用7.3 符号积分7.4 级数7.5 符号方程求解7.1 符号计算基础7.1.1 符号对象1. 建立符号变量和符号常数
  • MATLAB 符号计算

    2014-10-10 17:32:46
    上面两个函数的功能都是创建符号变量,符号常量,符号函数以及符号表达式,只不过调用的方式不同。 用class()函数可以测量所用对象是什么类型   例1.用命令函数sym()与syms()建立符号函数f1与方程e1 >> syms x ...

    1.sym()

    2.syms()

    上面两个函数的功能都是创建符号变量,符号常量,符号函数以及符号表达式,只不过调用的方式不同。

    class()函数可以测量所用对象是什么类型

     

    1.用命令函数sym()syms()建立符号函数f1与方程e1

    >> syms x y z;
    >> f1=x^2+y^2+z^2+1; 
    >> e1=sym('a*x^2+b*x+c');
    >> f1
     
    f1 =
     
    x^2 + y^2 + z^2 + 1
     
    >> e1
     
    e1 =
    
    a*x^2 + b*x + c

    1.subexpr()

    [Y,SIGMA]=subexpr(S,SIGMA)

    用指定变量SIGMA的值(必须为符号对象)来替代符号表达式中重复出现的字符串,替换后的结果由Y返回,被替换的字符串由SIGMA返回

    [Y,SIGMA]=subexpr(S,SIGMA)

    这种形式跟上一种形式的不同之处是第二个个输入参数是字符或字符串,用来替换表达式中重复出现的字符串。

     

    2

    >> syms a x;
    >> s=solve('x^3+a*x+2=0')
     
    s =
     
                                                                                               ((a^3/27 + 1)^(1/2) - 1)^(1/3) - a/(3*((a^3/27 + 1)^(1/2) - 1)^(1/3))
     (3^(1/2)*(a/(3*((a^3/27 + 1)^(1/2) - 1)^(1/3)) + ((a^3/27 + 1)^(1/2) - 1)^(1/3))*i)/2 + a/(6*((a^3/27 + 1)^(1/2) - 1)^(1/3)) - ((a^3/27 + 1)^(1/2) - 1)^(1/3)/2
     a/(6*((a^3/27 + 1)^(1/2) - 1)^(1/3)) - (3^(1/2)*(a/(3*((a^3/27 + 1)^(1/2) - 1)^(1/3)) + ((a^3/27 + 1)^(1/2) - 1)^(1/3))*i)/2 - ((a^3/27 + 1)^(1/2) - 1)^(1/3)/2
     
    >> r=subexpr(s)
     
    sigma = 
     
    (a^3/27 + 1)^(1/2) - 1
     
     
     
    r =
     
                                                         sigma^(1/3) - a/(3*sigma^(1/3))
     (3^(1/2)*(a/(3*sigma^(1/3)) + sigma^(1/3))*i)/2 + a/(6*sigma^(1/3)) - sigma^(1/3)/2
     a/(6*sigma^(1/3)) - (3^(1/2)*(a/(3*sigma^(1/3)) + sigma^(1/3))*i)/2 - sigma^(1/3)/2
    >>  [Y,SIGMA]=subexpr(s,'sysysy')
     
    Y =
     
                                                           sysysy^(1/3) - a/(3*sysysy^(1/3))
     (3^(1/2)*(a/(3*sysysy^(1/3)) + sysysy^(1/3))*i)/2 + a/(6*sysysy^(1/3)) - sysysy^(1/3)/2
     a/(6*sysysy^(1/3)) - (3^(1/2)*(a/(3*sysysy^(1/3)) + sysysy^(1/3))*i)/2 - sysysy^(1/3)/2
     
     
    SIGMA =
     
    (a^3/27 + 1)^(1/2) - 1

    1.collect()

    实现将表达式中的同类项合并。

    具体调用格式有两种:

    R=collect(S)  将表达式S中的相同次幂合并,S可以是表达式也可以是符号矩阵

    R=collect(S,’y’)  将表达式Sy的相同次幂合并,如果没有指定具体是哪个符号,则默认合并x的相同次幂。如果表达式中没有变量x,又没有指定变量,则是随机的。

    3

    >> syms x y;
    >> h=(x-1).^3+(y-1).^4+(x+y).^2;
    >> R=collect(h)
     
    R =
     
    x^3 - 2*x^2 + (2*y + 3)*x + (y - 1)^4 + y^2 - 1
     
    >> R=collect(h,'y')
     
    R =
     
    y^4 - 4*y^3 + 7*y^2 + (2*x - 4)*y + (x - 1)^3 + x^2 + 1

    4

    >> syms a b;
    >> h=(a-1).^3+(b-1).^4+(a+b).^2;
    >> R=collect(h)
     
    R =
     
    b^4 - 4*b^3 + 7*b^2 + (2*a - 4)*b + (a - 1)^3 + a^2 + 1

    1.expand()

    调用格式:
    R=expand(S)  将表达式S中的各项展开,该函数用于多项式、指数函数、三角函数、对数函数

    5

    >> syms x y;
    >> h=cos(x+y);
    >> expand(h)
     
    ans =
     
    cos(x)*cos(y) - sin(x)*sin(y)
     
    >> f=exp(x+y+2);
    >> expand(f)
     
    ans =
     
    exp(2)*exp(x)*exp(y)

    1.simplify()

    功能:根据一定的规则,对表达式进行简化

    2.simple()

    功能:寻找表达式的最简形式,返回表达式变得剪短的形式,目标是表达式用最少的字符表示,且simple函数综合使用了一下几个不同的函数进行不同方式的化简。

    simplify()  简化

    collect()  合并同类项

    factor() 因式分解

    convert() 一种形式转化成另一种形式

    radsimple() 对包含根式的表达式化简

    combine()  对表达式中求和、乘积、幂的形式合并

     

     

    例6:可以自己运行一下下面的代码。

    >> syms x y;
    >> simple(cos(x+y)+sin(2*x)+(x+y).^5+tan(x+y))




    展开全文
  • MATLAB符号计算常用命令.pdf
  • 第6章 MATLAB符号计算 在工程应用数学和科学上经常要用到符号计算功能MATLAB开发商Mathwork公司以maple的内核为符号计算的引擎依赖MAOLE已有的库函数开发了在MATLAB环境下实现符号计算的工具箱Symbolic Math Toolbox...
  • 七、MATLAB符号计算

    2021-01-07 03:22:11
    七、MATLAB符号计算 7.1 符号对象 符号对象的计算结果是一个更加精确的表达式。数值计算的结果往往是值。 7.1.1 符号对象的建立 符号对象名=sym(A),A可以是数值常量、矩阵或数值表达式**(不加单引号),符号对象可...
  • matlab符号计算常用命令和函数总结,符号微积分,符号方程,
  • 实验7 Matlab符号计算实验目的:掌握定义符号对象的方法;掌握符号表达式的运算法则以及符号矩阵运算。掌握求符号函数极限及导数的方法。掌握求符号函数定积分和不定积分的方法。实验内容:已知x=6,y=5,利用符号...

    实验7 Matlab符号计算

    实验目的:

    掌握定义符号对象的方法;

    掌握符号表达式的运算法则以及符号矩阵运算。

    掌握求符号函数极限及导数的方法。

    掌握求符号函数定积分和不定积分的方法。

    实验内容:

    已知x=6,y=5,利用符号表达式求

    分解因式。

    (1);

    (2)

    化简表达式

    (1);

    (2)

    已知

    完成下列运算:

    (1).

    (2)B的逆矩阵并验证结果。

    (3)包括B矩阵主对角线元素的下三角阵。

    用符号方法求下列极限或导数。

    ,求和。

    用符号方法求下列积分。

    (1)

    (2)

    (3)

    详细实验内容:

    1.已知x=6,y=5,利用符号表达式求

    >> syms x y

    >> x=6;

    >> y=5;

    >> z=(x+1)./(sqrt(x+3)-sqrt(y))

    z =

    9.16311896062463

    2.分解因式。

    (1);

    (2)

    (1)>> clear

    >> syms x y

    >> factor(x.^4-y.^4)

    ans =

    (x-y)*(x+y)*(x^2+y^2)

    (2)>> clear

    >> syms x

    >> factor(125.*x.^6+75.*x.^4+15.*x.^2+1)

    ans =

    (5*x^2+1)^3

    3.化简表达式

    (1);(2)

    (1)>> clear

    >> syms bata1 bata2

    >> simplify(sin(bata1).*cos(bata2)-cos(bata1).*sin(bata2))

    ans =

    sin(bata1-bata2)

    (2)>> clear

    syms x

    simplify((4.*x.^2+8.*x+3)./(2.*x+1))

    ans =

    2*x+3

    4.已知

    完成下列运算:

    (1).

    (2)B的逆矩阵并验证结果。

    (3)包括B矩阵主对角线元素的下三角阵。

    (1)>> p1=sym([0,1,0;1,0,0;0,0,1]);

    p2=sym([1,0,0;0,1,0;1,0,1]);

    A=sym('[a,b,c;d,e,f;g,h,i]');

    >> B=p1*p2*A

    B =

    [ d, e, f]

    [ a, b, c]

    [ a+g, b+h, c+i]

    (2)>> simplify(inv(B))

    ans =

    [ (i*b-c*h)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b), (-e*c-i*e+f*b+f*h)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b), -(-e*c+f*b)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b)]

    [ -(i*a-c*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b), -(-d*c-i*d+f*a+f*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b), (-d*c+f*a)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b)]

    [ (a*h-b*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b), (-d*b-d*h+e*a+e*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b), -(-d*b+e*a)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b)]

    >> simplify(B*inv(B))

    ans =

    [ 1, 0, 0]

    [ 0, 1, 0]

    [ 0, 0, 1]

    (3)>> B([4,7,8])=[0,0,0]

    B =

    [ d, 0, 0]

    [ a, b, 0]

    [ a+g, b+h, c+i]

    5.用符号方法求下列极限或导数。

    ,求和。

    (1)>> clear

    >> syms x;

    fun=(x.*(exp(sin(x))+1)-2.*(exp(tan(x))-1))./(sin(x)).^3;

    limit(fun,x,0)

    ans =

    -1/2

    (2)>> clear

    syms x;

    fun=(sqrt(x)-sqrt(acos(x)))./sqrt(x+1);

    limit(fun,x,1)

    ans =

    1/2*2^(1/2)

    (3)>> clear

    syms x;

    y=(1-cos(2.*x))./x;

    >> dx1=diff(y)

    dx1 =

    2*sin(2*x)/x-(1-cos(2*x))/x^2

    >> diff(y,2)

    ans =

    4*co

    展开全文
  • MATLAB课件2007-第七讲 MATLAB符号计算.ppt matlab全面综合讲解课件
  • 专题七MATLAB符号计算

    2021-04-28 14:52:43
    MATLAB符号计算 文章目录MATLAB符号计算一、符号对象1、符号对象的建立2、符号对象的运算3、符号矩阵二、符号微积分1、符号函数的极限2.读入数据总结 一、符号对象 1、符号对象的建立 (1)sym函数:用于建立单个...

    MATLAB符号计算



    一、符号对象

    1、符号对象的建立

    (1)sym函数:用于建立单个符号对象,调用格式:
    符号对象名=sym(A)
    将由A来建立符号对象。其中,A可以是一个数值常量、数值矩阵或者数值表达式(不加单引号)。此时符号对象为一个符号常量;A也可以是一个变量名(加单引号),这时符号对象为一个符号变量。
    对比一下程序:
    在这里插入图片描述
    在这里插入图片描述
    由以上例子可以看出:

    • 符号计算的结果是一个精确的数学表达式。
    • 数值计算的结果是一个数值。

    (2)syms命令
    syms命令可以一次定义多个符号变量,其一般调用格式如下:
    syms 符号变量名1 符号变量名2 … 符号变量名n
    例如,要同时定义四个符号变量a、b、c、d,则命令如下:
    .>>syms a b c d

    2、符号对象的运算

    (1)四则运算
    符号表达式的四则运算与数值运算一样,用+、-、*、/、^运算符实现,其运算结果依然是一个符号表达式。
    在这里插入图片描述
    (2)关系运算

    • 6种关系运算符:<、<=、>、>=、==、~=
    • 对应的6个函数:lt()、le()、gt()、ge()、eq()、ne()

    若参与运算的是符号表达式,其结果是一个符号表达式;若参与运算的是符号矩阵,其结果是由符号关系表达式组成的矩阵。
    在进行符号对象的运算前,可用assume函数对符号对象设置值域,调用格式为:
    assume(condition)
    asume(expr,set)
    第一种格式指定变量满足条件condition,第二种格式指定表达式expr属于集合set
    在这里插入图片描述
    (3)逻辑运算

    • 3种逻辑运算符:&(与)、|(或)、~(非)
    • 4个逻辑运算函数:and(a,b)、or(a,b)、not(a,b)、xor(a,b)
      在这里插入图片描述

    (4)因式分解与展开运算

    • factor(s):对符号表达式s分解因式。
    • expand(s):对符号表达式s进行展开。
    • collect(s):对符号表达式s合并同类项。
    • collect(s,v):对符号表达式s按变量v合并同类项
      在这里插入图片描述

    例子:梅森素数的验证问题
    梅森数是指形如2p-1的一类整数,其中p是素数。将梅森数记为Mp。如果梅森数是素数,就称为梅森素数。
    验证M19、M23、M29、M31是否为梅森素数。
    在这里插入图片描述
    在这里插入图片描述
    (5)其他运算

    • 提取有理分式的分子分母:[n,d]=numden(s)
    • 提取符号表达式的系数:c=coeffs(s,x)
    • 符号表达式化简:simplify(s)
    • 符号多项式与多项式系数向量之间的转化:
      – 符号多项式转换为多项式系数向量:p=sym2poly(s)
      – 多项式系数向量转换为符号多项式:s=poly2sym( p)

    例子:求方程ax2+bx+c=0ax^2+bx+c=0的根
    在这里插入图片描述
    注意此处不能调用sym2poly函数
    在这里插入图片描述
    (6)符号运算中变量的确定

    • 如果没有明确指定自变量,MATLAB将按以下原则确定主变量并对其进行相应运算:
      – 寻找除i、j之外,在字母顺序上最接近x的小写字母。
      – 若表达式中有两个符号变量与x的距离相等,则ASCII码大的优先。
    • symvar()函数可以用于查找一个符号表达式中的符号变量:symvar(s,n)
      函数返回符号表达式s中的n个符号变量。因此,可以用symvar(s,1)查找表达式s的主变量。

    3、符号矩阵

    符号矩阵也是一种符号表达式,所以符号表达式运算都可以在矩阵意义下进行。注意这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。
    例如:建立符号矩阵并化简
    [a3b3sin2α+cos2α15xy3x2x5y78] \begin{bmatrix} a^3-b^3 &sin^2α+cos^2α\\ {15xy-3x^2}\over {x-5y} & 78 \end{bmatrix}
    在这里插入图片描述
    例子:当λ取何值时,以下齐次线性方程组有非零解
    {(1λ)x12x2+4x3=02x1+(3λ)x2+x3=0x1+x2+(1λ)x3=0 \left\{ \begin{aligned} (1-λ)x_1-2x_2+4x_3=0\\ 2x_1+(3-λ)x_2+x_3=0\\ x_1+x_2+(1-λ)x_3=0 \end{aligned} \right.
    分析:对于齐次线性方程组,若有非零解的充要条件是其系数矩阵的行列式等于0或者其秩小于n。
    在这里插入图片描述
    因此,当lamda=0、2或者3时,系数矩阵行列式等于0。此时方程组有非零解。

    二、符号微积分

    1、符号函数的极限

    (1)求符号函数极限的命令为limit,其调用格式为:
    limit(f,x,a)
    即求函数f关于变量x在a点的极限
    (2)limit函数的另一种功能是求单边极限:
    limit(f,x,a,‘right’)
    limit(f,x,a,‘left’)
    (3)例子:求下列极限

    • limxaxmamxa\displaystyle\lim_{x \rightarrow a}{{\sqrt[m]{x}-\sqrt[m]{a}}\over{x-a}}
      在这里插入图片描述
    • limn(1+1n)n\displaystyle\lim_{n \rightarrow ∞}{(1+{1\over n})}^n
      在这里插入图片描述

    2、符号函数的导数

    (1)diff(f,x,n)
    即求函数f关于变量x的n阶导数
    (2)例子:求下列函数的导数

    • y=1+exyy=\sqrt{1+e^x},求y'
      在这里插入图片描述
    • z=xeyy2zx,zyz={{xe^y}\over y^2},求z_x',z_y'
      在这里插入图片描述

    3、符号函数的积分

    (1)不定积分
    int(f,x),求函数f对变量x的不定积分
    例子:①(3x2)3dx\int_{} (3-x^2)^3dx
    在这里插入图片描述
    5xt1+x2dt\int_{}{5xt\over {1+x^2}}dt
    在这里插入图片描述
    (2)定积分
    int(f,x,a,b),其中a、b分别表示定积分的下限和上限。

    • 当函数f关于变量x在闭区间[a,b]可积,函数返回一个定积分结果。
    • 当a、b中有一个是inf时,函数返回一个广义积分。
    • 当a、b中有一个符号表达式,函数返回一个符号函数。

    例子
    121xdx\int_{1}^2|1-x|dx
    在这里插入图片描述
    +11+x2dx\int_{-∞}^{+∞}{1\over {1+x^2}}dx
    在这里插入图片描述
    2sinx4xtdt\int_{2}^{sinx}{4x\over t}dt
    在这里插入图片描述

    4、例子

    在这里插入图片描述
    (1)第一问

    xi=0:50:600;
    yi=[4.4,4.5,4.6,4.8,4.9,5.1,5.4,5.2,5.5,5.2,4.9,4.8,4.7];
    p=polyfit(xi,yi,3);
    plot(xi,yi,'o',xi,polyval(p,xi));
    syms x y;
    y=poly2sym(p,x);
    s=int(y,x,0,600);
    v=s*0.6;
    eval(v)
    

    在这里插入图片描述
    求得流量v=1787.4(m3/s)v=1787.4(m^3/s)
    (2)第二问

    xi=0:50:600;
    yi=[4.4,4.5,4.6,4.8,4.9,5.1,5.4,5.2,5.5,5.2,4.9,4.8,4.7];
    p=polyfit(xi,yi,3);
    syms y x;
    y=poly2sym(p,x);
    yii=diff(y,x); 
    x=50:60;                                    
    k=eval(yii);                                
    all(abs(k)<1/1.5)
    

    结果为1

    三、级数

    1、级数求和

    (1)求无穷级数的和需要符号表达式求和函数symsum(s,v,n,m),其中s表示一个级数的通项,是一个符号表达式。v是求和变量,省略时使用系统的默认变量。n和m是求和变量v的初值和末值。
    (2)例子:

    • 求下列级数之和
      s1=1+4+9+16++10000s_1=1+4+9+16+……+10000
      s2=112+1314++(1)n+11n+s_2=1-{1\over 2}+{1\over 3}-{1\over 4}+……+(-1)^{n+1}{1\over n}+……
      s3=113+1517++(1)n+112n1+s_3=1-{1\over 3}+{1\over 5}-{1\over 7}+……+(-1)^{n+1}{1\over 2n-1}+……
      在这里插入图片描述
    • 银行利率计算问题
      在这里插入图片描述
    syms k r;
    p2=eval(symsum(50000*(1+0.045/k)^k,k,2,2))%半年计息
    p4=eval(symsum(50000*(1+0.045/k)^k,k,4,4))%按季度计息
    p12=eval(symsum(50000*(1+0.045/k)^k,k,12,12))%按月计息
    p_inf=limit(50000*(1+r/k)^k,k,inf)%用极限求无限期数
    

    在这里插入图片描述
    从结果知,当期数趋于无限大时,年利率确定,总金额也确定。因此,当年利率为4.5%,计息期趋于无穷时,一年后总金额为:
    50000*exp(0.045)=5.2301e+04

    (3)需要注意的是,符号计算中因为小数都是表示为有理分数的形式,随着计算次数的增加,容易导致分子或分母出现极大整数从而无法计算。
    在这里插入图片描述

    2、泰勒级数

    (1)taylor(f,v,a,Name,Value)
    该函数将函数f按变量v在a点展开为泰勒级数,v的默认值与diff函数相同,a的默认值为0。Name和Value为选项设置,前者为选项名,后者为该选项的值。
    Name有3个可取字符串:
    ①’ExpansionPoint’:指定展开点,对应值可以是标量或向量,未设置时,展开点是0.
    ②’Order’:指定截断参数,对应值为一个正整数。未设置时,截断参数为6,即展开式的最高阶为5。
    ③’OrderMode’:指定展开式采用绝对阶或相对阶,对应值为’Absolute’或’Relative’。未设置时取’Absolute’。
    (2)例子
    ①求函数f在x=1处的5阶泰勒级数展开式
    f(x)=1+x+x21x+x2f(x)={1+x+x^2\over1-x+x^2}
    在这里插入图片描述
    (3)使用泰勒级数展开,可以让计算机只需要通过四则运算便能计算其他复杂函数。
    例子:利用泰勒展开式计算三角函数cosx的值
    在这里插入图片描述

    四、符号方程的求解

    1、代数方程符号求解

    (1)MATLAB中求解符号表达式的代数方程可以用solve()实现:

    • solve(s):求解符号表达式s的代数方程,求解变量为默认变量。
    • solve(s,v):求解符号表达式s的代数方程,求解变量为v。
    • solve(s1,s2,……,sn,v1,v2,……,vn):求解符号表达式s1,s2,……,sn组成的代数方程组,求解变量分别为v1,v2,……,vn。

    (2)例子:解方程ax2+bx+c=0ax^2+bx+c=0
    以下给出四种形式
    在这里插入图片描述
    在这里插入图片描述
    (3)需要注意的是,solve()函数求解方程时不一定准确,有时候方程有解,solve却给出无解。
    例如下面方程组:
    {x+y=98x3+y3=2 \left\{ \begin{aligned} x+y=98\\ \sqrt[3]x+\sqrt[3]y=2 \end{aligned} \right.
    在这里插入图片描述
    但是稍作变换,令y=(2x3)3y=(2-\sqrt[3]x)^3,得到x+(2x3)3=98x+(2-\sqrt[3]x)^3=98
    在这里插入图片描述
    因此,利用solve求解方程组需要尝试不同方法。

    2、常微分方程符号求解

    • MATLAB中,大写字母D表示导数。如,Dy表示y’,D2y表示y’’,Dy(0)=5表示y’(0)=5。但注意,此方法未来新版本替换,而是使用syms声明变量。例如:d2ydt2d^2y\over dt^2,定义代码为:syms y(t);diff(y,t,2)
    • 符号常微分方程求解可以通过函数dsolve()来实现,格式:dsolve(e,c,v)
      用于求解常微分方程e在初值条件c下得特解。参数v是方阵中的自变量,省略时按默认处理,若没给出初值条件c,则求方程的通解。
    • dsolve在求常微分方程组时格式为:
      dsolve(e1,e2,……,en,c1,c2,……,cn,v)

    (1)例子
    ①求下列微分方程或方程组的解

    • dydx=x2+y22x2{dy\over dx}={x^2+y^2\over 2x^2}
      在这里插入图片描述
    • {dydx=4x2ydydx=2xy \left\{ \begin{aligned} {dy\over dx}=4x-2y\\ {dy\over dx}=2x-y \end{aligned} \right.
      在这里插入图片描述
      ②疾病传染问题
      在这里插入图片描述
      (1)当λ=μ=0.3,b=0.7
    syms y(t) t;
    e1=diff(y,t)==0.3*y*(1-y)-0.3*y;
    e2=y(0)==0.7;
    y=dsolve(e1,e2,t)
    fplot(y,[0,100])
    xlabel('时间t');
    ylabel('病人比例y')
    

    在这里插入图片描述
    当λ=μ时,病人比例随着时间增加而减少
    (2)当λ=0.3,μ=0.15,b=0.15时

    syms y(t) t;
    e1=diff(y,t)==0.3*y*(1-y)-0.15*y;
    e2=y(0)==0.3;
    y=dsolve(e1,e2,t)
    fplot(y,[0,100])
    xlabel('时间t');
    ylabel('病人比例y')
    m=limit(y,t,inf)
    

    在这里插入图片描述
    此时,病人比例随着时间增加而增加,并趋于0.5

    总结

    提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

    展开全文
  • MATLAB课件2007-第八讲_MATLAB符号计算.ppt matlab全面综合讲解课件
  • matlab 符号运算1 第七章 MATLAB 符号计算7.1 符号对象和符号表达式7.1.1 符号对象的生成和使用【例7.1-1】符号常数形成中的差异a1=[1/3,pi/7,sqrt(5),pi+sqrt(5)]a2=sym([1/3,pi/7,sqrt(5),pi+sqrt(5)])a3=sym('[1/...
  • MATLAB符号计算课件

    2009-09-25 14:53:27
    MATLAB数学软件\Matlab符号计算.ppt

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,956
精华内容 782
关键字:

matlab符号计算

matlab 订阅