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 符号表达式操作
- /
网友评论