【MATLAB】MATLAB符号计算及文件

符号计算

  • 数值计算:必须先对变量赋值,然后才能参与运算,运算结果是数值;
  • 符号计算:无须实现对变量赋值,而将所得结果以标准的符号形式来表示;
    • 特点:
      1. 运算对象可以是没赋值的符号变量;
      2. 以推理解析的方式进行运算,因此不受计算误差累积所带来的困扰;
符号对象
  • 符号对象的建立
    1. sym函数:用于建立单个符号对象,其常用的调用格式为:
      • 符号对象名 = sym(A)
      • 将由A来建立符号对象。其中,A可以是一个数值常量、数值矩阵或数值表达式(不加单引号),此时符号对象为一个符号常量;A可以是一个变量名(加单引号),这是符号对象为一个符号变量;
    2. syms命令:用于一次定义多个符号变量,其一般调用格式为:
      • syms符号变量名1 符号变量名2 … 符号变量名n
      • 其中,变量名不能加打印好,相互之间用空格隔开;
  • 符号对象的运算
    1. 四则运算:符号表达式的四则运算与数值运算一样,用+、-、*、/运算实现,其运算结果依然是一个符号表达式;
    2. 关系运算:
      • 6中关系运算符:< <= > >= == ~=
      • 对应的6个函数:lt le gt ge eq ne
        • 若参与运算的是符号表达式,其结果是一个符号关系表达式;若参与运算的是符号矩阵,其结果是有符号关系表达式组成的矩阵;
      • 再进行符号对象的运算前,可用assume函数对符号对象设置值域,函数调用格式为:
        • assume(condition)
        • assume(expr, set)
        • 第一种格式指定变量满足条件condition,第二种格式制定表达式expr属于集合set
    3. 逻辑运算:
      • 3中逻辑运算符:&、|、~
      • 4个逻辑运算函数:and(a,b),or(a,b),not(a,b),xor(a,b)
    4. 因式分解与展开运算
      1. factor(s):对符号变量表达式s分解因式
      2. expand(s):对符号表达式s进行展开
      3. collect(s):对符号表达式s合并同类项
      4. collect(s,v):对符号表达式s按变量v合并同类项
    5. 其他运算:
      1. 提取有理分式的分子分母:[n,d] = numden(s)
      2. 提取符号表达式的系数:c = coeffs(s,x)
      3. 符号表达式化简:simplify(s)
      4. 符号多项式与多项式系数向量之间的转换:
        • 符号多项式转换为多项式系数向量:sym2poly
        • 多项式系数向量转换为符号多形式:poly2sym
    6. 符号运算中变量的确定
      • 如果没有明确制定自变量,MATLAB将按以下原则确定主变量并对其进行相应运算:
        1. 寻找除i,j之外,在字母顺序上最接近x的小写字母;
        2. 若表达式中有两个符号变量与x距离相等,则ascll码大的优先
      • symvar函数可以用于查找一个符号表达式中的符号变量,函数的调用格式为:symvar(s,n)
  • 符号矩阵
M文件概述
  • 独立M文件
    • 命令文件script file
  • 可调用M文件
    • 函数文件function file
  • 规则:
    1. 第一行必须以function为引导词,应遵循形式:
      • function <返回变量> = <函数名>(<输入变量>)
    2. M文件的文件名默认为<函数名>.m
    3. 程序中变量默认为几步变量,即不保存在工作空间中,仅在函数运行期间有效
  • 命名文件和函数文件的比较
信息 命名文件 函数文件
参数 无输入无输出 可有可无输入 可有可无输出
数据 全局变量 为局部变量 也可设为全局变量

猜你喜欢

转载自blog.csdn.net/weixin_44321600/article/details/107297979
今日推荐