Как сделать апроксимацию в маткаде
Перейти к содержимому

Как сделать апроксимацию в маткаде

Как сделать апроксимацию в маткаде

Примеры аппроксимации функций

1. Рассмотренный в общем виде метод наименьших квадратов для оценки коэффициентов регрессионного уравнения, аппроксимирующего таблично заданную функцию, может быть реализован средствами программирования системы Mathcad. В приводимых далее примерах по заданным вектору значениям функции отклика y и матрице значений факторов z вычисляются последовательно

  • матрица коэффициентов системы линейных уравнений А;
  • вектор свободных членов B этой системы;
  • вектор корней системы линейных уравнений – искомые коэффициенты регрессии.

Приведем два варианта решения задачи аппроксимации:

    в первом примере каждый из перечисленных этапов реализован в виде отдельного блока с необходимыми комментариями;

Функция MNK, использованная во втором примере, получает через список параметров m – объем выборки; k – число факторов; z – матрицу значений факторов; y – вектор значений функции отклика. Результатом выполнения функции будет вектор коэффициентов регрессии – (k+1) элемент, так как исходное регрессионное уравнение предполагает наличие свободного члена.

Отметим, что рассмотренный алгоритм позволяет оценить коэффициенты уравнений при нескольких независимых переменных, т.е. является алгоритмом множественной линейной регрессии. Основная задача пользователя – правильно определить факторы и вычислить их значения для матрицы факторов.

Mathcad имеет ряд встроенных функций, реализующих алгоритмы аппроксимации для различных видов уравнений. Как правило, предполагается наличие одной независимой переменной.

Все функции, упоминаемые далее в этом разделе, описаны в приложении «Встроенные функции и ключевые слова» настоящего пособия.

2. Линейная регрессия общего вида аппроксимирует заданную совокупность точек функцией вида

Таким образом, функция регрессии является линейной комбинацией функций F1(x), F2(x), . Fn(x), причем сами эти функции (факторы) могут быть нелинейными, что расширяет возможности такой аппроксимации и распространяет ее на нелинейные функции.

Для реализации линейной регрессии общего вида используется функция

Она возвращает вектор коэффициентов линейной регрессии общего вида К, при котором среднеквадратичная погрешность приближения «облака» исходных точек, координаты которых хранятся в векторах VX и VY, оказывается минимальной. Вектор F должен содержать функции F1(x), F2(x), . Fn(x), записанные в символьном виде.

3. В Mathcad введена и функция для обеспечения полиномиальной регрессии при произвольной степени полинома

Она возвращает вектор VS, запрашиваемый функцией interp(VS, VX, VY.x), содержащий коэффициенты многочлена n-й степени, который наилучшим образом приближает «облако» точек с координатами, хранящимися в векторах VX и VY. Для вычисления коэффициентов полинома регрессии используется функция submatrix (см. пример).

На практике не рекомендуется делать степень аппроксимирующего полинома выше 4–6, поскольку погрешности реализации регрессии сильно возрастают. Функция regress создает единственный приближающий полином, коэффициенты которого вычисляются по всей совокупности заданных точек.

4. Многомерную регрессию также можно реализовать в Mathcad. Самый типичный случай ее использования – приближение поверхностей в трехмерном пространстве. Их можно описать, задав массив значений высот z, соответствующих двухмерному массиву Мху координат точек (х,у) на горизонтальной плоскости.

Новых функций для этого не задано. Используются уже описанные ранее функции, но в несколько иной форме, например

  • regress (Mxy, Vz, n) – возвращает вектор, запрашиваемый функцией interp (VS. Mxy, Vz, V) для вычисления многочлена n-й степени, который наилучшим образом приближает точки множества Мху и Vz, Мху – матрица размера 2m, содержащая координаты х и у. Vz – m-мерный вектор, содержащий z-координаты, соответствующие m точкам, указанным в Мху.
  • Interp(VS, Mxy, Vz, V) – возвращает значение z по заданным векторам VS (создается функцией regress) и Мху, Vz и V (вектор координат х и у заданной точки, для которой находится z).

5. Под нелинейной регрессией общего вида подразумевается нахождение вектора К коэффициентов произвольной функции F(x, К1, К2, . Кn), при котором обеспечивается минимальная среднеквадратичная погрешность приближения «облака» исходных точек.

Для проведения нелинейной регрессии общего вида используется функция

genfit(VX, VY, VS, F)

Эта функция возвращает вектор К параметров функции F, дающий минимальную среднеквадратичную погрешность приближения функцией F(x, К1, К2, . Кn) исходных данных.

F должен быть вектором с символьными элементами, причем они должны содержать аналитические выражения для исходной функции и ее производных по всем параметрам. Вектор VS должен содержать начальные значения элементов вектора К, необходимые для решения системы нелинейных уравнений регрессии итерационным методом.

В примере далее приведен образец реализации нелинейной регрессии общего вида для уравнения ln p = A – B / (C + t).

При решении этой задачи возникают две проблемы. Во-первых, надо вычислить значения производных по переменным A, B, C. В документе это сделано с помощью символьных операций

Вторая проблема связана с необходимостью применения функции genfit в ее стандартном виде. Поэтому пришлось заменить искомые коэффициенты модели на элементы массива k

6. Перечень некоторых дополнительных функций для оценки коэффициентов аппроксимирующих уравнений разного вида (см. приложение)

Решение задач аппроксимации в системе MathCAD

Функции решения задач аппроксимации в системе MathCAD – linfit (линейная регрессия общего вида), genfit(нелинейная регрессия общего вида), intercept и slope (линейная регрессия), expfit, logfit, regress (специальные формы аппроксимирующих функций) – и их аргументы. Функция interp, её аргументы.

