User Tools

Site Tools


courses:computational_mathematics:prac4

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
courses:computational_mathematics:prac4 [2021/01/21 21:02]
andrey.suchkov ↷ Page name changed from courses:computational_mathematics:task4 to courses:computational_mathematics:task4_2020
courses:computational_mathematics:prac4 [2022/07/04 05:39]
andrey.suchkov removed
Line 1: Line 1:
 +====== Практическая работа №4: Аппроксимация функций ======
 +
 +===== Цель работы =====
 +Сформировать навыки и умения решения задачи аппроксимации функции с помощью метода наименьших квадратов (МНК) и дискретного преобразования Фурье (ДПФ); освоить реализацию МНК и ДПФ с помощью математического пакета GNU Octave.
 +
 +===== Постановка задачи =====
 +Построить набор случайных данных для функции $ f(x) $ на промежутке $ [0, b] $ разбив его на $ n $ участков при параметре зашумления $ fluc $. Аппроксимировать полученные данные с помощью МНК по трём моделям:​ полиномиальной,​ экспоненциальной и ДПФ.
 +
 +===== Порядок выполнения работы =====
 +  - Реализовать функцию ''​f(x)''​ для вычисления значений функции $ f(x) $.
 +  - Реализовать функцию ''​mnk()''​ для построения модели с помощью МНК.
 +  - Разбить отрезок $ [0, b] $ на $ n $ участков и вычислить значения функции $ f(x) $ для каждого $ x $.
 +  - Аппроксимировать полученные данные с помощью функции ''​mnk()''​ по двум моделям:​ полиномиальной и экспоненциальной. Построить графики аппроксимационных функций вместе с облаком значений. Вычислить среднеквадратические отклонения для каждой модели. Сделать выводы.
 +  - Построить набор случайных данных с параметром зашумления $ fluc $. Рекомендуется использовать следующую функцию (здесь ''​stud_num''​ -- номер студенческого билета,​ e.g.: ''​stud_num = 130301''​):​ <code octave>
 +rand ("​state",​ stud_num)
 +x = 0:b/n:b;
 +y = f (x) + (2 * rand (1, n) - 1) * fluc;
 +</​code>​
 +  - Аппроксимировать полученные данные с помощью функции ''​mnk()''​ по трём моделям:​ полиномиальной,​ экспоненциальной и ДПФ. Построить графики аппроксимационных функций вместе с облаком значений. Вычислить среднеквадратические отклонения для каждой модели. Сделать выводы.
 +  - Изменить коэффициент при $ x $ так, чтобы функция $ f(x) $ стала периодической,​ т.е. $ f(0) = f(b) $. Реализовать периодическую функцию ''​f_T(x)''​.
 +  - Построить набор случайных данных по подвергнутой периодизации функции $ f_T(x) $.
 +  - Аппроксимировать полученные данные с помощью функции ''​mnk()''​ с помощью ДПФ. Построить графики аппроксимационных функций вместе с облаком значений. Вычислить среднеквадратические отклонения для каждой модели. Сравнить результаты аппроксимации с непериодической функцией $ f(x) $, сделать выводы.
 +
 +===== Варианты заданий =====
 +<note important>​
 +Выполнение работ осуществляется по индивидуальным вариантам заданий (функции и параметры). Номер варианта для каждого студента определяется преподавателем.
 +</​note>​
 +[[.task4:​task4_vars]]