subs(): Unexpected simplification behaviour
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Thomas Bauer
am 27 Apr. 2015
Beantwortet: Philip Caplan
am 29 Apr. 2015
syms Gr Ra Ri A B Gr1 Gr2 c d
Gr = 2*c*(Ra^2 - Ri^2) - d*(Ra^4 - Ri^4)/2;
Gr1 = subs(Gr, [c*(Ra^2 - Ri^2), -d*(Ra^4 - Ri^4)/2], [A, B])
Gr2 = subs(Gr, [c*(Ra^2 - Ri^2), d*(Ra^4 - Ri^4)/2], [A, B])
returns
Gr1 =
2*A + B
Gr2 =
2*A - (d*(Ra^4 - Ri^4))/2
Is there a way to convince MATLAB to return
Gr2 = 2*A - B
in the second case without workarounds? Of course, workarounds like
Gr2 = subs(Gr, [c*(Ra^2 - Ri^2), -d*(Ra^4 - Ri^4)/2], [A, -B])
or
Gr1 = subs(Gr, [(Ra^2 - Ri^2),(Ra^4 - Ri^4)], [A/c,-2*B/d])
Gr2 = subs(Gr, [(Ra^2 - Ri^2),(Ra^4 - Ri^4)], [A/c,2*B/d])
will return the desired result, but I have a much more complex expression to substitute and can't work with this subs()-behaviour. I would have expected MATLAB to automatically simplify the respecive equations.
0 Kommentare
Akzeptierte Antwort
Philip Caplan
am 29 Apr. 2015
As you mentioned, "subs" should return "Gr2 = 2*A -B". I have notified the development team here at MathWorks about this behavior and they will hopefully resolve this in a future release.
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Correlation Models finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!