Линейная регрессия (частный вид) – приближение функциональной зависимостью вида

– intercept (X,Y).Аргументы функции – векторы исходных данных X и Y.Возвращает значение свободного члена b.

slope (X,Y).Аргументы функции – векторы исходных данных X и Y.Возвращает значение углового коэффициента a.

linfit (X,Y,F).Аргументы функции – векторы исходных данных X, Yи вектор F функций gk, линейная комбинация элементов которого аппроксимирует исходные данные. Возвращает значение коэффициентов ck. Далее функциональная зависимость задаётся формулой:

Нелинейная регрессия общего вида осуществляется функцией genfit(X,Y,Pg,F).Аргументы функции – векторы исходных данных X, Y, вектор F(содержит искомую функцию и её частные производные по определяемым параметрам; определяемые параметры при этом задаются в виде элементов вектора с матричными индексами),и Pg– вектор первоначальных данных (начальных приближений) искомых параметров. Функция возвращает значения параметров искомой функции при наилучшем среднеквадратическом приближении.

regress(X,Y,k). Функция аппроксимации полиномом порядка k. Аргументы функции – векторы исходных данных X, Yи степень полинома k.Функция возвращаеткоэффициенты полинома степени k.

– interp (regress(X,Y,k),X,Y,x). Аргументы функции – коэффициенты полинома (результат работы функции regress), векторы исходных данных X и Yи непрерывный аргумент x. Возвращает непрерывную функцию аргумента x, соответствующую искомой зависимости с минимальной среднеквадратической погрешностью..

Кроме того, функция interpприменяется при других видах аппроксимации, при этом первый аргумент – функция, возвращающая значения параметров определяемой функциональной зависимости.

Аппроксимация функции с помощью MathCAD

Линейная регрессия в системе MathCAD выполняется по векторам аргумента Х и отсчетов Y функциями:

intercept(X,Y) – вычисляем параметр , смещение линии регресси по вертикали;

slope(X,Y)– вычисляем параметр , угловой коэффициент линии регрессии.

Полученные значения коэффициентов используем в уравнение регрессии .

Функция Corr(Y,y(x)) – вычисляет коэффициент корреляции Пирсона. Чем он ближе к 1, тем точнее обрабатываемые данные соответствуют линейной зависимости [3].

Вычислив параметры линейной регрессии, строим графики исходной функции y и функции линейной регрессии f(x) (рис.13)

Рис. 13. Фрагмент листа MathCAD с найденными коэффициентами для системы уравнений и графиком зависимости линии тренда для линейной аппроксимации

Уравнение линейной регрессии, полученное в MathCAD: y=2.237+3.99.

Полиномиальная регрессия

Одномерная полиномиальная регрессия с произвольной степенью n полинома и с произвольными координатами отсчетов в MathCAD выполняется функцией regress(X,Y,n), которая вычисляет вектор S, в составе которого находятся коэффициенты полинома n-й степени.

Значения коэффициентов могут быть извлечены из вектора S функцией submatrix(S, 3, length(S)-1, 0, 0).

Полученные значения коэффициентов используем в уравнении регрессии .

Вычислив параметры квадратичной регрессии, строим графики исходной функции y и функции квадратичной регрессии f(x) (рис. 14).

Рис.14. Фрагмент листа MathCAD с найденными коэффициентами для системы уравнений и графиком зависимости линии для квадратичной аппроксимации

Уравнение полиномиальной регрессии : y=2.545+3.852х+0.011

Экспоненциальная регрессия

Для определения экспоненциальной функции решим систему (10) в MathCAD:

Для этого с помощью значков суммирования векторов и векторизации , находящихся на панели векторов и матриц, вычисляем: , , , (рис.15).

Затем составляем матрицы А и В из соответствующих коэффициентов системы линейных уравнений (10) и находим решение системы с помощью встроенной функции lsolve (см. рис. 15).

Решив систему (10), получим значения коэффициентов с и .

Коэффициент вычисляем по формуле: =exp(с).

Полученные значения коэффициентов используем в уравнение регрессии .

Вычислив параметры экспоненциальной регрессии, строим графики исходной функции y и функции экспоненциальной регрессии f(x) (рис. 15).

Рис. 15. Фрагмент листа MathCAD с найденными коэффициентами для системы уравнений и графиком зависимости линии для экспоненциальной аппроксимации

Уравнение экспоненциальной регрессии: .

Проведенные расчеты показывают, что результаты, полученные с помощью среды MathCAD, полностью совпадают со значениями, рассчитанными в MS Excel.

Заключение

Сделаем заключение по результатам полученных данных:

1. В ходе обработки исходных данных средствами функций MS Excel и MathCAD были получены три варианта уравнения аппроксимации: линейная, квадратичная и экспоненциальная.

2. Анализ результатов расчетов показывает, что линейная аппроксимация наилучшим образом описывает экспериментальные данные, так как имеет самый высокий коэффициент детерминированности (0,9960).

Уравнение линейной аппроксимации имеет следующий вид: y=2.237+3.99

3. Совпадение значений величин, полученных на графиках и рассчитанных по формулам в MS Excel, говорит о правильности вычислений.

4. Результаты, полученные с помощью среды MathCAD, полностью совпадают со значениями, рассчитанными в MS Excel. Это говорит о верности вычислений.

Список использованной литературы

1. Бердышев В.И., Петрак Л.В. Аппроксимация функций, сжатие численной информации, приложения. – Екатеринбург: УрО РАН, 1999. – 296 с.

2. Малинина Л.А. Основы информатики: Учебник для вузов. – Ростов н/Д.: Феникс, 2006. – 352 с.

3. Макаров Е.Г. MathCAD: Учебный курс. – СПб.: Питер, 2009. – 384 с.

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *