Filter löschen
Filter löschen

Intelligent symbolic variable substitution

1 Ansicht (letzte 30 Tage)
Arjun Sarin
Arjun Sarin am 22 Nov. 2019
Kommentiert: Arjun Sarin am 25 Nov. 2019
EDIT: I created an example to specify my problem in more detail.
I want to substitute variables in an equation system. Here an example to illustrate my idea:
syms f(x) z(x)
fun1 = f == (x+4)^2 + 4; % equals (x+4)^2
fun2 = f == x^2+8*x+20; % equals (x+4)^2
% fun1 === fun2
transform = z == (x+4)^2;
subs(fun1, rhs(transform), lhs(transform)) % Results in z(x) + 4
subs(fun2, rhs(transform), lhs(transform)) % Results in x^2 + 8x + 20
Obviously, fun1 and fun2 are the same. However Matlab is not able to replace the expression for z correctly when given in the form of fun2. Is there a way to achieve the same result in both notations?
Thank you for your help in advance.

Antworten (1)

Stephan
Stephan am 22 Nov. 2019
Bearbeitet: Stephan am 22 Nov. 2019
syms f(x) z(x)
fun = f == x^2 + 8*x + 16; % equals (x+4)^2
transform = z == (x+4)^2;
subs(fun, rhs(fun), lhs(transform))
  3 Kommentare
Stephan
Stephan am 22 Nov. 2019
Bearbeitet: Stephan am 22 Nov. 2019
You could also use:
syms f x z
fun = f == x^2 + 8*x + 16; % equals (x+4)^2
transform = z == (x+4)^2;
subs(fun, rhs(fun), lhs(transform))
The idea is declaring f the same way like transform - which you did not do. Thats all.
Arjun Sarin
Arjun Sarin am 25 Nov. 2019
Thank you again. I tried the different notations in depth but actually it doesn't work for me. I updated the questions as the above.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Symbolic Math Toolbox finden Sie in Help Center und File Exchange

Produkte


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by