A generalization of the built-in Fit function to handle nonlinear cases: give a model (arbitrary Mathematica expression) depending on a number of free parameters and data, and the program gives you the values of parameters that best fit the data. The package uses the Levenberg-Marquardt method. Convergence generally depends on the initial estimate you give. The data may be multidimensional.