MATLAB 符号计算

7.1 概述

  • 建立在Maple组件的基础上
  • 符号表达式计算,化简
  • 符号矩阵计算
  • 符号微积分
  • 符号函数画图
  • 符号代数方程,微分方程求解
  • 支持可变精度运算?

7.2 符号对象与符号表达式

  • 新的数据类型 sym

符号对象的创建命令

  • 符号常量,符号变量,符号函数,符号表达式

  • sym()

    variable = sym(A,flag);//没有引号
    S = sym('A',flag);//有引号
    
    • 没有引号的: 表示 把一个用数字,数值矩阵,数值表达式创建为符号对象.
      可以是常量,可以是变量
      flag 可取d(decimal),e(error),f(float),r(real,default)
    sym(2);
    sym(2*3);
    A = 2;
    B = [2,3;4,5];
    sym(A);
    sym(B);
    
    • 有引号:把字符串转换为符号变量
      flag 可取 'positive','real'//注意flag要加引号.
  • syms()

    syms a b c flag ;
    
    • 可以同时转换多个.
    syms x y z ;//会创建变量名分别为x y z 的字符串符号对象X y z.
    syms 2 ;//会报错!没有可用的变量名
    
    • syms()对常量(即sym()中的不加引号)会报错,对字符串,已经不需要引号.
  • 创建示例

    /
    

符号计算中的运算符与函数

  • 算术运算符
    • + - * \ / ^
    • .* .\ ./ .^
    • “'”(共轭转置) | “.'”(普通转置)
  • 关系运算符
    • ==,~=
  • 指数对数函数
  • 三角双曲函数及其反函数
    • atan2只能用于数值计算
  • 复数函数
    • conj(),real(),imag(),abs()
  • 矩阵代数函数
    diag,triu,tril,inv,det,rank...
    

符号对象的类型识别函数

class(S);
isa(S,'double');
isa(S,'sym');
whos;
whos x y;

符号表达式自变量确定

syms x y z u v w ;
f = sym('3*x^2+y+u+w+v');
findsym(f);
//ans = 
//     u,v,w,x,y,z
findsym(f,1);
findsym(f,2);//输出离x最近的两个自变量

符号精度计算

  • 数值类型:matlab浮点算术运算.
  • VPA类型:Maple任意精度算术运算。
  • 有理数类型:Maple精确符号计算.
    • 所需时间,空间都是最大的,只要时间足够,总是精确的。最后的结果都是字符串(虽然看起来像数值),要从结果中获得任意精度的解会用到下面的函数。
    //functions
    digits(d);//设置位数参数,default 32
    vpa(A,d);//求A的d位近似解
    double(A);//把符号矩阵或任意精度表示的矩阵转换为双精度矩阵。
    

7.3 符号表达式操作

  • /

你可能感兴趣的:(MATLAB 符号计算)