diff --git a/src/Numerics/Fit.cs b/src/Numerics/Fit.cs index b16026cd..14ddce5c 100644 --- a/src/Numerics/Fit.cs +++ b/src/Numerics/Fit.cs @@ -106,7 +106,7 @@ namespace MathNet.Numerics public static double[] PolynomialWeighted(double[] x, double[] y, double[] w, int order) { var design = Matrix.Build.Dense(x.Length, order + 1, (i, j) => Math.Pow(x[i], j)); - return WeightedRegression.Weighted(design, Vector.Build.Dense(y), Matrix.Build.DenseOfDiagonalArray(w)).ToArray(); + return WeightedRegression.Weighted(design, Vector.Build.Dense(y), Matrix.Build.Diagonal(w.Length, w.Length, w)).ToArray(); } /// diff --git a/src/Numerics/LinearRegression/WeightedRegression.cs b/src/Numerics/LinearRegression/WeightedRegression.cs index 3a6b80a9..693a9f99 100644 --- a/src/Numerics/LinearRegression/WeightedRegression.cs +++ b/src/Numerics/LinearRegression/WeightedRegression.cs @@ -65,7 +65,7 @@ namespace MathNet.Numerics.LinearRegression predictor = predictor.InsertColumn(0, Vector.Build.Dense(predictor.RowCount, Vector.One)); } var response = Vector.Build.Dense(y); - var weights = Matrix.Build.DenseOfDiagonalArray(w); + var weights = Matrix.Build.Diagonal(w.Length, w.Length, w); return predictor.TransposeThisAndMultiply(weights*predictor).Cholesky().Solve(predictor.TransposeThisAndMultiply(weights*response)).ToArray(); }