[Math] Simultaneous equations for more unknowns than equations

algebra-precalculus

I have a system of equations. This system is 8 equations for 16 unknowns. Is it possible to solve the equations for some answer? By that, I mean, it's highly likely that they will have several possible answers, but I only need one. I have only ever covered solving simultaneous equations for exact answers where the number of equations is equal to the number of variables.

All of the equations probably involve all of the unknowns. But since each one is 15MB to express, I didn't check.

As an aside, the equations are guaranteed to contain only relatively simple operations, specifically, addition (modulo 2^32), binary rotation (by constant only), right shift (by constant only), exclusive or, negation, and binary AND. No squares or exponentials or anything like that.

Edit: We are talking about something like this. But bigger. A lot bigger. Where h[7] means that this corresponds to the 8th input, and c[i] corresponds to the ith output. I reduced the complexity a lot, so it's more digestible. The real thing is a lot bigger. And there's 8 of them.

Edit: I eventually determined that the reason the final equations are so large is because there are many, many intermediate variables. If expressed as these variables, then it becomes much more managable- the whole kaboodle in only 64kb, and shown here.

Now, given h[0] – h[7], I definitively solved for 113 of the 2271 states. However, going further than that gave me problems- there are so many states that I can't identify any simultaneous equations to attempt to solve, or any other method of proceeding.

I identified 24 equations where one term is known (one of the 113) and the other two are unknown variables. Is this the part where I start adding in information?

Best Answer

How can the equations be 15 MB each? Given the edit, the equation for h(7) is only 2582 characters. But if you want to solve for more unknowns than equations you need special constraints. For example $x^2+y^2+z^2=0$ is one equation in three unknowns, but has only one solution. This can be harder to detect in a system. You can introduce an error term into each equation, sum the squares and feed it to a multidimensional minimizer. Change each $a=b$ to $a=b-e_i$ and then say $error = \sum e_i^2$ and minimize $error$ over the variables. This is a numeric solution, not an algebraic one. If the equations are easy, this will work.

Related Question