2.Аппроксимация в среде MathCad.
2.1. Аппроксимация линейной функцией с использованием встроенных функций системы MathCad .
Пусть функция f(x) эадана таблицей значений < (xi ,yi ) , i=0,1,2. n >




Настройка системы Mathcad


Используем встроенные функции slope и intercept для определения коэффициентов линейной регрессии (аппроксимация данных прямой линией).
Функция slope определяет угловой коэффициент прямой, а функция intercept – точку пересечения графика с вертикальной осью.


c=0.407843
Определяем аппроксимирующую функцию:

Mathcad предлагает для этих же целей также использовать функцию line

Вычислим стандартное отклонение.

Графики аппроксимирующей прямой и табличных данных

2.2.Аппроксимация полиномами.
Теперь попытаемся подобрать полиномы второй и третьей степени, в качестве аппроксимирующей функции.
Для этих целей служат встроенные функции regress и interp.
Функция regress (Mx,My,n) является вспомогательной, она подготавливает данные, необходимые для работы функции interp , где
— Mx,My — данные аппроксимации ;
— n – степень аппроксимирующего полинома (Очевидно, что если в качестве аппроксимирующей функции брать полином степени на единицу меньше числа точек, то задача сведется к задаче глобальной интерполяции и полученный полином будет точно проходить через все заданные узлы.).
Функция interp(vs , Mx ,My , x) возвращает значение полинома в точке x , где
— vs = regress (Mx,My,n) — вектор, который содержит, в том числе, и коэффициенты полинома ;
— x – значение аргумента , для которого необходимо вычислить значение
Вводим степени полиномов :


Вычислим коэффициенты аппроксимирующих полиномов

Определив новые функции f2, f3, мы получили возможность находить значение полинома в любой заданной точке.


Коэффициенты аппроксимирующих полиномов получим из vs2 и vs3 с помощью встроенной функции submatrix :



Вычислим стандартные отклонения



Стандартные отклонения почти не отличают друг от друга, коэффициент при третьей степени z невелик, поэтому дальнейшее увеличение степени полинома нецелесообразно и достаточно ограничиться только второй степенью.
К сожалению, функция regress имеется далеко не во всех версиях Matcad‘а.
Однако, провести полиномиальную регрессию можно и без использования этой функции.
Для этого нужно определить коэффициенты нормальной системы и решить полученную систему уравнений, например, матричным методом.
Теперь попытаемся аппроксимировать экспериментальные данные полиномами степени m и m1, не прибегая к помощи встроенной функции regress .
Расчёт аппроксимации экспериментальных данных с использованием MathCAD

Построение графика квадратичной аппроксимации в MathCAD:

Рис.7. Исходная функция и линия тренда для квадратичной аппроксимации.
Экспоненциальная аппроксимация данных:
Нахождение коэффициентов а1, а2, z.

Построение графика экспоненциальной аппроксимации в MathCAD:

Рис.8. Исходная функция и линия тренда для экспоненциальной аппроксимации.
Расчёт аппроксимации экспериментальных данных с использованием MatLAB
Ввод исходных данных:
>> x=[1.05 1.65 2.08 2.76 2.99 3.65 4.05 4.15 4.39 4.76 5.08 5.43 5.89 6.43 6.91 7.13 7.34 8.01 8.54 9.01 9.54 9.85 10.06 10.42 10.89];
>> y=[3.45 6.76 9.08 17.98 27.78 40.43 53.87 59.96 70.08 85.96 95.06 100.98 121.76 112.83 99.05 87.95 72.08 60.87 55.08 44.41 25.97 18.64 11.43 8.87 5.51];
Линейная аппроксимация функции:
Нахождение коэффициентов линейной функции.
Построение графика линейной аппроксимации в MatLAB:

Рис.9. Исходные данные и линия тренда для линейной аппроксимации.
Квадратичная аппроксимация данных:
Нахождение коэффициентов квадратичной функции.
-4.3899 53.7216 -76.1393
Построение графика квадратичной аппроксимации в MatLAB:

Рис.10. Исходные данные и линия тренда для квадратичной аппроксимации.
Экспоненциальная аппроксимация данных:
Нахождение коэффициентов экспоненциальной функции.
Построение графика экспоненциальной аппроксимации в MatLAB:

