2015-09-13 63 views
0

我有一个符号函数exp(a + b),并且想要分解出A = exp(a)来产生exp(a + b)= A * exp(b),但我不知道如何在MATLAB中做到这一点。以下是我的尝试:然而,Y = exp(a + b)。因子符号表达式涉及exp()

syms a b A 
X = exp(a+b); 
Y = subs(X,exp(a),A) % = A*exp(b) 

但是,Y = exp(a + b)。由于某种原因,MATLAB不能确定:exp(a + b)= exp(a)* exp(b)= A * exp(b)。

任何帮助,非常感谢。

回答

1

首先,expand的表达使得指数分开然后做替换。默认情况下,当首次写出表达式(在通过任何函数运行之前)时,MATLAB会尝试并简化表达式,因此使用exp(a+b)可以更好地表达exp(a)*exp(b)。这就是为什么你的替代没有效果。但是,如果您明确地想要用基数替换指数所包含的表达式的一部分,请首先展开该函数,然后进行替换:

>> syms a b A; 
>> X = exp(a+b); 
>> Xexpand = expand(X) 

Xexpand = 

exp(a)*exp(b) 

>> Y = subs(Xexpand, exp(a), A) 

Y = 

A*exp(b) 
相关问题