solving a system of multi-variable polynomials

11 views (last 30 days)
Daniel
Daniel on 4 Oct 2012
Commented: Walter Roberson on 6 Nov 2024 at 6:12
Dear Users
I have a system of 24 multi-variable polynomials (of order 2) in either 28 or 12 unknowns depending on how I view my problem. I must admit I am out of my depth in solving this problem, in fact I do not even know if it is solvable. I appreciate this is a complex area, and many "computer" problems are actually caused by inexperience in use of numerical methods. Unfortunatley I lack the time to pursue this vast area in detail, and so I would very much appreciate some advice from those with experience, in particular in terms of which Matlab functions to use to try to solve my system. I have given my system of equations at the end of this post so as not to clogg up my text!
The 12 unknowns [a1-f1], and [a2-f2] are analagous to the X,Y,Z etc that appear in most polynomials (i.e. what I think of as the data), whilst the 16 unknowns [s,alpha1,alpha2,alpha3], [s_h,alpha1_h,alpha2_h,alpha3_h], [t,beta1,beta2,beta3], and [t_h,beta1_h,beta2_h,beta3_h] are analagous to the constants that multiply the data. I am interested in finding solutions to my system in 2 cases
(i) where the 16 constants are treated as unknowns as well as the 12 data unknowns,
and/or
(ii) where only the 12 data unknowns are the unknowns.
This may sound weird but it is motivated by statistical considerations where it is of interest theoretically to consider constants as parameters. I have opted to use numeric::polysysroots in mupad which gives the warning
"Warning: Solution(s) may be lost. [solvelib::allvalues_warning]" ,
along with a trivial solution where every unknown is zero. Another trivial solution not obtained is where s=t_h, t=s_h, and where the appropriate alpha's and beta's are equal to make the terms in parentheses zero. Is this missed second trivial solution what my warning is about? More importantly how can I determine if there are non-trivial solutions that have also been missed? More generally is there any theory that states such a system can only have the trivial solution as is sometimes the case in linear systems?
Any help would be greatly appreciated.
System of 24 equations (each equation is solved to equal zero):
s - t_h + a1^2*(alpha1 - beta1_h) + 2*a1*b1*(alpha2 - beta2_h) + b1^2*(alpha3 - beta3_h)
a1*c1*(alpha1 - beta1_h) + (b1*c1 + a1*d1)*(alpha2 - beta2_h) + b1*d1*(alpha3 - beta3_h)
a1*e1*(alpha1 - beta1_h) + (b1*e1 + a1*f1)*(alpha2 - beta2_h) + b1*f1*(alpha3 - beta3_h)
s - t_h + c1^2*(alpha1 - beta1_h) + 2*c1*d1*(alpha2 - beta2_h) + d1^2*(alpha3 - beta3_h)
c1*e1*(alpha1 - beta1_h) + (d1*e1 + c1*f1)*(alpha2 - beta2_h) + d1*f1*(alpha3 - beta3_h)
s - t_h + e1^2*(alpha1 - beta1_h) + 2*e1*f1*(alpha2 - beta2_h) + f1^2*(alpha3 - beta3_h)
t - s_h + a1^2*(beta1 - alpha1_h) + 2*a1*b1*(beta2 - alpha2_h) + b1^2*(beta3 - alpha3_h)
a1*c1*(beta1 - alpha1_h) + (b1*c1 + a1*d1)*(beta2 - alpha2_h) + b1*d1*(beta3 - alpha3_h)
a1*e1*(beta1 - alpha1_h) + (b1*e1 + a1*f1)*(beta2 - alpha2_h) + b1*f1*(beta3 - alpha3_h)
t - s_h + c1^2*(beta1 - alpha1_h) + 2*c1*d1*(beta2 - alpha2_h) + d1^2*(beta3 - alpha3_h)
c1*e1*(beta1 - alpha1_h) + (d1*e1 + c1*f1)*(beta2 - alpha2_h) + d1*f1*(beta3 - alpha3_h)
t - s_h + e1^2*(beta1 - alpha1_h) + 2*e1*f1*(beta2 - alpha2_h) + f1^2*(beta3 - alpha3_h)
s - t_h + a2^2*(alpha1 - beta1_h) + 2*a2*b2*(alpha2 - beta2_h) + b2^2*(alpha3 - beta3_h)
a2*c2*(alpha1 - beta1_h) + (b2*c2 + a2*d2)*(alpha2 - beta2_h) + b2*d2*(alpha3 - beta3_h)
a2*e2*(alpha1 - beta1_h) + (b2*e2 + a2*f2)*(alpha2 - beta2_h) + b2*f2*(alpha3 - beta3_h)
s - t_h + c2^2*(alpha1 - beta1_h) + 2*c2*d2*(alpha2 - beta2_h) + d2^2*(alpha3 - beta3_h)
c2*e2*(alpha1 - beta1_h) + (d2*e2 + c2*f2)*(alpha2 - beta2_h) + d2*f2*(alpha3 - beta3_h)
s - t_h + e2^2*(alpha1 - beta1_h) + 2*e2*f2*(alpha2 - beta2_h) + f2^2*(alpha3 - beta3_h)
t - s_h + a2^2*(beta1 - alpha1_h) + 2*a2*b2*(beta2 - alpha2_h) + b2^2*(beta3 - alpha3_h)
a2*c2*(beta1 - alpha1_h) + (b2*c2 + a2*d2)*(beta2 - alpha2_h) + b2*d2*(beta3 - alpha3_h)
a2*e2*(beta1 - alpha1_h) + (b2*e2 + a2*f2)*(beta2 - alpha2_h) + b2*f2*(beta3 - alpha3_h)
t - s_h + c2^2*(beta1 - alpha1_h) + 2*c2*d2*(beta2 - alpha2_h) + d2^2*(beta3 - alpha3_h)
c2*e2*(beta1 - alpha1_h) + (d2*e2 + c2*f2)*(beta2 - alpha2_h) + d2*f2*(beta3 - alpha3_h)
t - s_h + e2^2*(beta1 - alpha1_h) + 2*e2*f2*(beta2 - alpha2_h) + f2^2*(beta3 - alpha3_h

Answers (1)

Ayush
Ayush on 6 Nov 2024 at 6:00
What did you try?
You can start with trying:
Define the Variables: Clearly define all your unknowns.
  • Data unknowns: [a1, b1, c1, d1, e1, f1, a2, b2, c2, d2, e2, f2]
  • Constant unknowns: [s, alpha1, alpha2, alpha3, s_h, alpha1_h, alpha2_h, alpha3_h, t, beta1, beta2, beta3, t_h, beta1_h, beta2_h, beta3_h]
In order to solve you can either use:
  1. Sybmolic Toolbox - https://www.mathworks.com/help/symbolic/
  2. Numerical Solution: If symbolic solutions are not feasible due to complexity, consider using numerical solvers like fsolve - https://www.mathworks.com/help/optim/ug/fsolve.html
  1 Comment
Walter Roberson
Walter Roberson on 6 Nov 2024 at 6:12
Note that MuPAD's numeric::polysysroots is no longer documented or supported (but it appears to still exist)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!