Рис.11. Исходные данные и линия тренда для экспоненциальной аппроксимации
Заключение
В данной курсовой работе я посчитала аппроксимацию экспериментальных данных методом наименьших квадратов с помощью различных программных средств, таких как Microsoft Excel, MathCAD и MatLAB.
Исходя из произведённых расчётов, выяснила, что квадратичная аппроксимация наилучшим способом описывает экспериментальные данные.
Сравнивая результаты, полученные при помощи функции ЛИНЕЙН в Microsoft Excel, увидела, что они полностью совпадают с вычислениями, проведёнными выше. А коэффициент детерминированности для экспоненциальной зависимости не совпадает с истинным значением, поскольку при вычислении коэффициента детерминированности с помощью функции ЛИНЕЙН используются не истинные значения у, а преобразованные значения lnу с дальнейшей линеаризацией.
Результаты, полученные в программах Microsoft Excel, MathCAD, MatLAB совпадают, следовательно, расчёты выполнены верно
Как сделать апроксимацию в маткаде
Примеры аппроксимации функций
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 применяются 2 способа аппроксимации таблично заданной функции по МНК:
- · Формируем матрицу Грама и решаем систему линейных уравнений методом Гаусса, в результате получаем вектор коэффициентов полинома C.
- · Используем встроенную функцию системы linfit, возвращающую коэффициенты линейной аппроксимации по методу наименьших квадратов, используя заданные базисные функции, хранящиеся в векторе-функции.
аппроксимация mathCad интерполяция сплайн


Выполнение аппроксимации в Matlab
Метод наименьших квадратов позволяет по экспериментальным данным подобрать такую аналитическую функцию, которая проходит настолько близко к экспериментальным точкам, насколько это возможно.
Идея метода наименьших квадратов заключается в том, что функцию:
необходимо подобрать таким образом, чтобы сумма квадратов отклонений измеренных значений уi. от расчетных Y. была наименьшей.
x=[1 2.2 2.4 2.7 3.1 3.5 4.5 5];
y=[9.054 15.077 15.754 18.3 17.984 15.852 1.772 -13.042];
%Вычисление вектора коэффициентов полинома y=a1*x^3+a2*x^2+a3*x+a4
%Вычисление значений полиномов на интервале от 10 до 20
%Построение графика полинома и экспериментальных точек в одной
-1.3534 7.2257 -6.9270 10.0393
Расчет коэффициентов аппроксимации в Microsoft Excel.

Функция y=f(x) задана таблицей 1
Требуется выяснить — какая из функций — линейная, квадратичная или экспоненциальная наилучшим образом аппроксимирует функцию заданную таблицей 1.
Поскольку в данном примере каждая пара значений встречается один раз, то между и существует функциональная зависимость.
Для проведения расчетов данные целесообразно расположить в виде таблицы 2, используя средства табличного процессора Microsoft Excel.

Поясним как таблица 2 составляется.
Шаг 1. В ячейки A2:A26 заносим значения .
Шаг 2. В ячейки B2:B26 заносим значения .
Шаг 3. В ячейку C2 вводим формулу =A2^2.
Шаг 4. В ячейки C3:C26 эта формула копируется.
Шаг 5. В ячейку D2 вводим формулу =A2*B2.
Шаг 6. В ячейки D3:D26 эта формула копируется.
Шаг 7. В ячейку F2 вводим формулу =A2^4.
Шаг 8. В ячейки F3:F26 эта формула копируется.
Шаг 9. В ячейку G2 вводим формулу =A2^2*B2.
Шаг 10. В ячейки G3:G26 эта формула копируется.
Шаг 11. В ячейку H2 вводим формулу =LN(B2).
Шаг 12. В ячейки H3:H26 эта формула копируется.
Шаг 13. В ячейку I2 вводим формулу =A2*LN(B2).
Шаг 14. В ячейки I3:I26 эта формула копируется.
Последующие шаги делаем с помощью автосуммирования .
Шаг 15. В ячейку A27 вводим формулу =СУММ(A2:A26).
Шаг 16. В ячейку B27 вводим формулу =СУММ(B2:B26).
Шаг 17. В ячейку C27 вводим формулу =СУММ(C2:C26).
Шаг 18. В ячейку D27 вводим формулу =СУММ(D2:D26).
Шаг 19. В ячейку E27 вводим формулу =СУММ(E2:E26).
Шаг 20. В ячейку F27 вводим формулу =СУММ(F2:F26).
Шаг 21. В ячейку G27 вводим формулу =СУММ(G2:G26).
Шаг 22. В ячейку H27 вводим формулу =СУММ(H2:H26).
Шаг 23. В ячейку I27 вводим формулу =СУММ(I2:I26).
Аппроксимируем функцию линейной функцией . Для определения коэффициентов и воспользуемся системой

Используя итоговые суммы таблицы 2, расположенные в ячейках A27, B27, C27 и D27, запишем систему в виде


решив которую, получим и .
Таким образом, линейная аппроксимация имеет вид .
Решение системы проводили, пользуясь средствами Microsoft Excel.
Результаты представлены в таблице 3.

Результаты коэффициентов линейной аппроксимации.
В таблице 3 в ячейках A37:B38 записана формула <=МОБР(A33:B34)>.
В ячейках D37:D38 записана формула <=МУМНОЖ(A37:B38;C33:C34)>.
Далее аппроксимируем функцию квадратичной функцией . Для определения коэффициентов , и воспользуемся системой

