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

Both sides previous revision Previous revision
courses:computational_mathematics:prac4 [2022/07/04 05:39]
andrey.suchkov removed
— (current)
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]]