Example #1
0
        public double[,] LeastSquares(double[] X, double[] Y, int w,int n)
        {
            A = new double[w + 1,1];
            S=new double[w+1,w+1];
            T=new double[w+1,1];
            double sumaS = 0;
            double sumaT = 0;
            for (int k = 0; k<=w; k++)//w - stopień wielomianu którym aproksymujemy
            {
                for (int i = 0; i <=w; i++)
                {
                    for (int j = 0; j <= n; j++)
                    {
                        sumaS += (Math.Pow(X[j], k+i));
                    }
                    S[i, k] = sumaS;
                }
            }
            for (int k = 0; k < w; k++)
            {
                for (int j = 0; j < n; j++)
                {
                    sumaT += (Math.Pow(X[j], k)*Y[j]);
                }
                T[k, 0] = sumaT;
            }
            Matrix inverseMatrix=new Matrix();
            double[,] sodwr = inverseMatrix.InverseMatrix(S, n, n);
            A = inverseMatrix.MultiplyMatrix(sodwr, T, n, n, n, n);

            return A;
        }
Example #2
0
        static void Main(string[] args)
        {
            Matrix matrix=new Matrix();
            double[,] A = new double[,] { { 3, 0.6,7.5,-3 }, {0.4, 0.5, 4,-8.5}, {0.3,-1,1,5.2}, {1,0.5,-0.1,0.5} };
            double [,] B=new double[,] { {2,2},{1,4}};
            int m = 4;
            int n = 4;
            //double[,] D=matrix.TransposeMatrix(A, m, n);
            //double[,] C = matrix.MultiplyMatrix(A, B, 2, 2, 2, 2);

            double[,] U;
            double[,] L;
            //matrix.LuCompozition(A, n, m, out L, out U);
            //double det =matrix.DetCounter(A, m, n);
               // Console.WriteLine(det);
            double[,] C=matrix.InverseMatrix(A, m, n);

            Console.ReadKey();
        }