C#、数値計算 - Eulsumの計算方法とソースプログラム

 

システムを使用する;

namespace Legalsoft.Truffer
{     public class Eulsum     {         private double[] wksp { get; セット; プライベート         int n {取得; セット; プライベート         int ncv {取得; セット; public         bool cnvgd {取得; セット; プライベート         ダブルサム{取得; セット; プライベート         ダブルeps {取得; セット; プライベート         ダブルlastval {取得; セット; private         double lasteps { get; } セット; }









        public Eulsum(int nmax, double epss)
        {             this.wksp = new double[nmax];             this.n = 0;             this.ncv = 0;             this.cnvgd = false;             this.sum = 0.0;             this.eps = epss;             this.lastval = 0.0;         }







        public double next(double term)
        {             if (n + 1 > wksp.Length)             {                 throw new Exception("wksp は eulsum が小さすぎます");             if (n == 0)             {                 sum = 0.5 * (wksp[n++] = term)             ;             }             else             {                 double tmp = wksp[0];                 wksp[0] = 用語;                 for (int j = 1; j < n; j++)                 {                     double dum = wksp[j];                     wksp[j] = 0.5 * (wksp[j - 1] + tmp);                     tmp = ダム;


















                wsp[n] = 0.5*(wksp[n - 1] + tmp)                 ;
                if (Math.Abs​​(wksp[n]) <= Math.Abs​​(wksp[n - 1]))
                {                     sum += (0.5 * wsp[n++]);                 }                 else                 {                     合計 += wsp[n];                 laststeps =             Math.Abs             ​​(sum - lastVal);             if ( laststeps <= eps )             {                 ncv ++ ;             if             (ncv >= 2)             {                 cnvgd = true ;             return             (lastval = sum) ;

















        }
    }
}
 

おすすめ

転載: blog.csdn.net/beijinghorn/article/details/132371771