Пример 6.7.2-1. Аппроксимировать следующие данные многочленом второй степени, используя метод наименьших квадратов.
x | 0.78 | 1.56 | 2.34 | 3.12 | 3.81 |
y | 2.50 | 1.20 | 1.12 | 2.25 | 4.28 |
Запишем в следующую таблицу элементы матрицы Грама и столбец свободных членов:
i | x | x2 | x3 | x4 | y | xy | x2y |
0 | 0.78 | 0.608 | 0.475 | 0.370 | 2.50 | 1.950 | 1.520 |
1 | 1.56 | 2.434 | 3.796 | 5.922 | 1.20 | 1.872 | 2.920 |
2 | 2.34 | 5.476 | 12.813 | 29.982 | 1.12 | 2.621 | 6.133 |
3 | 3.12 | 9.734 | 30.371 | 94.759 | 2.25 | 7.020 | 21.902 |
4 | 3.81 | 14.516 | 55.306 | 210.72 | 4.28 | 16.307 | 62.129 |
∑ | 11.61 | 32.768 | 102.76 | 341.75 | 11.35 | 29.770 | 94.604 |
Система нормальных уравнений выглядит следующим образом
Решением этой системы являются:
а0 = 5.022; а1 =-4.014; а2=1.002.
Искомая аппроксимирующая функция
Сравним исходные значения yсо значениями аппроксимирующего многочлена, вычисленными в тех же точках:
Вычислим среднеквадратическое отклонение (невязку)
.
Технология решения задач аппроксимации функций средствами математических пакетов
Для аппроксимации функций в Mathcadимеются встроенные функции двух видов: функции, позволяющие увидеть аналитическую зависимость, то есть возвращающие набор аппроксимирующих коэффициентов, и функции, не позволяющие увидеть аналитическую зависимость, а позволяющие только получить значения функции в промежуточных точках.
В Mathcad имеется несколько функций аппроксимации, различающихся способом «соединения» точек (прямой линией или различными кривыми).
Пример 6.7.3-1. Получить аппроксимирующие полиномы первой и второй степени методом наименьших квадратов для функции, заданной таблично.
|
|
Линейная аппроксимация Квадратичная аппроксимация Оценка погрешности - среднеквадратическое отклонение |
Пример 6.7.3-2. Осуществить аппроксимацию таблично заданной функции многочленом 1-й, 2-й и 3-й степени.
В этом примере рассмотрено использование функции linfit(x,y,f), где x,y- соответственно векторы значений аргументов и функции, а f – символьный вектор базисных функций. Использование этой функции позволяет определить вектор коэффициентов аппроксимации методом наименьших квадратов и далее невязку - среднеквадратическую погрешность приближения исходных точек к аппроксимирующей функции (сkо). Степень аппроксимирующего многочлена задается при описании символьного вектора f. В примере представлена аппроксимация таблично заданной функции многочленом 1-й, 2-й и 3-й степени. Вектор s представляет собой набор аппроксимирующих коэффициентов, что позволяет получить аппроксимирующую функцию в явном виде.
|
|
Линейная аппроксимация Квадратичная аппроксимация Кубическая аппроксимация |
В Mathcad имеется также большое количество встроенных функций, предназначенных для получения аналитического выражения функции регрессии. Однако в этом случае необходимо знать форму аналитического выражения. Ниже приведены встроенные функции, различающиеся видом регрессии, позволяющие (при заданных начальных приближениях) определить аналитическую зависимость функции, то есть возвращающие набор аппроксимирующих коэффициентов: expfit(X,Y,g).
Решение ОДУ 2-го порядка вида у”=F(x, y, z), где z=y’ также может быть получено методом Рунге-Кутты 4-го порядка. Ниже приведены формулы для решения ОДУ:
- регрессия экспонентой
- sinfit(X,Y,g) – регрессия синусоидой
- pwfit(X,Y,g) – регрессия степенной зависимостью
- logfit(X,Y,g) – регрессия логарифмической функцией
В этих функциях: х – вектор аргументов, элементы которого расположены в порядке возрастания; y – вектор значений функции; g – вектор начальных приближений коэффициентов a, b и с; t - значение аргумента, при котором определяется функция.
В приведенных ниже примерах для оценки связи между массивами данных и значениями аппроксимирующей функции подсчитывается коэффициент корреляции corr(). Если табличные данные неплохо аппроксимируется каким-либо видом регрессии, то коэффициент корреляции близок к единице. Чем меньше коэффициент, тем хуже связь между значениями этих функций.
|
|
Дата добавления: 2018-05-12; просмотров: 2195; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!