diff --git a/src/Numerics/LinearRegression/MultipleRegression.cs b/src/Numerics/LinearRegression/MultipleRegression.cs
index c215f28d..f33419d3 100644
--- a/src/Numerics/LinearRegression/MultipleRegression.cs
+++ b/src/Numerics/LinearRegression/MultipleRegression.cs
@@ -45,7 +45,7 @@ namespace MathNet.Numerics.LinearRegression
/// Best fitting vector for model parameters β
public static Vector NormalEquations(Matrix x, Vector y) where T : struct, IEquatable, IFormattable
{
- return x.TransposeThisAndMultiply(x).Cholesky().Solve(x.Transpose()*y);
+ return x.TransposeThisAndMultiply(x).Cholesky().Solve(x.TransposeThisAndMultiply(y));
}
///
@@ -57,7 +57,7 @@ namespace MathNet.Numerics.LinearRegression
/// Best fitting vector for model parameters β
public static Matrix NormalEquations(Matrix x, Matrix y) where T : struct, IEquatable, IFormattable
{
- return x.TransposeThisAndMultiply(x).Cholesky().Solve(x.Transpose() * y);
+ return x.TransposeThisAndMultiply(x).Cholesky().Solve(x.TransposeThisAndMultiply(y));
}
///
@@ -76,7 +76,7 @@ namespace MathNet.Numerics.LinearRegression
predictor = predictor.InsertColumn(0, Vector.Build.Dense(predictor.RowCount, Vector.One));
}
var response = Vector.Build.Dense(y);
- return predictor.TransposeThisAndMultiply(predictor).Cholesky().Solve(predictor.Transpose()*response).ToArray();
+ return predictor.TransposeThisAndMultiply(predictor).Cholesky().Solve(predictor.TransposeThisAndMultiply(response)).ToArray();
}
///
diff --git a/src/Numerics/LinearRegression/WeightedRegression.cs b/src/Numerics/LinearRegression/WeightedRegression.cs
index 15409756..3a6b80a9 100644
--- a/src/Numerics/LinearRegression/WeightedRegression.cs
+++ b/src/Numerics/LinearRegression/WeightedRegression.cs
@@ -42,7 +42,7 @@ namespace MathNet.Numerics.LinearRegression
///
public static Vector Weighted(Matrix x, Vector y, Matrix w) where T : struct, IEquatable, IFormattable
{
- return x.TransposeThisAndMultiply(w*x).Cholesky().Solve(x.Transpose()*(w*y));
+ return x.TransposeThisAndMultiply(w*x).Cholesky().Solve(x.TransposeThisAndMultiply(w*y));
}
///
@@ -50,7 +50,7 @@ namespace MathNet.Numerics.LinearRegression
///
public static Matrix Weighted(Matrix x, Matrix y, Matrix w) where T : struct, IEquatable, IFormattable
{
- return x.TransposeThisAndMultiply(w*x).Cholesky().Solve(x.Transpose()*(w*y));
+ return x.TransposeThisAndMultiply(w*x).Cholesky().Solve(x.TransposeThisAndMultiply(w*y));
}
///
@@ -65,8 +65,8 @@ 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.Diagonal(new DiagonalMatrixStorage(predictor.RowCount, predictor.RowCount, w));
- return predictor.TransposeThisAndMultiply(weights*predictor).Cholesky().Solve(predictor.Transpose()*(weights*response)).ToArray();
+ var weights = Matrix.Build.DenseOfDiagonalArray(w);
+ return predictor.TransposeThisAndMultiply(weights*predictor).Cholesky().Solve(predictor.TransposeThisAndMultiply(weights*response)).ToArray();
}
///