Factor symbolic expression involving exp()

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.

 채택된 답변

Walter Roberson
Walter Roberson 2015년 9월 13일

0 개 추천

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

Thank you. That works great. What if I had:
X = exp(2*a+b)
and wanted to produce Y = A^2 * exp(b), where A=exp(a). How could I get this result (just using expand doesn't work).
Try
Y = expand(subs(X, a, ln(A)))
Philip
Philip 2015년 9월 13일
That's perfect! Thanks again.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

질문:

2015년 9월 13일

댓글:

2015년 9월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by