grouping an equation in quadratic/squared terms

조회 수: 24 (최근 30일)
Berkin Birol
Berkin Birol 2022년 2월 27일
댓글: Berkin Birol 2024년 4월 12일
Hi all,
I would like MATLAB to group my equation
(-a-b)*x1^2 + 0.2*b*x1*x2 - 0.2*c*x2^2
as all quadratic items like below:
-(b*x1-0.1*x2)^2 - (a+b-b^2)*x1^2 - (0.2*c-0.01)*x2^2
I had found a method once from Matlab answers but I can not remember it. This equation is OK but I would like to use MATLAB to make this arrangement (if it's algebraically possible) if my equation is updated in the future.

답변 (1개)

T.Nikhil kumar
T.Nikhil kumar 2023년 10월 20일
Hello Berkin,
As per my understanding, you want to group all the items in your equation as quadratic or squared terms.
I recommend you leverage the symbolic variables and the symbolic algebra capabilities of MATLAB for this purpose. You can first create ‘x1’, ‘x2’,’a’ and ‘b’ as symbolic scalar variables of type sym’. Then, you can define your equation in a separate variable after which you can use the collect function to group the quadratic terms (x1^2 and x2^2) and squared terms. Refer to the following code snippet for an overview of the method.
%Creating the symbolic variables
syms x1 x2 a b c
%Defining the equation
equation = (-a-b)*x1^2 + 0.2*b*x1*x2 - 0.2*c*x2^2;
% Grouping the quadratic terms (This grouped_equation variable contains the
% new equation)
grouped_equation = collect(equation, [x1^2, x2^2]);
By using symbolic variables, you can easily update your equation in the future and MATLAB will automatically group the quadratic terms for you.
Refer to the following documentation to understand more about ‘syms’ and ‘collect’ functions.
Hope this helps!
  댓글 수: 3
T.Nikhil kumar
T.Nikhil kumar 2024년 4월 8일
you can try using the functions of the Symbolic Math Toolbox like simplify, collect, and expand that are useful for manipulating symbolic expressions. But, for grouping as required by, I think doing it manually is the best way
Berkin Birol
Berkin Birol 2024년 4월 12일
Thank you again, Nikhil.

댓글을 달려면 로그인하십시오.

제품


릴리스

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by