예제 #1
0
        //public void writeDataZ_resultArray_WithoutNull(string _nameFile)
        //{
        //    //Запись данных в файл scilab
        //    DrawGraph graph = new DrawGraph(readTransformData.resultArray, readTransformData.fillArrayX, readTransformData.fillArrayY, _nameFile, readTransformData.Draw);

        //    List<double> arrSwap = new List<double>();
        //    readTransformData.invertedDataZ(valuesInverted.listArrayResult, arrSwap, readTransformData.oneDimArrayX1.Count, readTransformData.oneDimArrayY1.Count, readTransformData.Draw);
        //    graph.drawGraphInScilab(
        //            findValues.findRWithList(readTransformData.resultArray_WithoutNull, values.listArrayResult),
        //            findValues.findRWithList(readTransformData.resultArray_WithoutNull, arrSwap),
        //            findValues.findRWithList(readTransformData.resultArray_WithoutNull, values.avgArrayResultBetweenTwoList(values.listArrayResult, arrSwap)),
        //            readTransformData.resultArray_WithoutNull,
        //            readTransformData.twoDimArrayX1,
        //            readTransformData.twoDimArrayY1,
        //            readTransformData.oneDimArrayX1,
        //            readTransformData.oneDimArrayY1,
        //            values.listArrayResult,
        //            arrSwap,
        //            values.avgArrayResultBetweenTwoList(values.listArrayResult, arrSwap)
        //            );
        //}

        //public void writeDataZ_resultArray_Approx_Swap(string _nameFile)
        //{
        //    //Запись данных в файл scilab
        //    //List<double> arrSwap_ResultArray = new List<double>();
        //    //readTransformData.invertedDataZ(readTransformData.resultArray, arrSwap_ResultArray, readTransformData.fillArrayX.Count, readTransformData.fillArrayY.Count, (readTransformData.fillArrayY.Count*2));
        //    DrawGraph graph = new DrawGraph(readTransformData.resultArray, readTransformData.fillArrayX, readTransformData.fillArrayY, _nameFile, (readTransformData.oneDimArrayX1.Count * 2));

        //    List<double> arrSwap_ListArrRes = new List<double>();
        //    List<double> arrSwap_ResultArray = new List<double>();
        //    List<double> arrSwap_ResultArray_Approx = new List<double>();
        //    List<double> arrSwap_ResultArray_WithoutNull = new List<double>();
        //    List<double> arrSwap_ResultArray_TDX = new List<double>();
        //    List<double> arrSwap_ResultArray_TDY = new List<double>();

        //    //Console.WriteLine();
        //    //Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!");
        //    //  Console.WriteLine($"X {readTransformData.oneDimArrayX1.Count} Y {readTransformData.oneDimArrayY1.Count}");

        //    readTransformData.invertedDataZ(readTransformData.resultArray_NEW, arrSwap_ResultArray, readTransformData.oneDimArrayY1.Count, readTransformData.oneDimArrayX1.Count, (readTransformData.oneDimArrayX1.Count * 2));
        //    readTransformData.invertedDataZ(valuesInverted.listArrayResult, arrSwap_ListArrRes, readTransformData.oneDimArrayY1.Count, readTransformData.oneDimArrayX1.Count, (readTransformData.oneDimArrayX1.Count * 2));
        //    readTransformData.invertedDataZ(readTransformData.resultArray_Approx, arrSwap_ResultArray_Approx, readTransformData.oneDimArrayY1.Count, readTransformData.oneDimArrayX1.Count, (readTransformData.oneDimArrayX1.Count * 2));
        //    readTransformData.invertedDataZ(readTransformData.resultArray_WithoutNull, arrSwap_ResultArray_WithoutNull, readTransformData.oneDimArrayY1.Count, readTransformData.oneDimArrayX1.Count, (readTransformData.oneDimArrayX1.Count * 2));
        //    readTransformData.invertedDataZ(readTransformData.twoDimArrayX1, arrSwap_ResultArray_TDX, readTransformData.oneDimArrayY1.Count, readTransformData.oneDimArrayX1.Count, (readTransformData.oneDimArrayX1.Count * 2));
        //    readTransformData.invertedDataZ(readTransformData.twoDimArrayY1, arrSwap_ResultArray_TDY, readTransformData.oneDimArrayY1.Count, readTransformData.oneDimArrayX1.Count, (readTransformData.oneDimArrayX1.Count * 2));

        //    //Console.WriteLine($"RA {arrSwap_ResultArray.Count} {arrSwap_ListArrRes.Count}");
        //    graph.drawGraphInScilab_Z_approx_INT(
        //            findValues.findRWithList(arrSwap_ResultArray_Approx, values.listArrayResult),
        //            findValues.findRWithList(arrSwap_ResultArray_Approx, arrSwap_ListArrRes),
        //            findValues.findRWithList(arrSwap_ResultArray_Approx, values.avgArrayResultBetweenTwoList(values.listArrayResult, arrSwap_ListArrRes)),
        //            arrSwap_ResultArray,
        //            arrSwap_ResultArray_Approx,
        //            arrSwap_ResultArray_WithoutNull,
        //            arrSwap_ResultArray_TDX,
        //            arrSwap_ResultArray_TDY,
        //            readTransformData.oneDimArrayX1,
        //            readTransformData.oneDimArrayY1,
        //            arrSwap_ListArrRes,
        //            values.listArrayResult,
        //            values.avgArrayResultBetweenTwoList(values.listArrayResult, arrSwap_ListArrRes)
        //            );
        //}

        public void writeDataZ_resultArray_Approx(string _nameFile)
        {
            //DrawGraph graph = new DrawGraph(readTransformData.resultArray, readTransformData.fillArrayX, readTransformData.fillArrayY, _nameFile, readTransformData.Draw);
            //Console.WriteLine($"X {readTransformData.oneDimArrayX1.Count} Y {readTransformData.oneDimArrayY1.Count}");
            DrawGraph     graph   = new DrawGraph(resultArray, fillArrayX, fillArrayY, _nameFile);
            List <double> arrSwap = new List <double>();

            readTransformData.invertedDataZ(valuesInverted.listArrayResult, arrSwap, readTransformData.oneDimArrayX1.Count, readTransformData.oneDimArrayY1.Count, (readTransformData.oneDimArrayY1.Count * 2));
            graph.drawGraphInScilab_Z_approx_WITH_START_PARAM_INT(
                findValues.findRWithList(readTransformData.resultArray_Approx, values.listArrayResult),
                findValues.findRWithList(readTransformData.resultArray_Approx, valuesInverted.listArrayResult),
                findValues.findRWithList(readTransformData.resultArray_Approx, values.avgArrayResultBetweenTwoList(values.listArrayResult, valuesInverted.listArrayResult)),
                Draw,
                (readTransformData.oneDimArrayX1.Count * 2),
                twoDimArrayX1,
                twoDimArrayY1,
                oneDimArrayX1,
                oneDimArrayY1,
                readTransformData.resultArray,
                readTransformData.resultArray_Approx,
                readTransformData.resultArray_WithoutNull,
                readTransformData.twoDimArrayX1,
                readTransformData.twoDimArrayY1,
                readTransformData.oneDimArrayX1,
                readTransformData.oneDimArrayY1,
                values.listArrayResult,
                valuesInverted.listArrayResult,
                values.avgArrayResultBetweenTwoList(values.listArrayResult, valuesInverted.listArrayResult)
                );
        }
        List <double> approximationResultArray(List <double> _resultArray, List <double> _oneDimArrayX1, List <double> _oneDimArrayY1, int _Draw, int _n, ref double _R)
        {
            int                l             = 0;
            List <double>      resApprox     = new List <double>();
            List <double>      tempList      = new List <double>();
            List <double>      listResTemp   = new List <double>();
            List <double>      listArrX1Temp = new List <double>();
            List <double>      listArrY1Temp = new List <double>();
            Data3D             data3D;
            Values             values;
            FindValues_xa_yb_c findValues;
            int                a = 0;

            listArrY1Temp.Add(_oneDimArrayY1[a]);
            for (int i = 0; i < _resultArray.Count; i++)
            {
                if (l == _Draw / 2)
                {
                    data3D     = new Data3D(listArrX1Temp, listArrY1Temp, tempList);
                    values     = new Values(_n, data3D.arrayX.Length, data3D.arrayY.Length);
                    findValues = new FindValues_xa_yb_c(_n, data3D, values);
                    int j = 0;
                    foreach (var item in listResTemp)
                    {
                        if (item <= 0)
                        {
                            findValues.findMassiveYwithX(_oneDimArrayX1[j], _n);
                            resApprox.Add(values.findYMassiveWithX[0]);
                        }
                        else
                        {
                            resApprox.Add(item);
                        }
                        j++;
                    }

                    l = 0;
                    tempList.Clear();
                    listResTemp.Clear();
                    listArrX1Temp.Clear();
                    listArrY1Temp.Clear();
                    a++;
                    listArrY1Temp.Add(_oneDimArrayY1[a]);
                }

                if (_resultArray[i] > 0)
                {
                    tempList.Add(_resultArray[i]);
                    listArrX1Temp.Add(_oneDimArrayX1[l]);
                }
                listResTemp.Add(_resultArray[i]);
                l++;
            }

            data3D     = new Data3D(listArrX1Temp, listArrY1Temp, tempList);
            values     = new Values(_n, data3D.arrayX.Length, data3D.arrayY.Length);
            findValues = new FindValues_xa_yb_c(_n, data3D, values);
            int k = 0;

            foreach (var item in listResTemp)
            {
                if (item <= 0)
                {
                    findValues.findMassiveYwithX(_oneDimArrayX1[k], _n);
                    resApprox.Add(values.findYMassiveWithX[0]);
                }
                else
                {
                    resApprox.Add(item);
                }
                k++;
            }

            data3D     = new Data3D(_oneDimArrayX1, _oneDimArrayY1, _resultArray);
            values     = new Values(_n, data3D.arrayX.Length, data3D.arrayY.Length);
            findValues = new FindValues_xa_yb_c(_n, data3D, values);
            _R         = findValues.findRWithList(resultArray_WithoutNull, resApprox);
            return(resApprox);
        }