This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:computational_mathematics:prac3 [2022/04/16 17:45] andrey.suchkov created |
courses:computational_mathematics:prac3 [2022/07/04 05:40] andrey.suchkov removed |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Практическая работа №5: Алгоритм Ремеза ====== | + | ====== Практическая работа №3: Численное дифференцирование ====== |
===== Цель работы ===== | ===== Цель работы ===== | ||
- | Освоение и реализация алгоритма Ремеза для построения полиномов наилучшего равномерного приближения средствами GNU Octave. | + | Проверить правильность порядка точности и определить наивысшую достижимую точность (наименьшую погрешность) в стандартном режиме вычислений с плавающей точкой (8-байтовые числа, типа double) для пяти разностных формул численного дифференцирования. |
===== Постановка задачи ===== | ===== Постановка задачи ===== | ||
- | С помощью алгоритма Ремеза найти многочлены наилучшего равномерного приближения 5-й и 10-й степени для функции $ f(x) = \cfrac A{x^2 + px + q} $ на отрезке $ [a, b] $. Значения $ a $, $ b $, $ A $, $ p $, $ q $ берутся из п/р №2. | + | Сравнить точные значения $ f'(x_0) $, $ f''(x_0) $ с конечноразностными первыми производными 1-го, 2-го и 4-го порядков точности и конечноразностными вторыми производными 2-го и 4-го порядков точности, вычисляемыми по последовательно уменьшающимися вдвое значениям шага, если $ f(x) = \cfrac A{x^2 + px + q} $, $ x_0 = a $. Значения $ a $, $ A $, $ p $, $ q $ берутся из п/р №2. |
===== Порядок выполнения работы ===== | ===== Порядок выполнения работы ===== | ||
- | - Реализовать функцию ''f()'' для вычисления значений в функции $ f(x) $. | + | - Реализовать функции для вычисления точных значений $ f(x) $, $ f'(x) $, $ f''(x) $. |
- | - Реализовать функцию ''remez()'', выполняющая алгоритм Ремеза. | + | - Реализовать функции для вычисления приближённых формул $ f'(x) $ 1-го, 2-го и 4-го порядка точности, а также $ f''(x) $ 2-го и 4-го порядка точности. |
- | - Построить полиномы 5-ой и 10-ой степени. Для полинома 5-ой степени построить кривые на графике и указать их вид для 1-ой, 2-ой, 3-ей, 4-ой, 6-ой и последней итерации, а для полинома 10-ой степени -- для 1-ой, 2-ой, 3-ей, 5-ой, 7-ой, 10-ой и последней итерации. Для сравнения полиномы выводить на графике вместе с функцией $ f(x) $. | + | - Вычислить точные значения производных с точностью до 15-ти знаков после запятой. |
- | - Для каждого из полиномов заполнить таблицу ниже и сделать выводы (здесь $ \sigma $ -- уровень квазиальтернанса; $ R_{\max} $ -- глобальный максимум погрешности; $ \varepsilon $ -- точность выравнивания; $ i_{after} $ -- номер тойточки квазиальтернанса, за которой идёт точка максимума): | + | - Посчитать погрешности (разности между точными значениями соответствующей производной и полученными по каждой из пяти разностных формул) при последовательных уменьшениях шага в два раза. |
- | + | - Результаты для каждой формулы вывести в виде таблицы. Таблица должна состоять из трёх колонок: номер шага, сам шаг и величина погрешности. | |
- | ^ Номер шага ^ Значение $ \sigma $ ^ Значение $ R_{\max} $ ^ Значение $ \varepsilon $ ^ Значение $ i_{after} $ ^ | + | - Построить график зависимости погрешности от шага для каждой формулы. Для удобства график лучше выводить в двойном логарифмическом масштабе. |
- | | 1 | | | | | | + | - Ориентируясь по графику и таблице для каждой формулы указать наивысшую достижимую точность (наименьшую погрешность) и номер шага (не сам шаг!), на котором эта погрешность была достигнута. |
- | | 2 | | | | | | + | - Сделать выводы. |
- | | ... ||||| | + | |
- | //Примечание: // коэффициенты многочлена необходимо выводить в формате ''long g''; все остальные значения -- в формате ''short g''. | + | |
- | + | ||
- | ==== Дополнительное необязательное задание ==== | + | |
- | Оценить фактическую точность выравнивания. Формально мы добиваемся исчерпывания машинной точности, но максимумы ищутся лишь по точкам графиков. Предлагается для каждой точки квазиальтернанса, за исключением совпадающих с концами отрезка (если такие есть), построить квадратичный интерполяционный многочлен с шагом графика для погрешности и найти максимум его модуля. Хорошую оценку фактической точности выравнивания будет давать отношение минимального из этих максимумов к максимальному (включая значения на концах, если они входят в квазиальтернанс). | + |