simplify is not realible
Show older comments
How to simplify the folowing very simple expression:
syms a b c
e1 = -(b*(b^2 - 4*a*c)^(1/2) - 4*a*c + b^2)/(2*a*(b^2 - 4*a*c)^(1/2))
which is equal to the
e2 = -(b + (b^2 - 4*a*c)^(1/2))/(2*a)
simplify(e1-e2)
ans =
0
>> isAlways(e1 == e2)
ans =
logical
1
but
simplify(e1)
produce only identical expression with "e1", not with "e2" as expected?!
Is there any possibility to use "simplify" command in a different way, to get expected result?
7 Comments
Dyuman Joshi
on 30 Mar 2023
Edited: Dyuman Joshi
on 30 Mar 2023
"produce only identical expression with "e1", not with "e2" as expected?!"
What makes you think e2 is the expected output?
There is no unique simplified expression for most of the expressions, (one such exception being - sin^2 + cos^ == 1, for any input). This is mentioned in the documentation of simplify as well - "There is no universal idea as to which form of an expression is simplest."
Let's see how many simplified expressions we can obtain with the given expression -
syms a b c
e1 = -(b*(b^2 - 4*a*c)^(1/2) - 4*a*c + b^2)/(2*a*(b^2 - 4*a*c)^(1/2));
e2 = -(b + (b^2 - 4*a*c)^(1/2))/(2*a);
out1=simplify(e1,'Steps',50,'All',true)
8 outputs for 50 steps. The # of outputs is 10 for 500 steps (After 500, the # of outputs doesn't seem to change regardless of # of steps, I tried till 5e6)
Now, which one should be "the" simplified expression?
"Is there any possibility to use "simplify" command in a different way, to get expected result?"
Unfortunately no, it doesn't look like you will obtain the solution in the form you want. The closest option might be the 3rd element of out.
Dyuman Joshi
on 30 Mar 2023
Wolfram Alpha also provides multiple solutions rather than a single answer, one of those solutions being the original expression. Although, it does contain the output you want to obtain.
Sympy simply returns the same expression. (feels a bit ironic)
Steven Lord
on 30 Mar 2023
Sometimes simple questions can have multiple potential answers. What two numbers do you think Cleve had in mind when he asked his question?
John D'Errico
on 31 Mar 2023
@Michal - Just because one (or more) tool can find a particular solution that you happen to like does not mean that all tools will do so. They are equivalent.
Michal
on 31 Mar 2023
Answers (0)
Categories
Find more on Code Performance in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

