grouping an equation in quadratic/squared terms

24 visualizzazioni (ultimi 30 giorni)
Berkin Birol
Berkin Birol il 27 Feb 2022
Commentato: Berkin Birol il 12 Apr 2024
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.

Risposte (1)

T.Nikhil kumar
T.Nikhil kumar il 20 Ott 2023
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 Commenti
T.Nikhil kumar
T.Nikhil kumar il 8 Apr 2024
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

Accedi per commentare.

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by