1. A method for modeling a non-linear element as an executable software model, comprising: providing the non-linear element: observing data input into the non-linear element and data output by the non-linear element; creating a software model for the non-linear element comprising a non-linear, parameterizable function; estimating the initial parameters; estimating the parameters at an initial point for the non-linear function; and determining the parameters that minimize the cost function for the observed data points between the software model and the non-linear element; storing the parameters and the model in memory as an executable model for use by a processor.