This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
courses:computational_mathematics:prac5 [2022/04/17 02:07] andrey.suchkov [Порядок выполнения работы] |
courses:computational_mathematics:prac5 [2022/05/22 12:32] andrey.suchkov removed |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Практическая работа №5: Аппроксимация функций. Метод наименьших квадратов и дискретное преобразование Фурье ====== | + | ====== Практическая работа №5: Аппроксимация функций ====== |
===== Цель работы ===== | ===== Цель работы ===== | ||
Line 5: | Line 5: | ||
===== Постановка задачи ===== | ===== Постановка задачи ===== | ||
- | Построить набор случайных данных для функции $ f(x) $ на промежутке $ [0, b] $ разбив его на $ n $ участков при параметре зашумления $ fluc $. Аппроксимировать полученные данные с помощью МНК по трём моделям: полиномиальной, экспоненциальной и ДПФ. Повторить ДПФ, изменив коэффициент при $ x $ так, чтобы функция стала периодической. | + | Построить набор случайных данных для функции $ f(x) $ на промежутке $ [0, b] $ разбив его на $ n $ участков при параметре зашумления $ fluc $. Аппроксимировать полученные данные с помощью МНК по трём моделям: полиномиальной, экспоненциальной и ДПФ. |
===== Порядок выполнения работы ===== | ===== Порядок выполнения работы ===== | ||
- | - Реализовать функцию ''f (x)'' для вычисления значений функции $ f(x) $. | + | - Реализовать функцию ''f(x)'' для вычисления значений функции $ f(x) $. |
- | - Реализовать функцию ''mnk ()'' для построения модели с помощью МНК. | + | - Реализовать функцию ''mnk()'' для построения модели с помощью МНК. |
- Разбить отрезок $ [0, b] $ на $ n $ участков и вычислить значения функции $ f(x) $ для каждого $ x $. | - Разбить отрезок $ [0, b] $ на $ n $ участков и вычислить значения функции $ f(x) $ для каждого $ x $. | ||
- | - Аппроксимировать полученные данные с помощью функции ''mnk ()'' по двум моделям: полиномиальной и экспоненциальной. Построить графики аппроксимационных функций вместе с облаком значений. Вычислить среднеквадратические отклонения для каждой модели. Сделать выводы. | + | - Аппроксимировать полученные данные с помощью функции ''mnk()'' по двум моделям: полиномиальной и экспоненциальной. Построить графики аппроксимационных функций вместе с облаком значений. Вычислить среднеквадратические отклонения для каждой модели. Сделать выводы. |
- | - Построить набор случайных данных с параметром зашумления $ fluc $. Рекомендуется использовать следующий скрипт (здесь ''std_num'' -- номер студенческого билета, e.g.: ''std_num = 130301''): <code octave> | + | - Построить набор случайных данных с параметром зашумления $ fluc $. Рекомендуется использовать следующую функцию (здесь ''stud_num'' -- номер студенческого билета, e.g.: ''stud_num = 130301''): <code octave> |
- | rand ("state", std_num) | + | rand ("state", stud_num) |
x = linspace (0, b, n); | x = linspace (0, b, n); | ||
y = f (x) + (2 * rand (1, n) - 1) * fluc; | y = f (x) + (2 * rand (1, n) - 1) * fluc; | ||
</code> | </code> | ||
- | - Аппроксимировать полученные данные с помощью функции ''mnk ()'' по трём моделям: полиномиальной, экспоненциальной и ДПФ. Построить графики аппроксимационных функций вместе с облаком значений. Вычислить среднеквадратические отклонения для каждой модели. Сделать выводы. | + | - Аппроксимировать полученные данные с помощью функции ''mnk()'' по трём моделям: полиномиальной, экспоненциальной и ДПФ. Построить графики аппроксимационных функций вместе с облаком значений. Вычислить среднеквадратические отклонения для каждой модели. Сделать выводы. |
- | - Изменить коэффициент при $ x $ так, чтобы функция $ f(x) $ стала периодической, т.е. $ f(0) = f(b) $. Реализовать периодическую функцию ''f_T (x)''. | + | - Изменить коэффициент при $ x $ так, чтобы функция $ f(x) $ стала периодической, т.е. $ f(0) = f(b) $. Реализовать периодическую функцию ''f_T(x)''. |
- Построить набор случайных данных по подвергнутой периодизации функции $ f_T(x) $. | - Построить набор случайных данных по подвергнутой периодизации функции $ f_T(x) $. | ||
- | - Аппроксимировать полученные данные с помощью функции ''mnk ()'' с помощью ДПФ. Построить графики аппроксимационных функций вместе с облаком значений. Вычислить среднеквадратические отклонения для каждой модели. Сравнить результаты аппроксимации с непериодической функцией $ f(x) $, сделать выводы. | + | - Аппроксимировать полученные данные с помощью функции ''mnk()'' с помощью ДПФ. Построить графики аппроксимационных функций вместе с облаком значений. Вычислить среднеквадратические отклонения для каждой модели. Сравнить результаты аппроксимации с непериодической функцией $ f(x) $, сделать выводы. |
+ | |||
+ | ===== Варианты заданий ===== | ||
+ | <note important> | ||
+ | Выполнение работ осуществляется по индивидуальным вариантам заданий (функции и параметры). Номер варианта для каждого студента определяется преподавателем. | ||
+ | </note> | ||
+ | [[.task5:task5_vars]] | ||