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
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''​. +
- +
-==== Дополнительное необязательное задание ==== +
-Оценить ​фактическую точность выравнивания. Формально мы добиваемся исчерпывания машинной точности, но максимумы ​ищутся лишь по точкам ​графиков. Предлагается ​для каждой ​точки квазиальтернанса, за исключением совпадающих с концами отрезка (если такие есть), построить квадратичный интерполяционный ​многочлен с шагом графика для ​погрешности и найти максимум его модуля. Хорошую оценку фактической точности выравнивания будет давать ​отношение минимального ​из этих максимумов к максимальному (включая значения на концах,​ если они ​входят в квазиальтернанс).+