符号数学定义对符号(不是数字!)进行数学运算。例如, a + a为2a。符号数学函数位于MATLAB的Symbolic Math Toolbox中。工具箱包含相关功能, 并且是MATLAB的附加组件。
符号变量和表达式MATLAB的符号变量和表达式具有类型为sym的类型, 它们可用于字符串。
例如, 要生成符号变量a并执行刚刚定义的加法运算, 首先, 将字符串’
a’
传递给sym函数来创建符号变量:
>
>
a = sym('a');
>
>
a+aans =2*a
符号变量也可以存储表达式。例如, 变量b和c保存符号表达式:
>
>
b = sym('x^2');
>
>
c = sym('x^4');
所有基本的数值运算都可以在符号变量和表达式上执行(例如, 加, 减, 乘, 除, 乘幂等)。
这里有些例子:
>
>
c/bans =x^2>
>
b^3ans =x^6>
>
c*bans =x^6>
>
b + sym('4*x^2')ans =5*x^2
简化功能
几个函数可用于表达式并简化术语。并不是所有的表达式都可以被简化, 但是simple函数会尽一切可能来简化包含类似术语的表达式。
例如:
>
>
x = sym('x');
>
>
myexpr = cos(x)^2 + sin(x)^2myexpr =cos(x)^2 sin(x)^2>
>
simplify(myexpr)ans =1
这些函数可以使用多项式表达式进行收集, 扩展和分解。收集功能收集系数。
例如:
>
>
x = sym('x');
>
>
collect(x^2+4*x^3+3*x^2)ans =4*x^2+4*x^3
expand函数将相乘, 而element将相反:
>
>
expand((x+2) *(x-1))ans =x^2+x-2>
>
factor(ans)ans =(x+2)*(x-1)
subs函数将用方程式代替表达式中的符号变量。
例如:
>
>
myexp = x^3^ +3*x^2^ -2myexp =x^ ^3^ +3*x^2^ -2>
>
x = 3;
>
>
subs (myexp, x)ans =52
对于符号数学, MATLAB默认情况下使用有理数, 定义结果以小数形式保存。例如, 执行1/3 + 1/2的加法通常会导致值翻倍:
>
>
1/3 + 1/2ans =0.8333
但是, 通过使函数具有符号性, 结果也具有符号性。任何数学函数(例如double)都可以对其进行修改:
>
>
sym(1/3 + 1/2)ans =5/6>
>
double(ans)ans =0.8333
【MATLAB符号数学】numden函数将分别返回符号表达式的分子和分母。
>
>
sym(1/3+1/2)ans =5/6>
>
[n, d] = numden(ans)n =5d =6>
>
[n, d] = numden((x^3^ +x^2)/x)n =x^2*(x+1)d =x
推荐阅读
- MATLAB多项式
- MATLAB特征值和特征向量
- MATLAB rref精简行梯形
- MATLAB线性代数
- MATLAB 3D函数surfc()
- MATLAB 3D函数slice()
- MATLAB 3D函数cylinder()
- MATLAB 3D函数Ribbon()
- MATLAB 3D函数sphere()