Number of Solutions of a Nonlinear System

Click For Summary
SUMMARY

The discussion centers on solving a nonlinear system of equations represented by the equations 3x12 + x2 = 7/2 and x1 + x23 = 13/8. The user successfully found one solution (x1 = 0.93377, x2 = 0.88417) using the method of successive approximations but sought to determine the total number of solutions. It was concluded that, according to Bezout’s theorem, there can be at most six solutions due to the polynomial degrees involved. Numerical methods such as Newton-Raphson and Bairstow’s method were discussed as potential approaches for finding both real and complex roots.

PREREQUISITES
  • Understanding of nonlinear systems of equations
  • Familiarity with Bezout’s theorem
  • Knowledge of numerical methods, specifically Newton-Raphson and Bairstow’s method
  • Experience with polynomial equations and their roots
NEXT STEPS
  • Research the application of Bezout’s theorem in determining the number of solutions for polynomial systems
  • Learn about Newton-Raphson's method for finding real roots of nonlinear equations
  • Explore Bairstow’s method for computing both real and complex roots of polynomials
  • Investigate numerical libraries such as Numpy and Matlab for polynomial root-finding algorithms
USEFUL FOR

Mathematicians, engineers, and computer scientists involved in numerical analysis, particularly those working with nonlinear systems and polynomial equations.

Wledig
Messages
69
Reaction score
1
TL;DR
How can one determine the number of solutions of a nonlinear system?
I developed a program to solve the nonlinear system below through the method of successive approximations and was only able to find one solution, namely ##x_1 = 0.93377## and ##x_2 =0.88417##, even though I tried many different starting points. I was wondering if there's a way to determine if there are other solutions to this system, and if so, how many more there would be.

\begin{cases} 3x_1^2 + x_2 = \frac{7}{2} \\ x_1 + x_2^3 = \frac{13}{8} \end{cases}
 
Last edited:
Mathematics news on Phys.org
Wledig said:
Summary: How can one determine the number of solutions of a nonlinear system?

I developed a program to solve the nonlinear system below through the method of successive approximations and was only able to find one solution, namely ##x_1 = 0.93377## and ##x_2 =0.88417##, even though I tried many different starting points. I was wondering if there's a way to determine if there are other solutions to this system, and if so, how many more there would be.

\begin{cases} 3x_1 + x_2 = \frac{7}{2} \\ x_1 + x_2^3 = \frac{13}{8} \end{cases}

if you use elimination, you can subtract 1/3 of the first equation from the second to get

##x_2^3 - \frac{1}{3}x_2 = \frac{13}{8} - \frac{7}{6}##
or
##x_2^3 - \frac{1}{3}x_2 - \frac{11}{24} = 0##

it's a cubic, so you can solve exactly (the other two roots are complex). the solution for ##x_2## is a bit different than what you've stated, though
 
Oops, my bad. The first term in the first equation is actually ##x_1^2##, I corrected it now.
 
According to Wikipedia there is a thing called Bezout’s theorem, which states that the number of intersection points of two plane curves is at most the product of the degrees, with equality when counting complex points and points at infinity, weighted by multiplicity.

So basically, you can expect at most 6 solutions, since you have a quadratic and a cubic.
 
  • Like
Likes   Reactions: Wledig
I see. There's probably no way to determine the complex solutions numerically though, I believe. Thanks for the insight.
 
Wledig said:
Summary: How can one determine the number of solutions of a nonlinear system?...

\begin{cases} 3x_1^2 + x_2 = \frac{7}{2} \\ x_1 + x_2^3 = \frac{13}{8} \end{cases}

using this updated equation, you can do substitution:
\begin{cases} 3x_1^2 + x_2 = \frac{7}{2} \\ x_1 = \frac{13}{8}- x_2^3 \end{cases}
and substitute in the top line. Degree 6 polynomial in ##x_2##. Easy numeric solutions.
 
  • Like
Likes   Reactions: Wledig and suremarc
StoneTemplePython said:
Degree 6 polynomial in x2x2x_2. Easy numeric solutions.
Are they? I could use Newton-Raphson's method for instance to determine the real roots, but what about the complex ones? I'm not aware of any method for finding those numerically.
 
Wledig said:
Are they? I could use Newton-Raphson's method for instance to determine the real roots, but what about the complex ones? I'm not aware of any method for finding those numerically.
There's different schools of thought on this but one of the big ones is:

some the most heavily optimized numerical algorithms out there are for eigenvalues (QR Algorithm and various other flavors).

Numpy and Matlab and many other languages will give you eigenvalues (roots of a monic single variable polynomial) if you input them in a vector. In fact, my understanding is that if you ask Matlab to give you polynomial roots, it will input the polynomial into a companion matrix and run an eigenvalue routine on it. Numpy does the same thing with this routine:

https://docs.scipy.org/doc/numpy/reference/generated/numpy.roots.html
 
  • Like
Likes   Reactions: Wledig
I would find it hard to believe that no algorithm exists for finding roots of real polynomials numerically. In fact, I have just learned from a Google search about Bairstow’s method, which computes both real and complex roots for polynomials with real coefficients.
 
  • Like
Likes   Reactions: Wledig

Similar threads

  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 9 ·
Replies
9
Views
3K
Replies
1
Views
1K
  • · Replies 9 ·
Replies
9
Views
5K
  • · Replies 4 ·
Replies
4
Views
1K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
4
Views
2K