Если у вас есть n точек данных (x [i], y [i], z [i]), вычислите симметричную матрицу 3x3 A, записи которой:
sum_i x[i]*x[i], sum_i x[i]*y[i], sum_i x[i]
sum_i x[i]*y[i], sum_i y[i]*y[i], sum_i y[i]
sum_i x[i], sum_i y[i], n
Также вычислите вектор 3 элементов b:
{sum_i x[i]*z[i], sum_i y[i]*z[i], sum_i z[i]}
Тогда решите Ax = b для данных A и b. Три компонента вектора решения являются коэффициентами для плоскости подгонки наименьших квадратов {a, b, c}.
Обратите внимание, что это подгонка "обычных наименьших квадратов", которая подходит только тогда, когда ожидается, что z будет линейной функцией от x и y. Если вы ищете в общем случае «плоскость наилучшего соответствия» в 3-мерном пространстве, вы можете узнать о «геометрических» наименьших квадратах.
Обратите внимание, что это не удастся, если ваши точки расположены на одной линии, как ваши примеры точек.