美文网首页
MATLAB 符号计算

MATLAB 符号计算

作者: KD垃圾的进阶之路 | 来源:发表于2018-10-18 12:29 被阅读0次

    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 符号计算

          本文链接:https://www.haomeiwen.com/subject/wkjjzftx.html