Factor symbolic expression involving exp()

2 views (last 30 days)
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.

Accepted Answer

Walter Roberson
Walter Roberson on 13 Sep 2015
subs() replaces one sub-expression tree with a different sub-expression tree. exp(a) is not present as a sub-expression in exp(a+b) so you cannot use subs() to make that replacement in it.
What might work is
Y = subs(expand(X), exp(a), A);
  3 Comments
Walter Roberson
Walter Roberson on 13 Sep 2015
Try
Y = expand(subs(X, a, ln(A)))
Philip
Philip on 13 Sep 2015
That's perfect! Thanks again.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!