📅  最后修改于: 2021-01-07 03:08:44             🧑  作者: Mango
符号Math 定义对符号(不是数字!)进行Math 运算。例如,a + a为2a。符号Math 函数位于MATLAB的Symbolic Math Toolbox中。工具箱包含相关功能,并且是MATLAB的附加组件。
MATLAB的符号变量和表达式具有类型为sym的类型,这些类型可用于字符串。
例如,要生成一个符号变量a并执行刚刚定义的加法运算,首先,将字符串'a'传递给sym函数来创建一个符号变量:
>> a = sym('a');
>> a+a
ans =
2*a
符号变量也可以存储表达式。例如,变量b和c保存符号表达式:
>> b = sym('x^2');
>> c = sym('x^4');
所有基本的数值运算都可以在符号变量和表达式上执行(例如,加,减,乘,除,乘幂等)。
这里有些例子:
>> c/b
ans =
x^2
>> b^3
ans =
x^6
>> c*b
ans =
x^6
>> b + sym('4*x^2')
ans =
5*x^2
几个函数可用于表达式并简化术语。并不是所有的表达式都可以被简化,但是simple函数会尽一切可能来简化包含类似术语的表达式。
例如:
>> x = sym('x');
>> myexpr = cos(x)^2 + sin(x)^2
myexpr =
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^ -2
myexp =
x^ ^3^ +3*x^2^ -2
>> x = 3;
>> subs (myexp, x)
ans =
52
对于符号Math ,MATLAB默认情况下使用有理数,定义结果以小数形式保存。例如,执行1/3 + 1/2的加法通常会导致值翻倍:
>> 1/3 + 1/2
ans =
0.8333
但是,通过使函数具有符号性,结果也具有符号性。任何Math 函数(例如,double)都可以对其进行修改:
>> sym(1/3 + 1/2)
ans =
5/6
>> double(ans)
ans =
0.8333
numden函数将分别返回符号表达式的分子和分母。
>> sym(1/3+1/2)
ans =
5/6
>> [n, d] = numden(ans)
n =
5
d =
6
>> [n, d] = numden((x^3^ +x^2)/x)
n =
x^2*(x+1)
d =
x