'Finding the widest acceptable ranges for x of given y while meeting certain criteria

I am thinking about a problem for some time now and it would be awesome if someone could give me advice how to solve it (I prefer python).

Given are 8 equitations (y1 to y8) with 5 independent variables x1, x2, x3, x4, x5. The functions look like this:

y1 = f(x1,x2,x3,x4,x5) = a*x1 + b*x2 + c*x3 + d*x4 + e*x5 + a*x1*x2 + b*b*x2 + c*c*x3
y2 = f(x1,x2,x3,x4,x5) = f*x1 + g*x2 + h*x5 + a*a*x1 + d*d*x4 ...
y3 = f(x1,x2,x3,x4,x5) = ...
...
y8 = f(x1,x2,x3,x4,x5) = i*x1 + k*x3 + l*x5 + j*j*x2*x2 + c*c*x3 + ...

As you can see they only share the same x1,x2,x3,x4,x5, but the coefficients are all different. The number of terms can be different too.

The range of each variable x allowed to be used in y is restricted to:

x1 = (1,10) #any float between 1 and 10 can be used
x2 = (10,20)
x3 = (100,200)
x4 = (50,80)
x5 = (20,50)

The goal is to find the 'widest' ranges for each of the 5 independent variables that will meet the following criteria: y1 must not by lower than 10, y2 must not by lower than 7, y3 must not by lower than 20 ... So basically each y has to yield a specified minium value. This means for every combination of x1,x2,x3,x4,x5 all 8 equitations need to be calculated and checked whether all y1 to y8 fulfill the criteria.

One solution for the 5 ranges could be:

x1 = (3,7)
x2 = (14,15)
x3 = (111,130)
x4 = (60,65)
x5 = (20,22)

but the following solution would be better because the ranges are wider:

x1 = (2,10) # 10-2 = 8. This is a wider range than the x1 example above (7-3 = 4)
x2 = (11,19)
x3 = (104,190)
x4 = (51,78)
x5 = (21,49)

How can I find the widest ranges for each x while meeting the y criteria? How would you solve this or at least try to find the best solution? Brute forcing all the combinations cannot be done in acceptable time.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source