AutoDiff">.NET是一个纯粹的.NET库,允许开发人员轻松地构成函数符号化,然后自动计算在任何给定的点函数值和梯度。结合一个基于梯度的优化库,它可是非常有用的。它已经过在Mono 2.10 Linux和.NET 4 Windows上的测试工作。
AutoDiff.NET 0.4 08/08/2011该版本差异化错误的修正。修复TermUtils.Differentiate方法合约失败的一个错误。修复差异化只是一个变量组成的函数。
示例代码:
using AutoDiff;
class Program
{
public static void Main(string[] args)
{
// define variables
var x = new Variable();
var y = new Variable();
var z = new Variable();
// define our function
var func = (x + y) * TermBuilder.Exp(z + x * y);
// prepare arrays needed for evaluation/differentiation
Variable[] vars = { x, y, z };
double[] values = {1, 2, -3 };
// evaluate func at (1, 2, -3)
double value = func.Evaluate(vars, values);
// calculate the gradient at (1, 2, -3)
double[] gradient = func.Differentiate(vars, values);
// print results
Console.WriteLine("The value at (1, 2, -3) is " + value);
Console.WriteLine("The gradient at (1, 2, -3) is ({0}, {1}, {2})", gradient[0], gradient[1], gradient[2]);
}
}
下载地址:http://autodiff.codeplex.com/releases/view/71433