Hello! Does any one knows how can I group a specific term in a long equation?
For example, imagine i have the equation , which is equivalent to .
If I use the factor function, I obtain:
syms x
eq = x^2 + 6*x + 9
factor(eq,x)
ans = [ x + 3, x + 3]
However, I want to group those terms inside the eq itself, so I can keep manipulating the symbolic expression (eq = (x+3)^2). I am asking these because I am solving a Lagrange equation and I need to group the terms in the forma (x + y) and (x - y). Once they are grouped, I want to make a variable change: subs(eq,(x+y),z) and subs(eq,(x-y),w).
Thanks a lot!

1 件のコメント

madhan ravi
madhan ravi 2018 年 11 月 24 日
eq = x^2 + 6*x + 9 -> should be 9 not 3

サインインしてコメントする。

 採用された回答

Walter Roberson
Walter Roberson 2018 年 11 月 25 日

2 投票

simplify() can handle some cases. However it is not sophisticated so while it might find x^2+6*x+9 it will certainly not find x^2+6*x+11 = (x+3)^2+2
subs will also not dig out opportunities for substitution . subs(5*xx+5*yy,xx+yy,zz) will not notice the opportunity as it looks for exact node matches.
So generally you would proceed like
simplify(subs(TheExpression, y, z-x))

その他の回答 (1 件)

madhan ravi
madhan ravi 2018 年 11 月 24 日
編集済み: madhan ravi 2018 年 11 月 25 日

3 投票

AFAIK - I don't think there is a possibility to do that in symbolic math toolbox
After all the struggles: see isequaln()
eq=x^2 + 6*x + 9
s=factor(eq)
if isequaln(s(1),s(2)) %assuming only two factors
result=s(1)*s(2);
else
result = s;
end

2 件のコメント

Giulio Cesare Mastrocinque Santo
Giulio Cesare Mastrocinque Santo 2018 年 11 月 25 日
That works too! Thanks a lot for your answer!
madhan ravi
madhan ravi 2018 年 11 月 25 日
Anytime :) , you can vote for the answer if it was helpful.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File Exchange で Symbolic Math Toolbox についてさらに検索

製品

リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by