171 votesLionel du Peloux commented
There exists a good C# wraper for the IPOPT solver (C) : https://github.com/cureos/csipopt
This wraper is also included in a nice math C# library (FuncLib) you may already know : https://funclib.codeplex.com/. FuncLib have also automatic diff and BFGS support.
Maybe this could be a good point to start ? Ipopt is very powerful and is fully opensource.