Generate Polynomial Expansion Orders as a matrix

1 view (last 30 days)
Hi,
I have to create a polynomial, lets say, with dimensions =4 (x1,x2,x3,x4) and order =2.
Then the expansion becomes:
f= 1+a1*x1+a2*x2+a3*x3+a4*x4+a5*x1^2+a6*x1*x2+a7*x1*x3+a8*x1*x4+a9*x2^2+a10*x2*x3+......so on.
I want these monomial orders in the format such as :
[0,0,0,0;
1,0,0,0;
0,1,0,0;
0,0,1,0;
0,0,0,1;
2,0,0,0;
1,1,0,0;
1,0,1,0,
1,0,0,1;
0,2,0,0;
0,1,1,0;
...... so on]
I am not able to figure out how to get that.
Therefore, requesting your help.

Accepted Answer

Bruno Luong
Bruno Luong on 17 Apr 2022
Edited: Bruno Luong on 17 Apr 2022
You can use this FEX (also attached)
allVL1(4,2,'<=')
ans = 15×4
0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 2 0 0 1 1 0 0 2 0 0 1 0 1 0 1 1 0
  4 Comments
Bruno Luong
Bruno Luong on 18 Apr 2022
Edited: Bruno Luong on 19 Apr 2022
Do you want like this?
A=sortrows(allVL1(4,2,'<='),'descend');
[~,is]=sort(sum(A,2));
A=A(is,:)
A = 15×4
0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 2 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 2 0 0

Sign in to comment.

More Answers (0)

Categories

Find more on Polynomials in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!