I give you three options: (Feed-forward) Neural Networks, Support Vector Machines, Decision Trees. I particularly appraciate motivations provided in the answer.
I will go with Neural network as it has better adaption rate.
NN is better in function approximation.
I am not sure about SVM but i know that SVM outcast NN is some classification problem but i don't have any idea of using SVM for function approximation.