When solving a system of nonlinear equations, is it possible that some unknowns remain arbitrary?

6 views (last 30 days)
System has equal number of unknowns and equations.
Manipulation easily yielded expressions for 4 of the 7 unknowns.
However it seems that the remaining 3 unknowns x,y,z are not fixed by the equations. Different combinations (x0,y0,z0) seem possible without violating the system equations.
Is this possible, or did I most probably make a mistake in counting degrees of freedom?

Answers (3)

Roger Stafford
Roger Stafford on 14 Jan 2018
Many things are possible with a set of equations involving a set of unknowns. The most common situation is that if there are an equal number of equations as there are unknowns, there is only one or possibly a finite number of solutions. However, that is often not true. As an example of the latter, suppose you have the three equations
3*x + 5*y - 2*z = 7
2*x - 3*y + 8*z = 11
5*x + 2*y + 6*z = 18
Here we have three equations and three unknowns. However, suppose x, y, and z are such that the first two equations are true. Then by adding them it is easily seen that the third equation must also be true. It will follow that there will be infinitely many possible solutions to these three equations, because they really amount to only two independent equations with three unknowns. Notice that if we change the 18 value to, say, a 19, there will be no possible solutions since the sum of the first two is incompatible with the third equation.
All of this means that the concept that there should always be an equal number of equations and unknowns for a unique solution, is very often violated. It all depends on the nature of the equations.

Walter Roberson
Walter Roberson on 14 Jan 2018
If you have the symbolic toolbox, then you can use solve() with 'returnconditions', true, and the conditions returned should be an equation that would relate the remaining unknowns.

John D'Errico
John D'Errico on 14 Jan 2018
It is actually quite easy for a system of equations to behave as you have found. It probably just means that you really don't have 7 independent equations. For example, consider the simple linear system:
x + y = 1
2*x + 2*y = 2
The second is simply the first equation, but multiplied by 2. Are there two equations here? Well, yes, you can easily have problems that generate dependent systems. But really, you have only one piece of information. You can choose any value of y, solving for x, or pick an x, then solve for y.
So simply counting 7 equations and 7 unknowns is not sufficient, just as counting 2 equations and 2 unknowns in my example is not sufficient. Did you make a mistake in counting degrees of freedom? Not really. It just means that your problem is not sufficiently constrained to have a unique solution.
Sometimes those additional (unspecified) degrees of freedom make physical sense. For example, suppose I have a system that defines the deformation of an elastic body. So by stretching the body in one direction or another, twisting things, etc., one will increase or decrease the potential energy of the system. The configuration with minimal potential energy is the preferred state of the system. This is just classic engineering mechanics. But note that if I translate the entire body by some fixed amount in any direction, this introduces no strain in the body itself and therefore does not change the potential energy of the system. Likewise, you can spin the entire body around any axis,
The point is, to create a system with a unique solution, you may need to apply some additional constraints on the problem.


Find more on Systems of Nonlinear Equations 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!

Translated by