システムを使用する;
namespace Legalsoft.Truffer
{ public class Funcd : RealValueFunWithDiff { public double EPS { get; セット; = float.Epsilon; public RealValueFun func { get; セット; public double f {get; セット; }
public Funcd(RealValueFun funcc)
{ this.EPS = 1.0e-8; this.func = funcc; public double funk(double[] x) { return get(x); } }
public double get(double[] x)
{ return f = func.funk(x); }
public void df(double[] x, double[] df)
{ int n = x.Length; double[] xh = x; 二重折り = f; for (int j = 0; j < n; j++) { double temp = x[j]; double h = EPS * Math.Abs(temp); //if (h == 0.0) if (Math.Abs(h) <= float.Epsilon) { h = EPS; xh [j] = 温度 + h; h = xh[j] - 温度; ダブル fh = (xh[0]); xh[j] = 温度;
df[j] = (fh - 倍数) / h;
}
} }
}