涉及 exp() 的因子符号表达式

Factor symbolic expression involving exp()

我有一个符号函数 exp(a+b),想分解出 A=exp(a) 以产生 exp(a+b) = A*exp(b),但我想不通如何在 MATLAB 中执行此操作。以下是我的尝试:

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).

非常感谢任何帮助。

首先,expand 表达式使指数分开然后进行代入。默认情况下,当第一次写出表达式时(在 运行 通过任何函数之前),MATLAB 会尝试简化您的表达式,因此 exp(a)*exp(b) 可以使用 exp(a+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)