Factorization With Symbolic Terms

73 ビュー (過去 30 日間)
Giulio Cesare Mastrocinque Santo
Giulio Cesare Mastrocinque Santo 2018 年 11 月 24 日
コメント済み: madhan ravi 2018 年 11 月 25 日
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 日
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 件のコメント
Giulio Cesare Mastrocinque Santo
Giulio Cesare Mastrocinque Santo 2018 年 11 月 25 日
Thanks a lot for your help!

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

その他の回答 (1 件)

madhan ravi
madhan ravi 2018 年 11 月 24 日
編集済み: madhan ravi 2018 年 11 月 25 日
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.

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

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by