Используя итоговые суммы таблицы 2, расположенные в ячейках A27, B27, C27, D27, E27, F27 и G27 запишем систему в виде


решив которую, получим , и .
Таким образом, квадратичная аппроксимация имеет вид

Решение системы проводили, пользуясь средствами Microsoft Excel. Результаты представлены в таблице 4.

Результаты коэффициентов квадратичной аппроксимации.
В таблице 4 в ячейках E38:G40 записана формула <=МОБР(E33:G35)>.
В ячейках I38:I40 записана формула <=МУМНОЖ(E38:G40;H33:H35)>.
Теперь аппроксимируем функцию экспоненциальной функцией . Для определения коэффициентов и прологарифмируем значения и используя итоговые суммы таблицы 2, расположенные в ячейках A27, C27, H27 и I27 получим систему

Решив систему, найдем , .
После потенцирования получим .
Таким образом, экспоненциальная аппроксимация имеет вид

Решение системы проводили, пользуясь средствами Microsoft Excel. Результаты представлены в таблице 5.

Результаты коэффициентов экспоненциальной аппроксимации.
В таблице 5 в ячейках D45:E46 записана формула <=МОБР(D42:943)>.
В ячейках G45:G46 записана формула <=МУМНОЖ(D45:E46;F42:F43)>.
В ячейке G47 записана формула =EXP(G45).
Вычислим среднее арифметическое и по формулам:

Результаты расчета и средствами Microsoft Excel представлены в таблице 6.

Вычисление средних значений X и Y.
В ячейке F49 записана формула =A26/25.
В ячейке F50 записана формула =B26/25.
Для того, чтобы рассчитать коэффициент корреляции и коэффициент детерминированности данные целесообразно расположить в виде таблицы 7, которая является продолжением таблицы 2.

Вычисление остаточных сумм.
Поясним как таблица 7 составляется.
Ячейки A2:A27 и B2:B27 уже заполнены (см. табл. 2).
Далее делаем следующие шаги.
Шаг 1. В ячейку J2 вводим формулу =(A2-$F$49)*(B2-$F$50).
Шаг 2. В ячейки J3:J26 эта формула копируется.
Шаг 3. В ячейку K2 вводим формулу =(A2-$F$49)^2.
Шаг 4. В ячейки K3:K26 эта формула копируется.
Шаг 5. В ячейку L2 вводим формулу =(B2-$F$50)^2.
Шаг 6. В ячейки L3:L26 эта формула копируется.
Шаг 7. В ячейку M2 вводим формулу =($D$37+$D$38*A2-B2)^2.
Шаг 8. В ячейки M3:M26 эта формула копируется.
Шаг 9. В ячейку N2 вводим формулу
Шаг 10. В ячейки N3:N26 эта формула копируется.
Шаг 11. В ячейку O2 вводим формулу
Шаг 12. В ячейки O3:O26 эта формула копируется.
Последующие шаги делаем с помощью автосуммирования .
Шаг 13. В ячейку J27 вводим формулу =СУММ(J2:J26).
Шаг 14. В ячейку K27 вводим формулу =СУММ(K2:K26).
Шаг 15. В ячейку L27 вводим формулу =СУММ(L2:L26).
Шаг 16. В ячейку M27 вводим формулу =СУММ(M2:M26).
Шаг 17. В ячейку N27 вводим формулу =СУММ(N2:N26).
Шаг 18. В ячейку O27 вводим формулу =СУММ(O2:O26).
Теперь проведем расчеты коэффициента корреляции по формуле


(только для линейной аппроксимации) и коэффициента детерминированности по формуле . Результаты расчетов средствами Microsoft Excel представлены в таблице 8.

В таблице 8 в ячейке D53 записана формула =J27/(K27*L27)^(1/2).
В ячейке D54 записана формула =1- M27/L27.
В ячейке D55 записана формула =1- N27/L27.
В ячейке D56 записана формула =1- O27/L27.
Анализ результатов расчетов показывает, что квадратичная аппроксимация наилучшим образом описывает экспериментальные данные.
Построение графиков в Excel и использование функции ЛИНЕЙН.
Рассмотрим результаты эксперимента, приведенные в исследованном выше примере.
Исследуем характер зависимости в три этапа:
Построим график зависимости.
Построим линию тренда (, , ).

Рис.4.1. График зависимости y от

Рис.4.2. График линейной аппроксимации

Рис.4.3. График квадратичной аппроксимации.

Рис.4.4. График экспоненциальной аппроксимации.
Программа на языке Pascal.
Часто многие инженерные задачи, задачи физики, геометрии и многих других областей человеческой деятельности приводят к необходимости вычислять аппроксимацию. Для это разрабатываются программы на процедурных языках, например Pascal.