Finding a function's coefficients from inputs and target outputs

Hi There,

I have a mathematical problem and all I require is direction as to how to go about solving it.

I have 3 variable non-linear function, $\displaystyle x_1 x_2 x_3$, whose values are either 0 or 1. The function f is as follows:

$\displaystyle f(x_1,x_2,x_3) = a*x_1 + b*x_2 + c*x_3 + d*x_1x_2 + e*x_1x_3 + f*x_2x_3 + g*x_1x_2x_3$

I have a huge sample of different values of x1 x2 x3 and a huge sample of the output (call it 'Z', whose value is also either 0 or 1) such as:

$\displaystyle f(x_i,x_j,x_k) = Z_(ijk)$

How would I go about calculating the values of 'a' to 'g', if I know the input and the output? I was thinking about using a neural network. Does anyone have any better ideas?

Thank you in advance!

PS - excuse the long explanation.