Esempio n. 1
0
            public static double Convolution(double x, FunctionLib.Function f, FunctionLib.Function g, int GridSize, double a)
            {
                Vector grid = Vector.CreateUniformGrid(GridSize, a, x);
                Vector fg   = new Vector(GridSize);
                double h    = grid[1] - grid[0];

                for (int i = 0; i < GridSize; i++)
                {
                    fg[i] = f(grid[i]) * g(x - grid[i]);
                }


                return(Integrate.Simpson(fg.ToArray, h));
            }
Esempio n. 2
0
            public static double Convolution(double x, FunctionLib.Function f, FunctionLib.Function g, Grid grid)
            {
                int GridSize = grid.Count;

                Vector fg = new Vector(GridSize);
                double h  = grid[1] - grid[0];

                for (int i = 0; i < GridSize; i++)
                {
                    fg[i] = f(grid[i]) * g(x - grid[i]);
                }


                return(Integrate.Simpson(fg.ToArray, h));
            }