【C#】 微分を計算するクラス
微分を計算するクラスを作成します。まずはクラスのソースコードです。
public class Derivative { private const double _h = 1e-5; /// <summary> /// 導関数を計算するメソッド /// </summary> /// <param name="f">関数</param> /// <returns>fの導関数</returns> public static Func<double, double> Compute(Func<double, double> f) { return x => (f(x + _h) - f(x - _h))/(2.0*_h); } /// <summary> /// 微分係数を計算するメソッド /// </summary> /// <param name="f">関数</param> /// <param name="x">微分係数を計算する座標値</param> /// <returns>xにおける微分係数</returns> public static double Compute(Func<double, double> f, double x) { return Compute(f)(x); } }
これを使ってのにおける微分係数を計算します。
double v = Derivative.Compute((x) => 2.0*x*x + 3.0*x - 2.0, -1.0);
計算結果は-1に限りなく近い値となっており、正しく計算できていることが分かります。
関連記事 【C#】 偏微分を計算するクラス - 旅行好きなソフトエンジニアの備忘録 【C#】 勾配ベクトルを計算するクラス - 旅行好きなソフトエンジニアの備忘録