0

I have a symbolic function exp(a+b), and would like to factor out A=exp(a) to produce exp(a+b) = A*exp(b), but I cannot figure out how to do this in MATLAB. Below is my attempt:

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

however, Y = exp(a+b). For some reason, MATLAB cannot determine: exp(a+b) = exp(a) * exp(b) = A*exp(b).

Any help is greatly appreciated.

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 に答える