Properties of exponentials - symbolic algebra

5 visualizzazioni (ultimi 30 giorni)
Luca Lazzizzera
Luca Lazzizzera il 16 Apr 2021
Modificato: John D'Errico il 29 Lug 2023
Hello all,
I am experiencing problems with the properties of exponentials, in particular when the exponent is a symbolic variable.
For example, if I set
syms x y
and I want to evaluate
exp(x)*exp(y)
is there a way of having the result the exponential with the sum of exponents
exp(x+y)
instead of the uncomfortable exp(x)*exp(y)?
Notice that it does work for one variable only, i.e. exp(x)*exp(x)=exp(2*x)
Thank you very much!

Risposte (3)

John D'Errico
John D'Errico il 29 Lug 2023
Modificato: John D'Errico il 29 Lug 2023
syms x y
V = exp(x)*exp(y)
V = 
simplify(V)
ans = 
So simplify does work. On more complicated problems though, what seems simple to me may not seem simple to you, and to a computer, it may well be confused.
U = 6*exp(x) + 5*exp(-x)*exp(y) + 4*exp(-2*y)*exp(x)
U = 
simplify(U)
ans = 
But simplify has some additional capabilities.
Usimp = simplify(U,'all',true,'steps',100)
Usimp = 
And all of those options may be what you are looking to find. The first one is just the original expression.
Usimp(1)
ans = 
But the second may be more in line with what you were hoping to see.
Usimp(2)
ans = 
But maybe you might be looking for one of the others. How can simplify know? Maybe there is a common factor that can be removed?
Usimp(3)
ans = 
And there are many other possibilities, all of which might be of interest. But a computer simply does not have the judgment to know what you personally think is most simple, especially for a complicated expression.

Mischa Kim
Mischa Kim il 16 Apr 2021
Hi Luca, use
syms x y
z = simplify(exp(x)*exp(y))
z = 
  1 Commento
Luca Lazzizzera
Luca Lazzizzera il 18 Apr 2021
Modificato: Luca Lazzizzera il 18 Apr 2021
Hello, thank you for answering.
It works as long as the variables are just "x" and "y", but it does not always work, in particular if the product of exponentials is a term in a sum with other terms like exp(x)
for example 6*exp(x) + 5*exp(-x)*exp(y) + 4*exp(-2*y)*exp(x)
does not get simplified for some reason (I have to compute partition functions with many summed terms like this, many more than 3).
Up to 2 added terms, it seems to work instead.
Is there any other more powerful/reliable way?
Thank you again

Accedi per commentare.


VBBV
VBBV il 29 Lug 2023
You can of course use simplify as @Mischa Kim mentioned. However, if you want to obtain the simplified expression as you wanted, you need to apply that function for those terms which involve mixed variables as shown below. This will simplify the overall expression ,
syms x y
p = 6*exp(x) + 5*exp(-x)*exp(y) + 4*exp(-2*y)*exp(x)
p = 
p = 6*exp(x) + simplify(5*exp(-x)*exp(y)) + simplify(4*exp(-2*y)*exp(x))
p = 

Community Treasure Hunt

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

Start Hunting!

Translated by