public static void Start(Func <double, double> func,
                                 Wavelet.Wavelets wavelets, double omega, FuncMethods.DefInteg.GaussKronrod.NodesCount nodesCount,
                                 NetOnDouble X, NetOnDouble Y, NetOnDouble T)
        {
            Wavelet.countNodes = nodesCount;
            var wavel = Wavelet.Create(wavelets, omega);

            Func <double, double, Complex> f = wavel.GetAnalys(func);

            IProgress <int> progress = new Progress <int>(number => Console.WriteLine(Expendator.GetProcent(number, X.Count * Y.Count).ToString(2) + "%"));

            Create3DGrafics.MakeGrafic(Create3DGrafics.GraficType.PdfPngHtml, $"wavelets{wavelets}",
                                       (a, b) => f(a, b).Abs, X, Y,
                                       progress, new System.Threading.CancellationToken(),
                                       new StringsForGrafic($"Wavelet {wavelets}", "a", "b", "|values|"), true);


            Func <double, double> func2 = wavel.GetSyntesis();

            new MostSimpleGrafic(new Func <double, double>[]
            {
                func,
                func2
            },
                                 T,
                                 new string[] {
                "Исходная функция",
                "Её преобразование туда-сюда"
            },
                                 true).ShowDialog();
        }
Exemple #2
0
        static void WaveletCreateFromFunction()
        {
            Func <double, double> func = t => Math.Sin(6 * t) / (1 + t * t);

            //Func<double, double> func = t => (t >= 0.45 && t <= 0.55) ? Math.Sin(20 * Math.PI*(t - 0.45)) : 0;

            Wavelet.Wavelets wavelets = Wavelet.Wavelets.LP;
            double           omega    = 2;

            FuncMethods.DefInteg.GaussKronrod.NodesCount nodesCount = GaussKronrod.NodesCount.GK61;

            double xmin       = -3;
            double xmax       = 8;
            double ymin       = -4;
            double ymax       = 4;
            int    spaceCount = 40;

            double tmin   = -7;
            double tmax   = 7;
            int    tcount = 260;

            WaveletTest.Start(func, wavelets, omega, nodesCount,
                              new NetOnDouble(xmin, xmax, spaceCount),
                              new NetOnDouble(ymin, ymax, spaceCount),
                              new NetOnDouble(tmin, tmax, tcount));
        }
        public static void Start(double begin, double step, int count, string filename, string path,
                                 Wavelet.Wavelets wavelets, double omega, FuncMethods.DefInteg.GaussKronrod.NodesCount nodesCount,
                                 NetOnDouble X, NetOnDouble Y)
        {
            Wavelet.countNodes = nodesCount;
            var wavel = Wavelet.Create(wavelets, omega);

            var mas = Point.CreatePointArray(begin, step, count, filename, path);
            Func <double, double, Complex> f = wavel.GetAnalys(mas);

            IProgress <int> progress = new Progress <int>(number => Console.WriteLine(Expendator.GetProcent(number, X.Count * Y.Count).ToString(2) + "%"));

            Create3DGrafics.MakeGrafic(Create3DGrafics.GraficType.PdfPngHtml, $"wavelets{wavelets}",
                                       (a, b) => f(a, b).Abs, X, Y,
                                       progress, new System.Threading.CancellationToken(),
                                       new StringsForGrafic($"Wavelet {wavelets}", "a", "b", "|values|"), true);

            //Func<double, double> func2 = wavel.GetSyntesis();
            //new MostSimpleGrafic( func2, mas,    "Преобразование",    true).ShowDialog();
        }
Exemple #4
0
        static void WaveletCreateFromArray()
        {
            double begin = -0.0004;
            double step  = 16E-9;
            int    count = 150000;

            string filename = "ArrayB.txt";
            string path     = @"C:\Users\user1\Desktop\zameri\n28_uzkopolos\Замер G\Разница";


            Wavelet.Wavelets wavelets = Wavelet.Wavelets.LP;
            double           omega    = 2;

            FuncMethods.DefInteg.GaussKronrod.NodesCount nodesCount = GaussKronrod.NodesCount.GK61;

            double xmin       = 1.0 / 80000;
            double xmax       = 1.0 / 20000;
            double ymin       = -0.0004;
            double ymax       = 0.002079984;
            int    spaceCount = 200;

            WaveletTest.Start(begin, step, count, filename, path, wavelets, omega, nodesCount, new NetOnDouble(xmin, xmax, spaceCount), new NetOnDouble(ymin, ymax, spaceCount));
        }