User Tools

Site Tools


courses:computational_mathematics:prac5

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courses:computational_mathematics:prac5 [2022/05/22 12:32]
andrey.suchkov removed
courses:computational_mathematics:prac5 [2022/07/04 05:36]
andrey.suchkov removed
Line 1: Line 1:
-====== Практическая работа №5: Аппроксимация функций ====== +====== Практическая работа №5: Численное ​интегрирование ======
 ===== Цель работы ===== ===== Цель работы =====
-Сформировать навыки и умения решения задачи аппроксимации функции с помощью метода наименьших квадратов (МНК) и дискретного преобразования Фурье (ДПФ); освоить ​реализацию МНК и ДПФ с помощью математического пакета 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 = linspace (0, b, n); +
-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>​ 
-[[.task5:​task5_vars]]