0%

MATLAB之符号计算

本节主要介绍了MATLAB中符号对象的建立与相关运算,包括微积分、级数、方程求解。

符号对象

1.符号对象的建立

  • 符合对象名=sym(A)

    • A可以是一个数值常量、数值矩阵或数值表达式,此时符号对象是一个符号常量

    • A也可以是一个变量名,这时符号对象为一个符号变量

    image-20221115134631714
    • 由结果可以看出符号计算的结果是一个精确的数学表达式,数值计算的结果是一个数值
  • syms 符号变量名1 符号变量名2 …… 符号变量名n %一次定义多个符号变量

    image-20221115140157221

2.符号对象的运算

  • 四则运算+、-、*、/、^符号运算结果依然是一个符号表达式

  • 关系运算符<、<=、>、>=、==、~=

  • 使用assume函数对符号对象设置值域

    • assume(condition) %指定变量满足条件condition
    • assume(expr,set) %指定表达式expr属于集合set
    image-20221115141223254
  • 逻辑运算&、|、~

  • 因式分解与展开运算

    • factor(s):对符号表达式s分解因式
    • expand(s):对符号表达式s进行展开
    • collect(s):对符号表达式s合并同类项
    image-20221115142555549
  • 其他运算

    • 提取有理分式的分子分母:[n,d]=numden(s)
    • 提取符号表达式的系数:c=coeffs(s,x)
    • 符号表达式化简:simplify(s)
    • 符号多项式与多项式系数向量之间的转换
      • 符号多项式转换为多项式系数向量:p=sym2poly(s) %其中符号表达式s只能有一个符号变量
      • 多项式系数向量转化为符号多项式:s=poly2sym(p)
    image-20221115143306302

符号微积分

1.符号函数的极限

  • limit(f,x,a) %求函数f关于变量x在a点的极限
image-20221115145834940

2.符号函数的导数

  • diff(f,x,n) %求函数f关于变量x的n阶导数,n的默认值是1
image-20221115150254742

3.符号函数的积分

  • 不定积分

    • int(f,x) %即求函数f对变量x的不定积分
    image-20221115150645038
  • 定积分

    • int(f,x,a,b)
    • a,b分别表示定积分的下限和上限
    • a,b中有一个符号表达式时,函数返回一个符号函数
    image-20221115151126251

级数

1.级数求和

  • symsum(s,v,n,m)
  • s表示一个级数的通项,是一个符号表达式
  • v是求和变量
  • n、m时是求和变量v的初值和末值
image-20221115153036188

2.泰勒级数

  • taylor(f,v,a,Name,Value)

  • 函数f按变量v在a点展开为泰勒级数

  • Name为选项名,Value为选项值

    Name Value
    ‘ExpansionPoint’ 指定展开点,默认为0
    ‘Order’ 指定截断参数,默认为6,即展开式的最高阶为5
    ‘OrderMode’ 指定展开式采用绝对阶’Absolute’(默认)或相对阶’Relative’
image-20221115154034943

符号方程求解

1.代数方程符号求解

  • solve(s,v) %求解符号表达式s的代数方程,求解变量为v
image-20221115155943524
  • solve函数求解方程不一定准确

2.常微分方程符号求解

  • dsolve(e,c,v)
  • e是常微分方程,导数用diff函数表示
  • v是方程中的自变量
  • 若没有给出初始条件c,则求方程的通解

例1:

image-20221115162155578

image-20221115162301125

例2:

image-20221115162421769

image-20221115162738557

欢迎来到ssy的世界