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; }