Рассчитайте m 1,m 2 для y=m 1 x 1 +m 2 x 2, используя Math.NET

Учитывая эти значения:

x1 = {1, 3, 6, 8} 
x2 = {2 ,8, 5, 10} 
y = {8.6, 30.8, 34.1, 53.8} 

И эта формула

y = m1 * x1 + m2 * x2  

Есть ли способ определить m1 и m2, используя Math.NET или эквивалентную библиотеку C#?

(Ожидаемый результат для этих значений m1=3,6 и м2=2,5)

1 ответ

Решение

Это просто система линейных уравнений: решите Xm = y для m, заданных X и y.

var X = Matrix<double>.Build.DenseOfArray(new double[,] {
    { 1, 2 },
    { 3, 8 },
    { 6, 5 },
    { 8, 10 }
});
var y = Vector<double>.Build.Dense(new double[] {
    8.6,
    30.8,
    34.1,
    53.8
});
var m = X.Solve(y);
Другие вопросы по тегам