0

我有一个符号函数 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)。

任何帮助是极大的赞赏。

4

1 回答 1

1

首先,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)
于 2015-09-13T16:22:55.943 回答