Линейная аппроксимация МНК
Допустим вам даны данные эксперимента: и вы хотите произвести линейную аппроксимацию на прямую (нелинейная тут) с доверительной вероятностью p=0,95. Чтобы воспользоваться данным сервисом, нужно подготовить данные эксперимента, а именно перенести эти данные в файл программы excel с расширением xls. Пример файла можно скачать тут. Все, данные подготовлены, нажимаем кнопку "Аппроксимировать". перейти к сервису:Сделаем линейную аппроксимацию методом наименьших квадратов для данных.
Попытаемся представить данные в виде y = a*x + b.
xi | yi | xi - x | (xi - x)2 | yi - y | (xi - x)(yi - y) | |
---|---|---|---|---|---|---|
1.0 | 1.1 | -2.0 | 4.0 | -0.41 | 0.82 | |
2.0 | 1.3 | -1.0 | 1.0 | -0.21 | 0.21 | |
3.0 | 1.5 | 0.0 | 0.0 | -0.01 | 0 | |
4.0 | 1.7 | 1.0 | 1.0 | 0.19 | 0.19 | |
5.0 | 1.95 | 2.0 | 4.0 | 0.44 | 0.88 | |
Сумма | 15.0 | 7.55 | 10.0 | 2.1 |
где x = (1.0 + 2.0 + 3.0 + 4.0 + 5.0)/5 = 15.0/ 5 = 3.0,
y = (1.1 + 1.3 + 1.5 + 1.7 + 1.95)/5 = 7.55/ 5 = 1.51,
a = ∑(xi - x)(yi - y)/∑(xi - x)2 - суммы i=1 до 5, зн. из таблицы
Посчитаем среднеквадратичные ошибки определения a и b:
т.к. Sa2 = ∑[(yi - a*xi - b)2]/(n - 2)/∑[(xi - x)2],
то Sa = √0.001/(5 - 2)/10.0 = 0.0057735026919
т.к. Sb2 = ∑[(yi - a*xi - b)2]/(n - 2)*(1/n + (x)2/∑[(xi - x)2]),
то Sb = √0.001/(5 - 2)*(1/5 + 3.02/10.0) = 0.0191485421551
При доверительной вероятности p=0.95: абсолютные ошибки определения a и b:
При такой вероятности p и количестве измерений n=5 кол-во степеней свободы f=4, зн. коэффициент Студьента (таблица) равен t=2.7764451052, тогда:
абсолютные ошибки для a и b:
Δa = t*Sa = 2.7764451052*0.0057735026919 = 0.0160298132888
Δb = t*Sb = 2.7764451052*0.0191485421551 = 0.0531648761383
Последний знак у a после запятой по счёту - 2й, значит у Δa оставляем 3 знаков после запятой
Последний знак у b после запятой по счёту - 2й, значит у Δb оставляем 3 знаков после запятой
Поэтому аппроксимация будет выглядеть так:
b = 0.88 ± 0.053;
Нелинейная аппроксимация
Есть ещё обобщённый метод наименьших квадратов, который позволяет аппроксимировать до нелинейных функций. Им тоже можно воспользоваться по ссылкеОбобщенный (нелинейный)Если ввести такие данные как эти и указать нелинейную функцию k1/(x^k2)*sin(k3*x), то получиться такой результат: