User Tools

Site Tools


courses:computational_mathematics:prac3

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
Next revision Both sides next revision
courses:computational_mathematics:prac3 [2022/04/16 17:50]
andrey.suchkov
courses:computational_mathematics:prac3 [2022/06/28 18:18]
andrey.suchkov ↷ Page name changed from courses:computational_mathematics:task3 to courses:computational_mathematics:prac3
Line 1: Line 1:
-====== Практическая работа №3: Алгоритм Ремеза ======+====== Практическая работа №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''​. +
- +
-==== Дополнительное необязательное задание ==== +
-Оценить ​фактическую точность выравнивания. Формально мы добиваемся исчерпывания машинной точности, но максимумы ​ищутся лишь по точкам ​графиков. Предлагается ​для каждой ​точки квазиальтернанса, за исключением совпадающих с концами отрезка (если такие есть), построить квадратичный интерполяционный ​многочлен с шагом графика для ​погрешности и найти максимум его модуля. Хорошую оценку фактической точности выравнивания будет давать ​отношение минимального ​из этих максимумов к максимальному (включая значения на концах,​ если они ​входят в квазиальтернанс).+