Factor symbolic expression involving exp()

2 Ansichten (letzte 30 Tage)
Philip
Philip am 13 Sep. 2015
Kommentiert: Philip am 13 Sep. 2015
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.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 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 Kommentare
Walter Roberson
Walter Roberson am 13 Sep. 2015
Try
Y = expand(subs(X, a, ln(A)))
Philip
Philip am 13 Sep. 2015
That's perfect! Thanks again.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by