Intelligent symbolic variable substitution

1 visualización (últimos 30 días)
Arjun Sarin
Arjun Sarin el 22 de Nov. de 2019
Comentada: Arjun Sarin el 25 de Nov. de 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.

Respuestas (1)

Stephan
Stephan el 22 de Nov. de 2019
Editada: Stephan el 22 de Nov. de 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 comentarios
Stephan
Stephan el 22 de Nov. de 2019
Editada: Stephan el 22 de Nov. de 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 el 25 de Nov. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Symbolic Math Toolbox en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by