QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 736|回复: 0
打印 上一主题 下一主题

Matlab符号基本运算—4

[复制链接]
字体大小: 正常 放大

413

主题

36

听众

1854

积分

升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

    跳转到指定楼层
    1#
    发表于 2015-7-20 18:55 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    命令16  代数方程的符号解析解
    函数  solve
    格式  g = solve(eq)   %输入参量eq可以是符号表达式或字符串。若eq是一符号表达式
    x^2 -2*x-1或一没有等号的字符串’x^2-2*x-1’,则solve(eq)对方程eq中的缺省变量(由
    命令findsym(eq)确定的变量)求解方程eq=0。若输出参量g为单一变量,则对于有多重
    解的非线性方程,g为一行向量。
    g = solve(eq,var)   %对符号表达式或没有等号的字符串eq中指定的变量var求解方程
    eq(var)=0。
    g = solve(eq1,eq2,…,eqn)   %输入参量eq1,eq2,…,eqn可以是符号表达式或字符串。
    该命令对方程组eq1,eq2,…,eqn中由命令findsym确定的n个变量如x1,x2,…,xn求解。
    若g为一单个变量,则g为一包含n个解的结构;若g为有n个变量的向量,则分别返回结
    果给相应的变量。
    g = solve(eq1,eq2,…,eqn,var1,var2,…,varn)   %对方程组eq1,eq2,…,eqn中指定的n个
    变量如var1,var2,…,varn求解。
    注意:对于单个的方程或方程组,若不存在符号解,则返回方程(组)的数值解。
    例3-15
    >>solve('a*x^2 + b*x + c')
    >>solve('a*x^2 + b*x + c','b')
    >>solve('x + y = 1','x - 11*y = 5')
    >>A = solve('a*u^2 + v^2', 'u - v = 1', 'a^2 - 5*a +6')
    计算结果为:
    ans =
    [ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
    [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
    ans =
    -(a*x^2+c)/x
    ans =
        x: [1x1 sym]
        y: [1x1 sym]
    A =
        a: [4x1 sym]
        u: [4x1 sym]
        v: [4x1 sym]

    命令17  以共同的子表达式形式重写一符号表达式
    函数  subexpr
    格式  [Y,SIGMA] = subexpr(X,SIGMA)
    [Y,SIGMA] = subexpr(X,'SIGMA')
    说明  找出符号表达式 X中相同的子表达式,再结合命令pretty(X)将X中相同的、比较复
    杂的子字符串用符号%1,%2,…代替。而用命令pretty(Y)将X中相同的、比较复杂的子字
    符串用符号SIGMA代替。
    例3-16
    >>t = solve('a*x^3+b*x^2+c*x+d = 0');
    >> [r,s] = subexpr(t,'s');
    >>pretty(t)
    >>pretty(r)
    计算结果为:(略)

    命令18  特征多项式
    函数  poly
    格式  p = poly(A)或p = poly(A, v)
    说明  若A为一数值阵列,则返回矩阵A的特征多项式的系数,且有:命令poly(sym(A))
    近似等于poly2sym(poly(A))。其近似程度取决于舍入误差的大小。若A为一符号矩阵,
    则返回矩阵A的变量为x的特征多项式。若带上参量v,则返回变量为v的特征多项式。
    例3-17
    >>A = hilb(4);
    >>p = poly(A)
    >>q = poly(sym(A))
    >>s = poly(sym(A),z)
    计算结果为:
    p =
        1.0000   -1.6762    0.2652   -0.0017    0.0000
    q =
        x^4-176/105*x^3+3341/12600*x^2-41/23625*x+1/6048000
    s =
        -176/105*z^3+3341/12600*z^2-41/23625*z+1/6048000+z^4

    命令19  将多项式系数向量转化为带符号变量的多项式
    函数  poly2sym
    格式  r = poly2sym(c)和r = poly2sym(c, v)  
    说明  将系数在数值向量c中的多项式转化成相应的带符号变量的多项式(按次数的降幂
    排列)。缺省的符号变量为x;
    若带上参量v,则符号变量用v显示。poly2sym使用命令sym的缺省转换模式(有理形式)
    将数值型系数转换为符号常数。该模式将数值转换成接近的整数比值的表达式,否则
    用2的幂指数表示。若x有一数值值,且命令sym能将c的元素精确表示,
    则eval(poly2sym(c))的结果与polyval(c,x)相同。
    例3-18
    >>r1 = poly2sym([1 2 3 4])
    >>r2 = poly2sym([.694228, sqrt(2), sin(pi/3)])
    >>r3 = poly2sym([1 0 1 -1 2], y)
    计算结果为:
       r1 =
           x^3+2*x^2+3*x+4
       r2 =
           6253049924220329/9007199254740992*x^2+x*2^(1/2)+1/2*3^(1/2)
       r3 =
           y^4+y^2-y+2

    命令20  将复杂的符号表达式显示成我们习惯的数学书写形式
    函数  pretty
    格式  pretty(S)   
    %用缺省的线型宽度79显示符号矩阵s中每一元素
          pretty(S,n)   %用指定的线型宽度n显示
    例3-19
    >>A = sym(pascal(3));
    >>B = eig(A)
    >>pretty(B,50)  % 多看几次结果,会发现该命令显示的特点
    >>syms x
    >>y=log(x)/sqrt(x);
    >>dy = diff(y)
    >>pretty(dy)
    计算结果为:
    B =
         [         1]
         [ 4+15^(1/2)]
         [ 4 -15^(1/2)]
    [    1    ]
    [         ]
    [      1/2]
    [4 + 15   ]
    [         ]
    [      1/2]
    [4 - 15   ]
    dy =
        1/x^(3/2)-1/2*log(x)/x^(3/2)
    1          log(x~)
    ----  - 1/2   -------
      3/2          3/2
    x~          x~

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    数学中国版主团队!
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-22 03:52 , Processed in 0.344241 second(s), 54 queries .

    回顶部